diff --git a/planetmint/lib.py b/planetmint/lib.py index 1cf0566..4dc0f60 100644 --- a/planetmint/lib.py +++ b/planetmint/lib.py @@ -239,17 +239,12 @@ class Planetmint(object): def get_transaction(self, transaction_id): transaction = backend.query.get_transaction(self.connection, transaction_id) - # TODO: adjust assets fetching for multiasset support - # Dirty hack backend.query.get_assets needs to be implemented - # NOTE: Read up on localmongodb setup and how the connection calls are actually loaded => implementation shows NotImplementError - if transaction: - # asset = backend.query.get_asset(self.connection, transaction_id) assets = backend.query.get_assets(self.connection, [transaction_id]) metadata = backend.query.get_metadata(self.connection, [transaction_id]) - if transaction['operation'] == 'CREATE' and assets: - # NOTE: THIS IS A HACK TO SEE IF THE TX HASH IS CORRECT FOR TESTS, NEEDS TO BE REPLACED AFTER backend.query.get_assets_for_tx is finished - # transaction['assets'] = [asset] + # NOTE: assets must not be replaced for transfer transactions + # TODO: check if this holds true for other tx types + if transaction['operation'] != 'TRANSFER' and assets: transaction['assets'] = list(assets) if 'metadata' not in transaction: diff --git a/planetmint/transactions/types/elections/election.py b/planetmint/transactions/types/elections/election.py index 60424f0..8a6adef 100644 --- a/planetmint/transactions/types/elections/election.py +++ b/planetmint/transactions/types/elections/election.py @@ -143,8 +143,8 @@ class Election(Transaction): uuid = uuid4() election_data['seed'] = str(uuid) - (inputs, outputs) = Create.validate_create(initiator, voters, election_data, metadata) - election = cls(cls.OPERATION, {'data': election_data}, inputs, outputs, metadata) + (inputs, outputs) = Create.validate_create(initiator, voters, [election_data], metadata) + election = cls(cls.OPERATION, [{'data': election_data}], inputs, outputs, metadata) cls.validate_schema(election.to_dict()) return election @@ -268,7 +268,7 @@ class Election(Transaction): if not isinstance(tx, Vote): continue - election_id = tx.asset['id'] + election_id = tx.assets[0]['id'] if election_id not in elections: elections[election_id] = [] elections[election_id].append(tx) diff --git a/planetmint/transactions/types/elections/vote.py b/planetmint/transactions/types/elections/vote.py index 5a441fe..335936a 100644 --- a/planetmint/transactions/types/elections/vote.py +++ b/planetmint/transactions/types/elections/vote.py @@ -40,8 +40,8 @@ class Vote(Transfer): @classmethod def generate(cls, inputs, recipients, election_id, metadata=None): - (inputs, outputs) = cls.validate_transfer(inputs, recipients, election_id, metadata) - election_vote = cls(cls.OPERATION, {'id': election_id}, inputs, outputs, metadata) + (inputs, outputs) = cls.validate_transfer(inputs, recipients, [election_id], metadata) + election_vote = cls(cls.OPERATION, [{'id': election_id}], inputs, outputs, metadata) cls.validate_schema(election_vote.to_dict()) return election_vote diff --git a/planetmint/upsert_validator/validator_election.py b/planetmint/upsert_validator/validator_election.py index 31e4161..b0b4495 100644 --- a/planetmint/upsert_validator/validator_election.py +++ b/planetmint/upsert_validator/validator_election.py @@ -35,7 +35,7 @@ class ValidatorElection(Election): @classmethod def validate_schema(cls, tx): super(ValidatorElection, cls).validate_schema(tx) - validate_asset_public_key(tx['asset']['data']['public_key']) + validate_asset_public_key(tx['assets'][0]['data']['public_key']) def has_concluded(self, planet, *args, **kwargs): latest_block = planet.get_latest_block() @@ -51,7 +51,7 @@ class ValidatorElection(Election): return super().has_concluded(planet, *args, **kwargs) def on_approval(self, planet, new_height): - validator_updates = [self.asset['data']] + validator_updates = [self.assets[0]['data']] curr_validator_set = planet.get_validators(new_height) updated_validator_set = new_validator_set(curr_validator_set, validator_updates) @@ -61,7 +61,7 @@ class ValidatorElection(Election): # TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0. planet.store_validator_set(new_height + 1, updated_validator_set) - return encode_validator(self.asset['data']) + return encode_validator(self.assets[0]['data']) def on_rollback(self, planetmint, new_height): # TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.