Ejemplo n.º 1
0
def connect_web3(url, chain_id=101):
    if "ws" in url:
        w3 = Web3(WebsocketProvider(url), chain_id=chain_id)
    else:
        w3 = Web3(HTTPProvider(url), chain_id=chain_id)
    w3.middleware_stack.inject(geth_poa_middleware, layer=0)
    return w3
Ejemplo n.º 2
0
def init_web3(providers=default):
    from client_sdk_python import Web3

    if providers is default:
        w3 = Web3(ens=None)
    else:
        w3 = Web3(providers, ens=None)

    return customize_web3(w3)
Ejemplo n.º 3
0
def connect_web3(url):
    '''
    连接web3服务,增加区块查询中间件,用于实现eth_getBlockByHash,eth_getBlockByNumber等方法
    '''
    if "ws" in url:
        w3 = Web3(WebsocketProvider(url))
    else:
        w3 = Web3(HTTPProvider(url))
    w3.middleware_stack.inject(geth_poa_middleware, layer=0)
    return w3
Ejemplo n.º 4
0
def generate_go_ethereum_fixture(destination_dir):
    with contextlib.ExitStack() as stack:
        datadir = stack.enter_context(tempdir())

        keystore_dir = os.path.join(datadir, 'keystore')
        ensure_path_exists(keystore_dir)
        keyfile_path = os.path.join(keystore_dir, KEYFILE_FILENAME)
        with open(keyfile_path, 'w') as keyfile:
            keyfile.write(KEYFILE_DATA)
        genesis_file_path = os.path.join(datadir, 'genesis.json')
        with open(genesis_file_path, 'w') as genesis_file:
            genesis_file.write(json.dumps(GENESIS_DATA))

        geth_ipc_path_dir = stack.enter_context(tempdir())
        geth_ipc_path = os.path.join(geth_ipc_path_dir, 'geth.ipc')

        geth_port = get_open_port()
        geth_binary = get_geth_binary()

        with get_geth_process(geth_binary=geth_binary,
                              datadir=datadir,
                              genesis_file_path=genesis_file_path,
                              geth_ipc_path=geth_ipc_path,
                              geth_port=geth_port):

            wait_for_socket(geth_ipc_path)
            web3 = Web3(Web3.IPCProvider(geth_ipc_path))
            chain_data = setup_chain_state(web3)
            # close geth by exiting context
            # must be closed before copying data dir
            verify_chain_state(web3, chain_data)

        # verify that chain state is still valid after closing
        # and re-opening geth
        with get_geth_process(geth_binary=geth_binary,
                              datadir=datadir,
                              genesis_file_path=genesis_file_path,
                              geth_ipc_path=geth_ipc_path,
                              geth_port=geth_port):

            wait_for_socket(geth_ipc_path)
            web3 = Web3(Web3.IPCProvider(geth_ipc_path))
            verify_chain_state(web3, chain_data)

        static_data = {
            'raw_txn_account': RAW_TXN_ACCOUNT,
            'keyfile_pw': KEYFILE_PW,
        }
        config = merge(chain_data, static_data)
        pprint.pprint(config)
        write_config_json(config, datadir)

        shutil.copytree(datadir, destination_dir)
Ejemplo n.º 5
0
def connect_web3(url, chain_id=100):
    """
    Connect to the web3 service, add block query middleware,
     use to implement eth_getBlockByHash, eth_getBlockByNumber, etc.
    :param url:
    :param chain_id:
    :return:
    """
    if "ws" in url:
        w3 = Web3(WebsocketProvider(url), chain_id=chain_id)
    else:
        w3 = Web3(HTTPProvider(url), chain_id=chain_id)
    w3.middleware_stack.inject(geth_poa_middleware, layer=0)

    return w3
Ejemplo n.º 6
0
def test_isConnected_disconnected():
    """
    Web3.isConnected() returns False when configured with a provider
    that's not connected to a node.
    """
    web3 = Web3(DisconnectedProvider())
    assert web3.isConnected() is False
Ejemplo n.º 7
0
def w3(open_port, start_websocket_server):
    # need new event loop as the one used by server is already running
    event_loop = asyncio.new_event_loop()
    endpoint_uri = 'ws://127.0.0.1:{}'.format(open_port)
    event_loop.run_until_complete(wait_for_ws(endpoint_uri, event_loop))
    provider = WebsocketProvider(endpoint_uri, websocket_timeout=0.01)
    return Web3(provider)
