同步操作将从 kentzhang/python-sdk 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import rlpfrom client.bcostransactions import serializable_unsigned_transaction_from_dictfrom client.datatype_parser import DatatypeParserfrom eth_abi import encode_abi,decode_abifrom utils.contracts import encode_transaction_data, get_function_info#from utils.contracts import encode_abifrom eth_utils import (function_signature_to_4byte_selector,event_abi_to_log_topic,encode_hex, decode_hex)parser = DatatypeParser("contracts/TestStruct.abi")print(parser)fn_name = "addUser"abi = parser.get_function_abi(fn_name)args=[("alice",23)]print(args)#l = encode_abi(['bytes32', 'bytes32'], [b'a', b'b'])#l = encode_abi([('string','uint256')],[args])#print(encode_hex(l))data = '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000005616c696365000000000000000000000000000000000000000000000000000000'#p = decode_abi(['string','uint256'],decode_hex(data))#print(p)functiondata = encode_transaction_data(fn_name, parser.contract_abi, None, args)print("functiondata",functiondata)inputabi = ['(string,uint256)'];decodedata = decode_abi(inputabi,decode_hex(data))print("decodedata",decodedata)import rematchpattern = r"\(.*?\)"s = '("bob1",88),("carol",11)'res = re.split(matchpattern,s)#print(res)#print(res[2])s ='[abc,"12,34"]'ss = s.split(",")#print(ss)def split_param(inputparam:str):splitter = ','item = ""stopchar = ''arrayres=[]status = 0stopchardict = dict()stopchardict['\'']='\''stopchardict['"'] = '"'stopchardict['('] = ')'stopchardict['['] = ']'i=0oldstatus =0for i in range(0,len(inputparam)):c = inputparam[i]#print("c:[{}],itemis [{}],status {}".format(c,item,status) )if c == '\\': #转义字符\ ,跳过它,下一个字符默认纳入#print("skip [{}]".format(c))oldstatus = statusstatus = 2 #默认纳入下一个字符continue#print(c)if status ==0:if c == splitter: # 遇到分隔符,arrayres.append(item)item = ""continueif c in stopchardict:stopchar = stopchardict[c]status = 1 #status =1意思是这一段字符串必须到配对的stopchar才结束item = item + ccontinueif status == 1:item = item + cif c==stopchar:stopchar=''status = 0continueif status == 2:status = oldstatusitem = item + ccontinuearrayres.append(item)return arrayress="'1\\',a',2,3,[(efg),(abc)]";print("start ",s)res = split_param(s)print("---------")for n in res:print(n)print(split_param("1,2,3,4"))print(split_param("1,2,3,4,[a,b,c],(11,22,33)"))print(split_param("(aa,bb,cc),('xx','yy','zz'),(11,22,33)"))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。