def agent(testerchain, test_registry, allocation_value, agency, mock_transacting_power_activation) -> PreallocationEscrowAgent: deployer_address, beneficiary_address, *everybody_else = testerchain.client.accounts escrow_deployer = PreallocationEscrowDeployer(deployer_address=deployer_address, registry=test_registry, allocation_registry=TEST_ALLOCATION_REGISTRY) mock_transacting_power_activation(account=deployer_address, password=INSECURE_DEVELOPMENT_PASSWORD) _receipt = escrow_deployer.deploy() escrow_deployer.initial_deposit(value=allocation_value, duration_seconds=TEST_LOCK_DURATION_IN_SECONDS) assert escrow_deployer.contract.functions.getLockedTokens().call() == allocation_value escrow_deployer.assign_beneficiary(checksum_address=beneficiary_address) escrow_deployer.enroll_principal_contract() assert escrow_deployer.contract.functions.getLockedTokens().call() == allocation_value agent = escrow_deployer.make_agent() direct_agent = PreallocationEscrowAgent(registry=test_registry, allocation_registry=TEST_ALLOCATION_REGISTRY, beneficiary=beneficiary_address) assert direct_agent == agent assert direct_agent.contract.abi == agent.contract.abi assert direct_agent.contract.address == agent.contract.address assert agent.principal_contract.address == escrow_deployer.contract.address assert agent.principal_contract.abi == escrow_deployer.contract.abi assert direct_agent.contract.abi == escrow_deployer.contract.abi assert direct_agent.contract.address == escrow_deployer.contract.address yield agent TEST_ALLOCATION_REGISTRY.clear()
def mock_allocation_registry(testerchain, agency_local_registry, token_economics): # Deploy the PreallocationEscrow contract allocation_registry = InMemoryAllocationRegistry() deployer = PreallocationEscrowDeployer(deployer_address=testerchain.etherbase_account, registry=agency_local_registry, allocation_registry=allocation_registry) deployer.deploy() deployer.assign_beneficiary(checksum_address=testerchain.unassigned_accounts[0]) deployer.initial_deposit(value=2 * token_economics.minimum_allowed_locked, duration_seconds=ONE_YEAR_IN_SECONDS) deployer.enroll_principal_contract() return allocation_registry