def math(rpc_server, rpc_client, eth_coinbase): Math = Contract(rpc_client, 'Math', contract) txn_hash = Math.deploy(_from=eth_coinbase) receipt = rpc_client.get_transaction_receipt(txn_hash) math = Math(receipt['contractAddress']) return math
def contracts(request, rpc_client): from populus.utils import load_contracts from populus.contracts import Contract project_dir = getattr(request.module, "project_dir", os.getcwd()) contracts = load_contracts(project_dir) contract_classes = { name: Contract(rpc_client, name, contract) for name, contract in contracts.items() } _dict = { '__iter__': lambda s: iter(contract_classes.items()), '__getitem__': lambda s, k: contract_classes.__getitem__[k], } _dict.update(contract_classes) return type('contracts', (object, ), _dict)()
def get_contract(contract_name): return Contract(contract_json[contract_name], contract_name)
def get_contract(contract_name): with open(os.path.join(os.path.dirname(__file__), 'alarm.json')) as contract_json: contracts = json.loads(contract_json.read()) return Contract(contracts[contract_name], contract_name)
def test_contract_deploy(rpc_server, rpc_client, eth_coinbase): Math = Contract(rpc_client, 'Math', contract) deploy_txn_hash = Math.deploy(_from=eth_coinbase) receipt = rpc_client.get_transaction_receipt(deploy_txn_hash) assert receipt assert receipt['contractAddress']
def test_contract_deploy_data(math_contract_meta): Math = Contract(math_contract_meta, 'Math') deploy_data = Math.get_deploy_data() assert deploy_data == '0x606060405260f8806100126000396000f30060606040526000357c01000000000000000000000000000000000000000000000000000000009004806316216f3914604b578063a5f3c23b14606a578063dcf537b1146095576049565b005b605460045060e6565b6040518082815260200191505060405180910390f35b607f60048035906020018035906020015060ba565b6040518082815260200191505060405180910390f35b60a460048035906020015060d0565b6040518082815260200191505060405180910390f35b60008183019050805080905060ca565b92915050565b6000600782029050805080905060e1565b919050565b6000600d9050805080905060f5565b9056'
def test_contract_deploy_data_with_constructor(named_contract_meta): Named = Contract(named_contract_meta, 'Named') deploy_data = Named.get_deploy_data('test-name') # check that the hex encoded name is in the deploy data. assert '746573742d6e616d65' in deploy_data assert deploy_data == '0x606060405260405160208060948339016040526060805190602001505b806000600050819055505b50605f8060356000396000f30060606040526000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146037576035565b005b60406004506056565b6040518082815260200191505060405180910390f35b6000600050548156746573742d6e616d650000000000000000000000000000000000000000000000'
def test_contract_deploy_data_constructor_args_error(math_contract_meta): Math = Contract(math_contract_meta, 'Math') with pytest.raises(ValueError): Math.get_deploy_data('unexpected-argument')
def Math(math_contract_meta): from populus.contracts import Contract Math = Contract(math_contract_meta, 'Math') return Math
def LogsEvents(logs_events_contract_meta): from populus.contracts import Contract LogsEvents = Contract(logs_events_contract_meta, 'LogsEvents') return LogsEvents
def Named(named_contract_meta): from populus.contracts import Contract Named = Contract(named_contract_meta, 'Named') return Named
def Math(rpc_client): Math = Contract(rpc_client, 'Math', contract) return Math
import os import json from populus.contracts import Contract BASE_DIR = os.path.dirname(__file__) CONTRACT_ABI_PATH = os.path.join(BASE_DIR, 'contracts.json') contract_json = json.loads(open(CONTRACT_ABI_PATH).read()) future_block_call_meta = contract_json['FutureBlockCall'] FutureBlockCall = Contract(future_block_call_meta, "FutureBlockCall") call_lib_meta = contract_json['CallLib'] CallLib = Contract(call_lib_meta, "CallLib")