def parse(args, args_types): parsed_args = [] for arg, arg_type in zip(args, args_types): if isinstance(arg, str) and len(arg) > 0 and arg[0] == '@': try: contract_addr, begining_pos = arg[1:].split('.') contract_addr, domain = \ eth_known_contract[contract_addr]['address'], eth_known_contract[contract_addr]['host'] authen_pos = HexBytes(SoliTypes[arg_type].ori_loc(begining_pos)).hex() # print(authen_pos, contract_addr, domain) parsed_args.append(JsonRPC.send( JsonRPC.eth_get_storage_at(contract_addr, authen_pos, "latest"), HTTP_HEADER, domain )['result']) except: parsed_args.append("012") else: parsed_args.append(arg) return AbiEncoder.encodes(parsed_args, args_types)
from uiputils.ethtools import JsonRPC EDB_PATH = "D:/Go Ethereum/data/geth/chaindata" url = "http://127.0.0.1:8545" HTTP_HEADER = {'Content-Type': 'application/json'} nsb_addr = "0x43710274DaADCe0D8bDFE7ae6495140eA83CDA6a" # ("0x076122c56613fc1e3ae97d715ca7cb6a35a934c6") nsb_abi_addr = "../nsb/nsb.abi" nsb_bytecode_addr = "../nsb/nsb.bin" nsb_db_addr = "../nsb/actiondata" if __name__ == '__main__': print( JsonRPC.send( JsonRPC.eth_get_storage_at( "0x7c7b26fa65e091f7b9f23db77ad5f714f1dae5ea", "0x0", "latest"), HTTP_HEADER, 'http://127.0.0.1:8545')['result']) # web3h = ServiceStart.startweb3(url) # key = 0 # nsbt = EthNetStatusBlockchain(url, nsb_addr, nsb_abi_addr, EDB_PATH, nsb_bytecode_addr) # nsb = nsbt.handle # print(JsonRPC.send(url, HTTP_HEADER, JsonRPC.ethGetProof(nsb_addr, ["0x0"], "latest")) # ['result']['storageProof'][0]['value']) # # print(nsb.funcs()) # idx: 0 # block_address A # storageHash 0x933b2499f931cef309f61259914d250c69446f55dcd9a6e85cebf0aed214ef36 # key 0x0275b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9 # value 0x0100000000000000000000000000000000000000000000000000000000000000