def test_update_token_metadata(self): alice_xmss = get_alice_xmss() bob_xmss = get_bob_xmss() token_transaction = get_token_transaction(alice_xmss, bob_xmss) TokenMetadata.create_token_metadata(self.state, token_transaction, None) transfer_token_transaction = TransferTokenTransaction.create( token_txhash=token_transaction.txhash, addrs_to=[alice_xmss.address], amounts=[100000000], fee=1, xmss_pk=bob_xmss.pk) TokenMetadata.update_token_metadata(self.state, transfer_token_transaction, None) token_metadata = TokenMetadata.get_token_metadata( self.state, token_transaction.txhash) self.assertEqual(len(token_metadata.transfer_token_tx_hashes), 2) self.assertEqual(token_metadata.transfer_token_tx_hashes[0], token_transaction.txhash) self.assertEqual(token_metadata.transfer_token_tx_hashes[1], transfer_token_transaction.txhash)
def test_get_token_metadata(self): token_txhash = bytes(sha2_256(b'alpha')) token_metadata = TokenMetadata.create( token_txhash, [bytes(sha2_256(b'delta')), bytes(sha2_256(b'gamma'))]) self.state._db.get_raw = MagicMock( return_value=token_metadata.serialize()) self.assertEqual( TokenMetadata.get_token_metadata(self.state, token_txhash).to_json(), token_metadata.to_json())
def test_create_token_metadata(self): alice_xmss = get_alice_xmss() bob_xmss = get_bob_xmss() token_transaction = get_token_transaction(alice_xmss, bob_xmss) TokenMetadata.create_token_metadata(self.state, token_transaction, None) token_metadata = TokenMetadata.get_token_metadata( self.state, token_transaction.txhash) self.assertEqual(token_metadata.token_txhash, token_transaction.txhash) self.assertEqual(token_metadata.transfer_token_tx_hashes[0], token_transaction.txhash)
def get_token_metadata(self, token_txhash: bytes): try: json_data = self._db.get_raw(b'token_' + token_txhash) return TokenMetadata.from_json(json_data) except KeyError: pass except Exception as e: logger.error('[get_token_metadata] %s', e) return None
def get_token_metadata(db, state_code, token_txhash: bytes): try: json_data = db.get_raw(state_code + b'token_' + token_txhash) return TokenMetadata.from_json(json_data) except KeyError: pass except Exception as e: logger.error('[get_token_metadata] %s', e) return None
def test_get_token_metadata(self): with set_qrl_dir('no_data'): with State() as state: token_txhash = bytes(sha2_256(b'alpha')) token_metadata = TokenMetadata.create( token_txhash, [bytes(sha2_256(b'delta')), bytes(sha2_256(b'gamma'))]) state._db.get_raw = MagicMock( return_value=token_metadata.to_json()) self.assertEqual( state.get_token_metadata(token_txhash).to_json(), token_metadata.to_json())
def test_remove_token_metadata(self): alice_xmss = get_alice_xmss() bob_xmss = get_bob_xmss() token_tx = get_token_transaction(alice_xmss, bob_xmss) TokenMetadata.create_token_metadata(self.state, token_tx, None) token_metadata = TokenMetadata.get_token_metadata( self.state, token_tx.txhash) self.assertEqual(token_metadata.token_txhash, token_tx.txhash) TokenMetadata.remove_token_metadata(self.state, token_tx, None) self.assertIsNone( TokenMetadata.get_token_metadata(self.state, token_tx.txhash))
def create_token_metadata(self, token: TokenTransaction): token_metadata = TokenMetadata.create( token_txhash=token.txhash, transfer_token_txhashes=[token.txhash]) self._db.put_raw(b'token_' + token.txhash, token_metadata.to_json().encode())
def update_token_metadata(self, token_metadata: TokenMetadata, transfer_token: TransferTokenTransaction): token_metadata.update([transfer_token.txhash]) self._db.put_raw( self.state_code + b'token_' + transfer_token.token_txhash, token_metadata.to_json().encode())
def get_token_metadata(self, token_txhash: bytes): json_data = self._db.get_raw(b'token_'+token_txhash) return TokenMetadata.from_json(json_data)
def create_token_metadata(self, token: TokenTransaction): token_metadata = TokenMetadata.create(token_txhash=token.txhash, transfer_token_txhashes=[token.txhash]) self._db.put_raw(b'token_' + token.txhash, token_metadata.to_json().encode())