コード例 #1
0
def multiply_13(temp_chain, library_13):
    chain = temp_chain
    web3 = chain.web3

    Multiply13 = chain.contract_factories['Multiply13']

    bytecode = link_bytecode_by_name(Multiply13.bytecode,
                                     Library13=library_13.address)
    bytecode_runtime = link_bytecode_by_name(
        Multiply13.bytecode_runtime,
        Library13=library_13.address,
    )

    LinkedMultiply13 = chain.web3.eth.contract(
        abi=Multiply13.abi,
        bytecode=bytecode,
        bytecode_runtime=bytecode_runtime,
        source=Multiply13.source,
    )

    multiply_13_deploy_txn_hash = LinkedMultiply13.deploy()
    multiply_13_deploy_txn = web3.eth.getTransaction(
        multiply_13_deploy_txn_hash)
    multiply_13_address = chain.wait.for_contract_address(
        multiply_13_deploy_txn_hash)

    assert multiply_13_deploy_txn['input'] == LinkedMultiply13.bytecode
    assert web3.eth.getCode(
        multiply_13_address) == LinkedMultiply13.bytecode_runtime

    return LinkedMultiply13(address=multiply_13_address)
コード例 #2
0
ファイル: conftest.py プロジェクト: miohtama/populus
def multiply_13(temp_chain, library_13):
    chain = temp_chain
    web3 = chain.web3

    Multiply13 = chain.contract_factories['Multiply13']

    bytecode = link_bytecode_by_name(Multiply13.bytecode, Library13=library_13.address)
    bytecode_runtime = link_bytecode_by_name(
        Multiply13.bytecode_runtime,
        Library13=library_13.address,
    )

    LinkedMultiply13 = chain.web3.eth.contract(
        abi=Multiply13.abi,
        bytecode=bytecode,
        bytecode_runtime=bytecode_runtime,
        source=Multiply13.source,
    )

    multiply_13_deploy_txn_hash = LinkedMultiply13.deploy()
    multiply_13_deploy_txn = web3.eth.getTransaction(multiply_13_deploy_txn_hash)
    multiply_13_address = chain.wait.for_contract_address(multiply_13_deploy_txn_hash)

    assert multiply_13_deploy_txn['input'] == LinkedMultiply13.bytecode
    assert web3.eth.getCode(multiply_13_address) == LinkedMultiply13.bytecode_runtime

    return LinkedMultiply13(address=multiply_13_address)
コード例 #3
0
def test_get_contract_factory_with_dependency(chain,
                                              library_13):
    provider = chain.provider
    registrar = chain.registrar

    registrar.set_contract_address('Library13', library_13.address)

    MULTIPLY_13 = chain.project.compiled_contract_data['Multiply13']
    Multiply13 = provider.get_contract_factory('Multiply13')

    expected_bytecode = link_bytecode_by_name(
        MULTIPLY_13['bytecode'],
        MULTIPLY_13['linkrefs'],
        Library13=library_13.address,
    )
    expected_runtime = link_bytecode_by_name(
        MULTIPLY_13['bytecode_runtime'],
        MULTIPLY_13['linkrefs_runtime'],
        Library13=library_13.address,
    )
    assert hexbytes_to_hexstr(Multiply13.bytecode) == expected_bytecode
    assert hexbytes_to_hexstr(Multiply13.bytecode_runtime) == expected_runtime
コード例 #4
0
def test_get_contract_factory_with_dependency(chain,
                                              library_13):
    provider = chain.provider
    registrar = chain.registrar

    registrar.set_contract_address('Library13', library_13.address)

    MULTIPLY_13 = chain.project.compiled_contract_data['Multiply13']
    Multiply13 = provider.get_contract_factory('Multiply13')

    expected_bytecode = link_bytecode_by_name(
        MULTIPLY_13['bytecode'],
        MULTIPLY_13['linkrefs'],
        Library13=library_13.address,
    )
    expected_runtime = link_bytecode_by_name(
        MULTIPLY_13['bytecode_runtime'],
        MULTIPLY_13['linkrefs_runtime'],
        Library13=library_13.address,
    )

    assert Multiply13.bytecode == expected_bytecode
    assert Multiply13.bytecode_runtime == expected_runtime
コード例 #5
0
ファイル: conftest.py プロジェクト: xuesong-hu/populus
def multiply_13(chain, library_13):
    Multiply13 = chain.project.compiled_contract_data['Multiply13']

    bytecode = link_bytecode_by_name(
        Multiply13['bytecode'],
        Multiply13['linkrefs'],
        Library13=library_13.address,
    )

    LinkedMultiply13 = chain.web3.eth.contract(
        abi=Multiply13['abi'],
        bytecode=bytecode,
    )

    multiply_13_address = chain.wait.for_contract_address(LinkedMultiply13.deploy())

    return LinkedMultiply13(address=multiply_13_address)