Esempio n. 1
0
    def register_contract(task_uuid, name):

        contract_to_be_registered_id = call_contract_function(
            contract_address=id_contract_address,
            contract_type='ContractIds',
            func=name)

        task = celery_utils.await_blockchain_success(task_uuid,
                                                     timeout=timeout)
        contract_address = task['contract_address']

        return transact_with_function_task(
            signing_address=deploying_address,
            contract_address=registry_contract_address,
            contract_type='ContractRegistry',
            func='registerAddress',
            args=[{
                'type': 'bytes',
                'data': contract_to_be_registered_id
            }, contract_address],
            gas_limit=8000000)
Esempio n. 2
0
def deploy_and_fund_reserve_token(deploying_address, name, symbol,
                                  fund_amount_wei):

    deploy_task_uuid = deploy_contract_task(deploying_address, 'WrappedDai',
                                            [name, symbol])

    reserve_token_address = get_contract_address(deploy_task_uuid)

    send_eth_task_id = send_eth_task(deploying_address, fund_amount_wei,
                                     reserve_token_address)

    res = celery_utils.await_blockchain_success(send_eth_task_id,
                                                timeout=timeout)

    balance = call_contract_function(contract_address=reserve_token_address,
                                     contract_type='WrappedDai',
                                     func='balanceOf',
                                     args=[deploying_address])

    print(f'Account balance for {reserve_token_address} is: {balance}')

    return reserve_token_address
Esempio n. 3
0
def deploy_exchange_network(deploying_address):
    gasPrice = int(2.5e11)

    def deployer(contract_name, args=None):
        return deploy_contract_task(deploying_address, contract_name, args)

    def register_contract(task_uuid, name):

        contract_to_be_registered_id = call_contract_function(
            contract_address=id_contract_address,
            contract_type='ContractIds',
            func=name)

        task = celery_utils.await_blockchain_success(task_uuid,
                                                     timeout=timeout)
        contract_address = task['contract_address']

        return transact_with_function_task(
            signing_address=deploying_address,
            contract_address=registry_contract_address,
            contract_type='ContractRegistry',
            func='registerAddress',
            args=[{
                'type': 'bytes',
                'data': contract_to_be_registered_id
            }, contract_address],
            gas_limit=8000000)

    reg_deploy = deployer(contract_name='ContractRegistry')
    ids_deploy = deployer(contract_name='ContractIds')

    registry_contract_address = get_contract_address(reg_deploy)
    id_contract_address = get_contract_address(ids_deploy)

    features_deploy = deployer(contract_name='ContractFeatures')

    price_limit_deploy = deployer(contract_name='BancorGasPriceLimit',
                                  args=[gasPrice])

    formula_deploy = deployer(contract_name='BancorFormula')

    nst_reg_deploy = deployer(contract_name='NonStandardTokenRegistry')

    network_deploy = deployer(contract_name='BancorNetwork',
                              args=[registry_contract_address])

    # factory_deploy = deployer(contract_name='BancorConverterFactory')

    factory_upgrader_deploy = deployer(contract_name='BancorConverterUpgrader',
                                       args=[registry_contract_address])

    register_contract(features_deploy, 'CONTRACT_FEATURES')
    register_contract(price_limit_deploy, 'BANCOR_GAS_PRICE_LIMIT')
    register_contract(formula_deploy, 'BANCOR_FORMULA')
    register_contract(nst_reg_deploy, 'NON_STANDARD_TOKEN_REGISTRY')
    register_contract(network_deploy, 'BANCOR_NETWORK')
    # register_contract(factory_deploy, 'BANCOR_CONVERTER_FACTORY')
    register_contract(factory_upgrader_deploy, 'BANCOR_CONVERTER_UPGRADER')

    network_address = get_contract_address(network_deploy)

    set_signer_task = transact_with_function_task(
        signing_address=deploying_address,
        contract_address=network_address,
        contract_type='BancorNetwork',
        func='setSignerAddress',
        args=[deploying_address],
        gas_limit=8000000)

    res = celery_utils.await_blockchain_success(set_signer_task,
                                                timeout=timeout)

    return registry_contract_address