Ejemplo n.º 1
0
 def update_data(self):
     old_keys = set(self.db.keys())
     new_keys = set()
     for candidate in CurrentVote.get_candidates():
         try:
             alias = Address.select().where(Address.address == candidate.address).first().alias
         except AttributeError:
             alias = 'unknown'
         if candidate.start_block == 0 and candidate.end_block == MAX_END_BLOCK:
             vote_count = CurrentVote.select().where(
                 CurrentVote.address == candidate.address,
                 CurrentVote.start_block == 0,
                 CurrentVote.end_block == MAX_END_BLOCK).count()
             already_voted = CurrentVote.select().where(
                 CurrentVote.address == candidate.address,
                 CurrentVote.start_block == 0,
                 CurrentVote.end_block == MAX_END_BLOCK,
                 CurrentVote.given_from == Profile.get_active().address).count() > 0
             if candidate.perm_type == Permission.ADMIN:
                 required = math.ceil(Permission.num_guardians() * ADMIN_CONSENUS_ADMIN)
             else:
                 required = math.ceil(Permission.num_guardians() * ADMIN_CONSENUS_MINE)
             key = (candidate.address, candidate.perm_type)
             new_keys.add(key)
             self.db[key] = [alias, candidate.address.address, candidate.perm_type,
                             "{} of {}".format(vote_count, required), already_voted]
     deleted_keys = old_keys - new_keys
     for key in deleted_keys:
         del self.db[key]
    def data(self, idx: QModelIndex, role=None):

        if role == Qt.TextAlignmentRole and idx.column() in (3, 4, 5):
            return Qt.AlignCenter

        if not idx.isValid():
            return None

        perm_obj = self._data[idx.row()]

        if role == Qt.EditRole and idx.column() in (1, 5):
            return perm_obj.address_id

        if role != Qt.DisplayRole:
            return None

        if idx.column() == 0:
            return perm_obj.address.alias
        if idx.column() == 1:
            return perm_obj.address_id
        if idx.column() == 2:
            if self._perm_type == Permission.MINE:
                last_mined = perm_obj.address.get_last_mined()
                if last_mined:
                    return timeago.format(last_mined, datetime.now())
            if self._perm_type == Permission.ADMIN:
                last_voted = perm_obj.address.get_last_voted()
                if last_voted:
                    return timeago.format(last_voted, datetime.now())
            return 'Never'
        if idx.column() == 3:
            if self._perm_type == Permission.MINE:
                return "{} Blocks".format(
                    perm_obj.address.get_mined_last_24_hours())
            else:
                return "{} Votes".format(
                    perm_obj.address.get_voted_last_24_hours())
        if idx.column() == 4:
            if self._perm_type == Permission.MINE:
                return "{} of {}".format(
                    perm_obj.address.num_validator_revokes(),
                    math.ceil(Permission.num_guardians() *
                              ADMIN_CONSENUS_MINE))
            else:
                return "{} of {}".format(
                    perm_obj.address.num_guardian_revokes(),
                    math.ceil(Permission.num_guardians() *
                              ADMIN_CONSENUS_ADMIN))
Ejemplo n.º 3
0
    def run(self):
        with data_session_scope() as session:
            for reward in MiningReward.mined_last_24h(session):
                self.parent().last_24_h_mine_count[
                    reward.address] = reward.count
            for reward in MiningReward.last_mined(session):
                self.parent().last_mined[reward.address] = reward.last_mined
            for vote in Vote.voted_last_24h(session):
                self.parent().last_24_h_vote_count[
                    vote.from_address] = vote.count
            for vote in Vote.last_voted(session):
                self.parent().last_voted[vote.from_address] = vote.last_voted
            for pending_vote in PendingVote.num_revokes(
                    session,
                    self.parent()._perm_type):
                self.parent().count_revokes[
                    pending_vote.address_to] = pending_vote.count

            self.parent().num_guardians = Permission.num_guardians(session)

            if self.parent()._perm_type == enums.MINE:
                self.parent()._data = list(Permission.validators(session))
            elif self.parent()._perm_type == enums.ADMIN:
                self.parent()._data = list(Permission.guardians(session))
            self.parent()._alias_list = Alias.get_aliases(session)

            self.parent().already_revoked = PendingVote.already_revoked(
                session,
                self.parent()._perm_type)
Ejemplo n.º 4
0
 def run(self):
     with data_session_scope() as session:
         self.parent().candidates = PendingVote.get_candidates(session)
         self.parent().aliases = Alias.get_aliases(session)
         self.parent().already_granted = PendingVote.already_granted(
             session)
         self.parent().num_guardians = Permission.num_guardians(session)
Ejemplo n.º 5
0
    def permissions_changed(self):
        with data_session_scope() as session:
            num_validators = Permission.num_validators(session)
            self.lbl_num_validators.setText(str(num_validators))

            num_guardians = Permission.num_guardians(session)
            self.lbl_num_guardians.setText(str(num_guardians))

            num_candidates = PendingVote.num_candidates(session)
            self.lbl_num_candidates.setText(str(num_candidates))
Ejemplo n.º 6
0
    def listpermissions(self):
        num_validators = Permission.num_validators()
        log.debug('set num validators %s' % num_validators)
        self.lbl_num_validators.setText(str(num_validators))

        num_guardians = Permission.num_guardians()
        log.debug('set num guardians %s' % num_guardians)
        self.lbl_num_guardians.setText(str(num_guardians))

        num_candidates = CurrentVote.num_candidates()
        log.debug('set num candidates %s' % num_candidates)
        self.lbl_num_candidates.setText(str(num_candidates))
Ejemplo n.º 7
0
 def update_num_guardians(self):
     with data_session_scope() as session:
         self.num_guardians = Permission.num_guardians(session)