Ejemplo n.º 8
0
def test_auto_provider_none():
    # init without provider succeeds, even when no provider available
    w3 = Web3()

    # non-node requests succeed
    w3.toHex(0) == '0x0'

    type(w3.providers[0]) == AutoProvider
Ejemplo n.º 9
0
def name_to_hash(name):
    node = EMPTY_SHA3_BYTES
    if name:
        labels = name.split(".")
        for label in reversed(labels):
            labelhash = label_to_hash(label)
            assert isinstance(labelhash, bytes)
            assert isinstance(node, bytes)
            node = Web3().sha3(node + labelhash)
    return node
Ejemplo n.º 10
0
def unit_test_address(url):
    w3 = Web3(HTTPProvider(url))
    platon = PlatON(w3)
    print(platon.net_type)
    ppos = Ppos(w3)
    pip = Pip(w3)
    print(ppos.getPackageReward())
    print('w3 net_type is:{}'.format(platon.net_type))
    print('platon net_type is:{}'.format(platon.net_type))
    print('stakingAddress is:{}'.format(ppos.stakingAddress))
    print('penaltyAddress is:{}'.format(ppos.penaltyAddress))
    print('delegateRewardAddress is:{}'.format(ppos.delegateRewardAddress))
    print('restrictingAddress is:{}'.format(ppos.restrictingAddress))
    print('pipAddress is:{}'.format(pip.pipAddress))
Ejemplo n.º 11
0
def batch_send_transfer(txfile, config):
    # 交易文件列表
    if txfile == "":
        print("-f/--txfile is null, please input.")
        exit(1)

    # 发送交易的节点配置信息
    if config == "":
        print("-c/--config is null, please input.")
        exit(1)

    try:
        # 获取节点 url
        with open(config, 'r') as load_f:
            config_info = json.load(load_f)
            url = config_info['nodeAddress'] + ":" + config_info['nodeRpcPort']

        # 获取交易列表
        transaction_list_raw = read_csv(txfile)
        transaction_list = []
        for one_transaction in transaction_list_raw:
            transaction_list.append(transaction_str_to_int(one_transaction))

        if len(transaction_list) == 0 :
            print("have not transaction.")
            exit(1)
        w3 = Web3(HTTPProvider(url))
        platon = Eth(w3)
        # 获取当前nonce
        curr_nonce = platon.getTransactionCount(Web3.toChecksumAddress(transaction_list[0]["from"]))

        # 发送交易
        print('\nstart to send transfer transaction, please wait...\n')
        for one_transaction in transaction_list:
            if curr_nonce > int(one_transaction["nonce"]):
                continue
            transfer_send(platon, one_transaction["rawTransaction"])
            sleep(1)

    except Exception as e:
        print('{} {}'.format('exception: ', e))
        print('batch send transfer transaction failure!!!')
        sys.exit(1)
    else:
        print('batch send transfer transaction SUCCESS.')
        end = datetime.datetime.now()
        print("end:{}".format(end))
        print("总共消耗时间:{}s".format((end - start).seconds))
        sys.exit(0)
Ejemplo n.º 12
0
 def test_verify_transaction(self):
     '''
     @Description: 切换验证人后,测试交易是否成功,所有节点块高是否一致
     @param {type} @@@@
     @return: @@@@
     '''
     tx_hash = self.platon_dpos1.eth.sendTransaction(self.send_data)
     self.platon_dpos1.eth.waitForTransactionReceipt(tx_hash)
     block_list = []
     for w in self.w3_list:
         block_list.append(w.eth.blockNumber)
     assert min(block_list) > 60, "区块没有正常增加"
     assert max(block_list) - min(block_list) < 5, "各节点区块高度差距过高"
     time.sleep(60)
     w3 = Web3(Web3.HTTPProvider(self.rpc_dict["node6"]))
     assert w3.net.peerCount >= 3, "节点node6连接的节点数少于3个"
