# external imports import celery from chainlib.eth.nonce import RPCNonceOracle from chainlib.eth.tx import ( receipt, ) from eth_address_declarator import Declarator from hexathon import add_0x # local imports from cic_eth.ext.address import translate_tx_addresses def test_translate( default_chain_spec, address_declarator, eth_signer, eth_rpc, contract_roles, agent_roles, cic_registry, init_celery_tasks, register_lookups, celery_session_worker, ): nonce_oracle = RPCNonceOracle(contract_roles['CONTRACT_DEPLOYER'], eth_rpc) c = Declarator(default_chain_spec, signer=eth_signer, nonce_oracle=nonce_oracle) description = 'alice'.encode('utf-8').ljust(32, b'\x00').hex() (tx_hash_hex, o) = c.add_declaration(address_declarator, contract_roles['CONTRACT_DEPLOYER'], agent_roles['ALICE'], add_0x(description)) eth_rpc.do(o) o = receipt(tx_hash_hex) r = eth_rpc.do(o) assert r['status'] == 1 description = 'bob'.encode('utf-8').ljust(32, b'\x00').hex() (tx_hash_hex, o) = c.add_declaration(address_declarator, contract_roles['CONTRACT_DEPLOYER'], agent_roles['BOB'], add_0x(description)) eth_rpc.do(o) o = receipt(tx_hash_hex) r = eth_rpc.do(o) assert r['status'] == 1 tx = { 'sender': agent_roles['ALICE'], 'sender_label': None, 'recipient': agent_roles['BOB'], 'recipient_label': None, } #tx = translate_tx_addresses(tx, [contract_roles['CONTRACT_DEPLOYER']], default_chain_spec.asdict()) s = celery.signature( 'cic_eth.ext.address.translate_tx_addresses', [ tx, [contract_roles['CONTRACT_DEPLOYER']], default_chain_spec.asdict(), ], queue=None, ) t = s.apply_async() r = t.get_leaf() assert t.successful() assert r['sender_label'] == 'alice' assert r['recipient_label'] == 'bob'