同步操作将从 kentzhang/python-sdk 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#这个py文件对应的合约是contracts/TestStruct.sol#注意:TestStruct.sol 的编译器版本是solc6以上from client.contractnote import ContractNotefrom client.bcosclient import (BcosClient,BcosError)import osfrom eth_utils import to_checksum_address, decode_hex, keccakfrom client.datatype_parser import DatatypeParserfrom console_utils.console_common import print_receipt_logs_and_txoutputclient = BcosClient()info = client.getinfo()print(info)# 从文件加载abi定义contractname = "TestStruct"contractFile = "contracts\\"+contractname+".abi"abi_parser = DatatypeParser()abi_parser.load_abi_file(contractFile)contract_abi = abi_parser.contract_abiprint(client.getNodeVersion())#如合约未部署,用python console.py deploy TestStruct 部署一次#或者自行定位链上既有的合约地址#address = "0x901250d3fcb6cf282134b12acdd0f1d67f265566"address = ContractNote.get_last(client.get_full_name(),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)#print("addUser",res)print_receipt_logs_and_txoutput(client,res,contractname)res = client.call(address,contract_abi,"getUser",["zero"])print ("call:",res)#对应第一个参数User[] memory _users,这个参数本身是个数组,所以,_users是参数数组里的’数组‘ [[]]args=[[("zero",78),("yark",55),("xar",23)]]res = client.sendRawTransactionGetReceipt(address,contract_abi,"addUsers",args)print_receipt_logs_and_txoutput(client,res,contractname)res = client.call(address,contract_abi,"getUser",["yark"])print ("call:",res)print("address is",address)b = keccak(bytes(address, "utf-8"))print(b)args = ["name123",b]res = client.sendRawTransactionGetReceipt(address,contract_abi,"putbytes",args)print_receipt_logs_and_txoutput(client,res,contractname)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。