Ejemplo n.º 13
0
def test_time_based_gas_price_strategy(strategy_params, expected):
    fixture_middleware = construct_result_generator_middleware({
        'platon_getBlockByHash': _get_block_by_something,
        'platon_getBlockByNumber': _get_block_by_something,
    })

    w3 = Web3(
        providers=[BaseProvider()],
        middlewares=[fixture_middleware],
    )

    time_based_gas_price_strategy = construct_time_based_gas_price_strategy(
        **strategy_params,
    )
    w3.eth.setGasPriceStrategy(time_based_gas_price_strategy)
    actual = w3.eth.generateGasPrice()
    assert actual == expected
Ejemplo n.º 14
0
def test_time_based_gas_price_strategy_zero_sample(strategy_params_zero,
                                                   expected_exception_message):
    with pytest.raises(ValidationError) as excinfo:
        fixture_middleware = construct_result_generator_middleware({
            'platon_getBlockByHash': _get_block_by_something,
            'platon_getBlockByNumber': _get_block_by_something,
        })

        w3 = Web3(
            providers=[BaseProvider()],
            middlewares=[fixture_middleware],
        )
        time_based_gas_price_strategy_zero = construct_time_based_gas_price_strategy(
            **strategy_params_zero,
        )
        w3.eth.setGasPriceStrategy(time_based_gas_price_strategy_zero)
        w3.eth.generateGasPrice()
    assert str(excinfo.value) == expected_exception_message
Ejemplo n.º 15
0
def batch_send_transfer(accountsfile, config):
    # 交易文件列表
    if accountsfile == "":
        print("-f/--accountsfile is null, please input.")
        exit(1)

    # 发送交易的节点配置信息
    if config == "":
        print("-c/--config is null, please input.")
        exit(1)

    try:
        # 获取节点 url
        with open(config, 'r') as load_f:
            config_info = json.load(load_f)
            url = config_info['nodeAddress'] + ":" + config_info['nodeRpcPort']

        w3 = Web3(HTTPProvider(url))
        platon = Eth(w3)
        # 获取交易列表
        rows = read_csv(accountsfile)
        for row in rows:
            if 'address' in row:
                address = row["address"]
            else:
                raise Exception(
                    "The address field does not exist in the address file!")

            amount = platon.getBalance(Web3.toChecksumAddress(address))
            amount = w3.fromWei(amount, "ether")

            print("address:{}, amount:{}LAT".format(address, amount))

    except Exception as e:
        print('{} {}'.format('exception: ', e))
        print('batch get account balance failure!!!')
        sys.exit(1)
    else:
        print('batch get account balance  SUCCESS.')
        end = datetime.datetime.now()
        print("end:{}".format(end))
        print("总共消耗时间:{}s".format((end - start).seconds))
        sys.exit(0)
Ejemplo n.º 16
0
def test_autoprovider_detection():
    def no_provider():
        return None

    def must_not_call():
        assert False

    auto = AutoProvider([
        no_provider,
        DisconnectedProvider,
        ConnectedProvider,
        must_not_call,
    ])

    w3 = Web3(auto)

    assert w3.isConnected()

    assert isinstance(auto._active_provider, ConnectedProvider)
Ejemplo n.º 17
0
def generate_go_ethereum_fixture(destination_dir):
    with contextlib.ExitStack() as stack:
        datadir = stack.enter_context(common.tempdir())

        keystore_dir = os.path.join(datadir, 'keystore')
        common.ensure_path_exists(keystore_dir)
        keyfile_path = os.path.join(keystore_dir, common.KEYFILE_FILENAME)
        with open(keyfile_path, 'w') as keyfile:
            keyfile.write(common.KEYFILE_DATA)
        genesis_file_path = os.path.join(datadir, 'genesis.json')
        with open(genesis_file_path, 'w') as genesis_file:
            genesis_file.write(json.dumps(common.GENESIS_DATA))

        geth_ipc_path_dir = stack.enter_context(common.tempdir())
        geth_ipc_path = os.path.join(geth_ipc_path_dir, 'geth.ipc')

        geth_port = get_open_port()
        geth_binary = common.get_geth_binary()

        geth_proc = stack.enter_context(
            common.get_geth_process(  # noqa: F841
                geth_binary=geth_binary,
                datadir=datadir,
                genesis_file_path=genesis_file_path,
                ipc_path=geth_ipc_path,
                port=geth_port,
                networkid=str(common.GENESIS_DATA['config']['chainId'])))

        common.wait_for_socket(geth_ipc_path)
        web3 = Web3(Web3.IPCProvider(geth_ipc_path))
        chain_data = setup_chain_state(web3)
        static_data = {
            'raw_txn_account': common.RAW_TXN_ACCOUNT,
            'keyfile_pw': common.KEYFILE_PW,
        }
        pprint.pprint(merge(chain_data, static_data))

        shutil.copytree(datadir, destination_dir)
