mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-24 14:35:45 +00:00
moved election_id_to_public_key to validator_utils
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
parent
20b9a08f7f
commit
2fd0ac0755
@ -19,6 +19,7 @@ from planetmint.transactions.common.transaction_mode_types import BROADCAST_TX_C
|
||||
from planetmint.transactions.common.exceptions import DatabaseDoesNotExist, ValidationError
|
||||
from planetmint.transactions.types.elections.vote import Vote
|
||||
from planetmint.transactions.types.elections.chain_migration_election import ChainMigrationElection
|
||||
from planetmint.transactions.types.elections.validator_utils import election_id_to_public_key
|
||||
import planetmint
|
||||
from planetmint import ValidatorElection, Planetmint
|
||||
from planetmint.backend import schema
|
||||
@ -197,7 +198,7 @@ def run_election_approve(args, planet):
|
||||
return False
|
||||
|
||||
inputs = [i for i in tx.to_inputs() if key.public_key in i.owners_before]
|
||||
election_pub_key = ValidatorElection.to_public_key(tx.id)
|
||||
election_pub_key = election_id_to_public_key(tx.id)
|
||||
approval = Vote.generate(inputs, [([election_pub_key], voting_power)], tx.id).sign([key.private_key])
|
||||
planet.validate_transaction(approval)
|
||||
|
||||
|
||||
@ -10,11 +10,10 @@ from typing import Optional
|
||||
|
||||
from planetmint import backend
|
||||
from planetmint.transactions.types.elections.vote import Vote
|
||||
from planetmint.tendermint_utils import key_from_base64, public_key_to_base64
|
||||
from planetmint.transactions.common.crypto import public_key_from_ed25519_key
|
||||
from planetmint.transactions.common.transaction import Transaction
|
||||
from planetmint.transactions.common.schema import _validate_schema, TX_SCHEMA_COMMON
|
||||
|
||||
from .validator_utils import election_id_to_public_key
|
||||
|
||||
class Election(Transaction):
|
||||
"""Represents election transactions.
|
||||
@ -74,9 +73,6 @@ class Election(Transaction):
|
||||
if cls.TX_SCHEMA_CUSTOM:
|
||||
_validate_schema(cls.TX_SCHEMA_CUSTOM, tx)
|
||||
|
||||
@classmethod
|
||||
def to_public_key(cls, election_id): # TODO: move somewhere else
|
||||
return base58.b58encode(bytes.fromhex(election_id)).decode()
|
||||
|
||||
@classmethod
|
||||
def count_votes(cls, election_pk, transactions, getter=getattr): # TODO: move somewhere else
|
||||
@ -93,7 +89,7 @@ class Election(Transaction):
|
||||
|
||||
def get_commited_votes(self, planet, election_pk=None): # TODO: move somewhere else
|
||||
if election_pk is None:
|
||||
election_pk = self.to_public_key(self.id)
|
||||
election_pk = election_id_to_public_key(self.id)
|
||||
txns = list(backend.query.get_asset_tokens_for_public_key(planet.connection, self.id, election_pk))
|
||||
return self.count_votes(election_pk, txns, dict.get)
|
||||
|
||||
@ -109,7 +105,7 @@ class Election(Transaction):
|
||||
if planet.has_validator_set_changed(self):
|
||||
return False
|
||||
|
||||
election_pk = self.to_public_key(self.id)
|
||||
election_pk = election_id_to_public_key(self.id)
|
||||
votes_committed = self.get_commited_votes(planet, election_pk)
|
||||
votes_current = self.count_votes(election_pk, current_votes)
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import base58
|
||||
import base64
|
||||
import binascii
|
||||
import codecs
|
||||
@ -77,3 +78,7 @@ def get_public_key_decoder(pk):
|
||||
raise InvalidPublicKey("Invalid `type` specified for public key `value`")
|
||||
|
||||
return decoder
|
||||
|
||||
|
||||
def election_id_to_public_key(election_id):
|
||||
return base58.b58encode(bytes.fromhex(election_id)).decode()
|
||||
|
||||
@ -14,6 +14,7 @@ from planetmint.transactions.common.crypto import generate_key_pair
|
||||
from planetmint.transactions.common.exceptions import ValidationError
|
||||
from planetmint.transactions.common.transaction_mode_types import BROADCAST_TX_COMMIT
|
||||
from planetmint.transactions.types.elections.vote import Vote
|
||||
from planetmint.transactions.types.elections.validator_utils import election_id_to_public_key
|
||||
from tests.utils import generate_block, gen_vote
|
||||
|
||||
pytestmark = [pytest.mark.execute]
|
||||
@ -28,7 +29,7 @@ def test_upsert_validator_valid_election_vote(b_mock, valid_upsert_validator_ele
|
||||
public_key0 = input0.owners_before[0]
|
||||
key0 = ed25519_node_keys[public_key0]
|
||||
|
||||
election_pub_key = ValidatorElection.to_public_key(valid_upsert_validator_election.id)
|
||||
election_pub_key = election_id_to_public_key(valid_upsert_validator_election.id)
|
||||
|
||||
vote = Vote.generate([input0], [([election_pub_key], votes)], election_id=valid_upsert_validator_election.id).sign(
|
||||
[key0.private_key]
|
||||
@ -46,7 +47,7 @@ def test_upsert_validator_valid_non_election_vote(b_mock, valid_upsert_validator
|
||||
public_key0 = input0.owners_before[0]
|
||||
key0 = ed25519_node_keys[public_key0]
|
||||
|
||||
election_pub_key = ValidatorElection.to_public_key(valid_upsert_validator_election.id)
|
||||
election_pub_key = election_id_to_public_key(valid_upsert_validator_election.id)
|
||||
|
||||
# Ensure that threshold conditions are now allowed
|
||||
with pytest.raises(ValidationError):
|
||||
@ -76,7 +77,7 @@ def test_upsert_validator_delegate_election_vote(b_mock, valid_upsert_validator_
|
||||
assert b_mock.validate_transaction(delegate_vote)
|
||||
|
||||
b_mock.store_bulk_transactions([delegate_vote])
|
||||
election_pub_key = ValidatorElection.to_public_key(valid_upsert_validator_election.id)
|
||||
election_pub_key = election_id_to_public_key(valid_upsert_validator_election.id)
|
||||
|
||||
alice_votes = delegate_vote.to_inputs()[0]
|
||||
alice_casted_vote = Vote.generate(
|
||||
@ -102,7 +103,7 @@ def test_upsert_validator_invalid_election_vote(b_mock, valid_upsert_validator_e
|
||||
public_key0 = input0.owners_before[0]
|
||||
key0 = ed25519_node_keys[public_key0]
|
||||
|
||||
election_pub_key = ValidatorElection.to_public_key(valid_upsert_validator_election.id)
|
||||
election_pub_key = election_id_to_public_key(valid_upsert_validator_election.id)
|
||||
|
||||
vote = Vote.generate(
|
||||
[input0], [([election_pub_key], votes + 1)], election_id=valid_upsert_validator_election.id
|
||||
@ -133,7 +134,7 @@ def test_valid_election_votes_received(b_mock, valid_upsert_validator_election,
|
||||
b_mock.store_bulk_transactions([delegate_vote])
|
||||
assert valid_upsert_validator_election.get_commited_votes(b_mock) == 0
|
||||
|
||||
election_public_key = ValidatorElection.to_public_key(valid_upsert_validator_election.id)
|
||||
election_public_key = election_id_to_public_key(valid_upsert_validator_election.id)
|
||||
alice_votes = delegate_vote.to_inputs()[0]
|
||||
key0_votes = delegate_vote.to_inputs()[1]
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ from planetmint.transactions.common import crypto
|
||||
from planetmint.transactions.common.transaction_mode_types import BROADCAST_TX_COMMIT
|
||||
from planetmint.transactions.types.assets.create import Create
|
||||
from planetmint.transactions.types.elections.election import Election, Vote
|
||||
from planetmint.transactions.types.elections.validator_utils import election_id_to_public_key
|
||||
from planetmint.tendermint_utils import key_to_base64
|
||||
|
||||
|
||||
@ -73,7 +74,7 @@ def to_inputs(election, i, ed25519_node_keys):
|
||||
|
||||
def gen_vote(election, i, ed25519_node_keys):
|
||||
(input_i, votes_i, key_i) = to_inputs(election, i, ed25519_node_keys)
|
||||
election_pub_key = Election.to_public_key(election.id)
|
||||
election_pub_key = election_id_to_public_key(election.id)
|
||||
return Vote.generate([input_i], [([election_pub_key], votes_i)], election_id=election.id).sign([key_i.private_key])
|
||||
|
||||
|
||||
@ -123,7 +124,7 @@ def generate_election(b, cls, public_key, private_key, asset_data, voter_keys):
|
||||
election = cls.generate([public_key], voters, asset_data, None).sign([private_key])
|
||||
|
||||
votes = [
|
||||
Vote.generate([election.to_inputs()[i]], [([Election.to_public_key(election.id)], power)], election.id)
|
||||
Vote.generate([election.to_inputs()[i]], [([election_id_to_public_key(election.id)], power)], election.id)
|
||||
for i, (_, power) in enumerate(voters)
|
||||
]
|
||||
for key, v in zip(voter_keys, votes):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user