Пример #1
0
res = client.call(to_address, contract_abi, "getall")
print("call getall result:", res)

#以下是查询类的接口,大部分是返回json,可以根据对fisco bcos rpc接口json格式的理解,进行字段获取和转码
'''
useful helper:
int(num,16)  hex -> int
hex(num)  : int -> hex
'''

doQueryTest = False
if doQueryTest:
    print(
        "\n>>---------------------------------------------------------------------"
    )
    res = client.getNodeVersion()
    print(
        "\n>>---------------------------------------------------------------------"
    )
    print("getClientVersion", res)
    print(
        "\n>>---------------------------------------------------------------------"
    )
    try:
        res = client.getBlockNumber()
        print("getBlockNumber", res)
    except BcosError as e:
        print("bcos client error,", e.info())
    print(
        "\n>>---------------------------------------------------------------------"
    )
Пример #2
0
from client.bcosclient import (BcosClient, BcosError)
import os
from eth_utils import to_checksum_address
from client.datatype_parser import DatatypeParser
from console_utils.console_common import print_receipt_logs_and_txoutput
client = BcosClient()
info = client.init()
print(info)

# 从文件加载abi定义
contractname = "TestStruct"
contractFile = "contracts\\" + contractname + ".abi"
abi_parser = DatatypeParser()
abi_parser.load_abi_file(contractFile)
contract_abi = abi_parser.contract_abi
print(client.getNodeVersion())

#如合约未部署,用python console.py deploy TestStruct 部署一次
#或者自行定位链上既有的合约地址
#address = "0x901250d3fcb6cf282134b12acdd0f1d67f265566"
address = ContractNote.get_last(contractname)
print(address)

res = client.call(address, contract_abi, "getUser", ["alice"])
print("call:", res)

# User结构体参数示例。合约接口里的结构体,对应python的tuple数据类型
# 注:调用合约时的入参一定是个python数组,因为合约接口参数可能有一到多个
args = [("zero", 78)]
res = client.sendRawTransactionGetReceipt(address, contract_abi, "addUser",
                                          args)