Ejemplo n.º 18
0
def web3(geth_process, geth_ipc_path):
    wait_for_socket(geth_ipc_path)
    _web3 = Web3(Web3.IPCProvider(geth_ipc_path))
    return _web3
Ejemplo n.º 19
0
def test_isConnected_connected():
    """
    Web3.isConnected() returns True when connected to a node.
    """
    web3 = Web3(ConnectedProvider())
    assert web3.isConnected() is True
def web3(geth_process, endpoint_uri):
    wait_for_http(endpoint_uri)
    _web3 = Web3(Web3.HTTPProvider(endpoint_uri))
    return _web3
Ejemplo n.º 21
0
from client_sdk_python import (
    IPCProvider,
    Web3,
)

w3 = Web3(IPCProvider())
Ejemplo n.º 22
0
def ensure_hex(data):
    if not isinstance(data, str):
        return Web3().toHex(data)
    return data
Ejemplo n.º 23
0
def web3(parity_process, endpoint_uri, event_loop):
    event_loop.run_until_complete(wait_for_ws(endpoint_uri, event_loop))
    _web3 = Web3(Web3.WebsocketProvider(endpoint_uri))
    return _web3
Ejemplo n.º 24
0
def w3():
    return Web3(EthereumTesterProvider())
Ejemplo n.º 25
0
def ens_setup():
    w3 = Web3(EthereumTesterProvider(EthereumTester()))

    # ** Set up ENS contracts **

    # remove account that creates ENS, so test transactions don't have write access
    accounts = w3.eth.accounts
    ens_key = accounts.pop()

    # create ENS contract
    eth_labelhash = w3.sha3(text='eth')
    eth_namehash = bytes32(
        0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae)
    resolver_namehash = bytes32(
        0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5)
    reverse_tld_namehash = bytes32(
        0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
    )  # noqa: E501
    reverser_namehash = bytes32(
        0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2)
    ens_contract = deploy(w3, ENSFactory, ens_key)

    # create public resolver
    public_resolver = deploy(w3,
                             PublicResolverFactory,
                             ens_key,
                             args=[ens_contract.address])

    # set 'resolver.eth' to resolve to public resolver
    ens_contract.functions.setSubnodeOwner(b'\0' * 32, eth_labelhash,
                                           ens_key).transact({'from': ens_key})

    ens_contract.functions.setSubnodeOwner(eth_namehash,
                                           w3.sha3(text='resolver'),
                                           ens_key).transact({'from': ens_key})

    ens_contract.functions.setResolver(
        resolver_namehash, public_resolver.address).transact({'from': ens_key})

    public_resolver.functions.setAddr(
        resolver_namehash, public_resolver.address).transact({'from': ens_key})

    # create .eth auction registrar
    eth_registrar = deploy(
        w3,
        ETHRegistrarFactory,
        ens_key,
        args=[ens_contract.address, eth_namehash, 1],
    )

    # set '.eth' to resolve to the registrar
    ens_contract.functions.setResolver(
        eth_namehash, public_resolver.address).transact({'from': ens_key})

    public_resolver.functions.setAddr(
        eth_namehash, eth_registrar.address).transact({'from': ens_key})

    # create reverse resolver
    reverse_resolver = deploy(w3,
                              DefaultReverseResolver,
                              ens_key,
                              args=[ens_contract.address])

    # create reverse registrar
    reverse_registrar = deploy(
        w3,
        ReverseRegistrar,
        ens_key,
        args=[ens_contract.address, reverse_resolver.address])

    # set 'addr.reverse' to resolve to reverse registrar
    ens_contract.functions.setSubnodeOwner(b'\0' * 32, w3.sha3(text='reverse'),
                                           ens_key).transact({'from': ens_key})

    ens_contract.functions.setSubnodeOwner(reverse_tld_namehash,
                                           w3.sha3(text='addr'),
                                           ens_key).transact({'from': ens_key})

    ens_contract.functions.setResolver(
        reverser_namehash, public_resolver.address).transact({'from': ens_key})

    public_resolver.functions.setAddr(reverser_namehash,
                                      reverse_registrar.address).transact(
                                          {'from': ens_key})

    # set owner of tester.eth to an account controlled by tests
    ens_contract.functions.setSubnodeOwner(
        eth_namehash,
        w3.sha3(text='tester'),
        w3.eth.accounts[
            2]  # note that this does not have to be the default, only in the list
    ).transact({'from': ens_key})

    # make the registrar the owner of the 'eth' name
    ens_contract.functions.setSubnodeOwner(b'\0' * 32, eth_labelhash,
                                           eth_registrar.address).transact(
                                               {'from': ens_key})

    # make the reverse registrar the owner of the 'addr.reverse' name
    ens_contract.functions.setSubnodeOwner(reverse_tld_namehash,
                                           w3.sha3(text='addr'),
                                           reverse_registrar.address).transact(
                                               {'from': ens_key})

    return ENS.fromWeb3(w3, ens_contract.address)
