Example #1
0
transaction = serializable_unsigned_transaction_from_dict(txmap)
# 感受下transaction encode的原始数据
print(encode_hex(rlp.encode(transaction)))

# 实际上只需要用sign_transaction就可以获得rawTransaction的编码数据了,input :txmap,私钥
signedTxResult = Account.sign_transaction(txmap, ac2.privateKey)
print(signedTxResult)
# signedTxResult.rawTransaction是二进制的,要放到rpc接口里要encode下
print(encode_hex(signedTxResult.rawTransaction))

url = "http://119.23.46.126:8545"
rpc = utils.rpc.HTTPProvider(url)
if True:
    param = [1, encode_hex(signedTxResult.rawTransaction)]
    # 发送
    response = rpc.make_request("sendRawTransaction", param)
    print("deploy", response)
    txid = response['result']
    param = [1, txid]
    i = 0
    for i in range(0, 15):
        response = rpc.make_request("getTransactionReceipt", param)
        print("getTransactionReceipt : ", response)
        if response["result"] is None:
            time.sleep(1)
            continue
        result = response["result"]
        newaddr = result['contractAddress']
        blocknum = result['blockNumber']
        print("onblock : %d newaddr : %s " % (int(blocknum, 16), newaddr))
        contractname = os.path.splitext(os.path.basename(contractFile))[0]
Example #2
0
import ssl
import utils.rpc
import sys

print(sys.path)

url = "http://119.23.46.126:8545"
rpc = utils.rpc.HTTPProvider(url)
rpc.isConnected()
param = [1]

bn = rpc.make_request("getBlockNumber", param)
if "error" in bn:
    print("error %d, [%s]" % (bn["error"]["code"], bn["error"]["message"]))
else:
    print("********", int(bn['result'], 16))

txhash = "0x27a7e7c14470a534cbf491310d85ad8e5620a893637cc47cfac964413bb08bf9"
tx = rpc.make_request("getTransactionByHash", [1, txhash])
input = tx["result"]["input"]
print(input)
Example #3
0
if True:
    # testing call
    functiondata = encode_transaction_data("select", contract_abi, None,
                                           ['abcefggg'])
    print("functiondata for call:", functiondata)
    decoderesult = decode_single("(string)", decode_hex(functiondata[10:]))
    print("testing decode: ", decoderesult)
    callmap = dict()
    callmap["data"] = functiondata
    callmap["from"] = ac2.address
    callmap["to"] = contractAddress
    callmap["value"] = 0
    print("calldata", callmap)
    param = [1, callmap]
    # 发送
    response = rpc.make_request("call", param)
    print(response)
    outputdata = response["result"]["output"]
    retabi = "(int256,uint256,address)"

    print("data:", outputdata)
    decoderesult = decode_single(retabi, decode_hex(outputdata))
    print(decoderesult)
    from utils.contracts import get_function_info
    from utils.abi import *

    fn_abi, fn_selector, fn_arguments = get_function_info(
        "select",
        contract_abi,
        None,
        ['string'],
Example #4
0
# 实际上只需要用sign_transaction就可以获得rawTransaction的编码数据了,input :txmap,私钥

signedTxResult = signer.sign_transaction(txmap)

#print("signedTxResult",signedTxResult )
# signedTxResult.rawTransaction是二进制的,要放到rpc接口里要encode下
print("rawTransaction encode:", encode_hex(signedTxResult.rawTransaction))


def encode_transaction(unsigned_transaction, vrs):
    (v, r, s) = vrs
    chain_naive_transaction = dissoc(unsigned_transaction.as_dict(), 'v', 'r',
                                     's')
    signed_transaction = BcosTransaction(v=v,
                                         r=r,
                                         s=s,
                                         **chain_naive_transaction)
    return rlp.encode(signed_transaction)


data = b"Hello,World!"
b = keccak(data)
print("hello world hash : ", encode_hex(b))
url = "http://127.0.0.1:8555"
rpc = utils.rpc.HTTPProvider(url)
if True:
    param = [1, encode_hex(signedTxResult.rawTransaction)]
    # 发送
    response = rpc.make_request("sendRawTransaction", param)
    print(response)