Ejemplo n.º 26
0
from client_sdk_python import Web3, HTTPProvider
from client_sdk_python.eth import PlatON
from hexbytes import HexBytes

# get blockNumber
w3 = Web3(HTTPProvider("http://localhost:6789"))
platon = PlatON(w3)
block_number = platon.blockNumber
print(block_number)

# get Balance
address = '0x493301712671Ada506ba6Ca7891F436D29185821'
balance = platon.getBalance(address)
print(balance)

# sendtransaction
to = '0xC1f330B214668beAc2E6418Dd651B09C759a4Bf5'
w3.personal.unlockAccount(address, "password", 60)
data = {
    "from": address,
    "to": to,
    "value": 0x10909,
}
transaction_hex = HexBytes(platon.sendTransaction(data)).hex()
result = platon.waitForTransactionReceipt(transaction_hex)
print(result)
def w3_base():
    return Web3(providers=[BaseProvider()], middlewares=[])
Ejemplo n.º 28
0
#     //获取地址的余额
#     function getBalances(address addr) view public returns (uint){
#         return addr.balance;
#     }
#
#     function transfer(address payable addr) public payable{
#         addr.transfer(msg.value);
#     }
# }
# '''

true = True
false = False


w3 = Web3(HTTPProvider("http://10.10.8.209:6789"))
platon = PlatON(w3)
print(w3.isConnected())
# w3 = Web3(HTTPProvider("http://10.1.1.5:6789"))
# platon = PlatON(w3)
# print(w3.isConnected())
# from_address = "lax1uqug0zq7rcxddndleq4ux2ft3tv6dqljphydrl"
from_address = "lax1du4w3q0h5gpxh2vpdvtl7m8h2p9qj40a2krhx7"
print(from_address)
# send_privatekey = "983759fe9aac227c535b21d78792d79c2f399b1d43db46ae6d50a33875301557"
send_privatekey = "983759fe9aac227c535b21d78792d79c2f399b1d43db46ae6d50a33875301557"

# bytecode = '608060405234801561001057600080fd5b506040518060400160405280600581526020017f48656c6c6f0000000000000000000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b610465806101166000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610101578063ef690cc014610184575b600080fd5b6100ff6004803603602081101561005c57600080fd5b810190808035906020019064010000000081111561007957600080fd5b82018360208201111561008b57600080fd5b803590602001918460018302840111640100000000831117156100ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610207565b005b610109610221565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018c6102c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061021d929190610361565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102b95780601f1061028e576101008083540402835291602001916102b9565b820191906000526020600020905b81548152906001019060200180831161029c57829003601f168201915b5050505050905090565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103595780601f1061032e57610100808354040283529160200191610359565b820191906000526020600020905b81548152906001019060200180831161033c57829003601f168201915b505050505081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106103a257805160ff19168380011785556103d0565b828001600101855582156103d0579182015b828111156103cf5782518255916020019190600101906103b4565b5b5090506103dd91906103e1565b5090565b61040391905b808211156103ff5760008160009055506001016103e7565b5090565b9056fea265627a7a7231582049d7f8a29a0126f071821d6483cb3a246925e56555044971726b41b649dd7e6864736f6c63782c302e352e31332d646576656c6f702e323032302e352e31382b636f6d6d69742e33616239633638642e6d6f64005c'
# bytecode = '608060405234801561001057600080fd5b506040516106243803806106248339818101604052602081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b8382019150602082018581111561006957600080fd5b825186600182028301116401000000008211171561008657600080fd5b8083526020830192505050908051906020019080838360005b838110156100ba57808201518184015260208101905061009f565b50505050905090810190601f1680156100e75780820380516001836020036101000a031916815260200191505b50604052505050806000908051906020019061010492919061010b565b50506101b0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061014c57805160ff191683800117855561017a565b8280016001018555821561017a579182015b8281111561017957825182559160200191906001019061015e565b5b509050610187919061018b565b5090565b6101ad91905b808211156101a9576000816000905550600101610191565b5090565b90565b610465806101bf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610101578063ef690cc014610184575b600080fd5b6100ff6004803603602081101561005c57600080fd5b810190808035906020019064010000000081111561007957600080fd5b82018360208201111561008b57600080fd5b803590602001918460018302840111640100000000831117156100ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610207565b005b610109610221565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018c6102c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061021d929190610361565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102b95780601f1061028e576101008083540402835291602001916102b9565b820191906000526020600020905b81548152906001019060200180831161029c57829003601f168201915b5050505050905090565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103595780601f1061032e57610100808354040283529160200191610359565b820191906000526020600020905b81548152906001019060200180831161033c57829003601f168201915b505050505081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106103a257805160ff19168380011785556103d0565b828001600101855582156103d0579182015b828111156103cf5782518255916020019190600101906103b4565b5b5090506103dd91906103e1565b5090565b61040391905b808211156103ff5760008160009055506001016103e7565b5090565b9056fea265627a7a72315820f67de41e40b8cf679e7bae0565040506f43456684b3fa204030df4e564ea476264736f6c63782c302e352e31332d646576656c6f702e323032302e352e31382b636f6d6d69742e33616239633638642e6d6f64005c'
bytecode = '608060405234801561001057600080fd5b506101a1806100206000396000f3fe6080604052600436106100295760003560e01c80631a6952301461002e578063c84aae1714610072575b600080fd5b6100706004803603602081101561004457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100d7565b005b34801561007e57600080fd5b506100c16004803603602081101561009557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610121565b6040518082815260200191505060405180910390f35b8073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561011d573d6000803e3d6000fd5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff1631905091905056fea265627a7a723158205ec5e488bb1e8d852f1da0fafa9a4557d3c92d3bf9b839b176c551d75c76b51064736f6c63782c302e352e31332d646576656c6f702e323032302e352e31382b636f6d6d69742e33616239633638642e6d6f64005c'
Ejemplo n.º 29
0
from client_sdk_python.packages.platon_keys.utils import bech32, address
from client_sdk_python.packages.eth_utils import to_checksum_address

true = True
false = False

# w3 = Web3(HTTPProvider("http://10.1.1.5:6789"))
# platon = PlatON(w3)
# print(w3.isConnected())
#
# from_address = "lax1yjjzvjph3tw4h2quw6mse25y492xy7fzwdtqja"
# print(from_address)
#
# send_privatekey = "16e80ad4079462cc7f9748af2f9cf03e8f7384bed597c086db4f11a98c3b08f0"

w3 = Web3(HTTPProvider("http://10.1.1.2:6789"))
platon = PlatON(w3)
print(w3.isConnected())

from_address = "lax1uqug0zq7rcxddndleq4ux2ft3tv6dqljphydrl"
print(from_address)

send_privatekey = "983759fe9aac227c535b21d78792d79c2f399b1d43db46ae6d50a33875301557"


def contract_deploy(bytecode, fromAddress):
    bytecode = bytecode
    transactionHash = platon.sendTransaction({
        "from": fromAddress,
        "gas": 1000000,
        "gasPrice": 1000000000,
Ejemplo n.º 30
0
from client_sdk_python import Web3
from client_sdk_python.providers.auto import (
    load_provider_from_uri, )

from .endpoints import (
    INFURA_ROPSTEN_DOMAIN,
    build_http_headers,
    build_infura_url,
)

_infura_url = build_infura_url(INFURA_ROPSTEN_DOMAIN)
_headers = build_http_headers()

w3 = Web3(load_provider_from_uri(_infura_url, _headers))