def exec_cmd_with_hash_param(self, cmd, params): """ execute cmd with one hash param """ if cmd not in RPCConsole.functions["one_hash"]: return # check_param common.check_param_num(params, 1, False) # check contract address if cmd == "getCode": try: if len(params) > 1: raise ArgumentsError( "{} must provide one param".format(cmd)) address = to_checksum_address(params[0]) self.exec_command(cmd, [address]) except Exception as e: raise ArgumentsError("invalid address: {}, info: {}".format( params[0], e)) else: if len(params) > 2: raise ArgumentsError( "{} must provide no more than one param".format(cmd)) # check hash common.check_hash(params[0]) result = self.exec_command(cmd, [params[0]]) if len(params) < 2 or result is None: return self.parse_output(cmd, params[1], result)
def getBlockByHash(self, block_hash, _includeTransactions=True): cmd = "getBlockByHash" common.check_hash(block_hash) includeTransactions = common.check_and_trans_to_bool( _includeTransactions) params = [self.groupid, block_hash, includeTransactions] return self.common_request(cmd, params)
def exec_cmd_with_two_param(self, cmd, params): """ execute command with two params: """ if cmd not in RPCConsole.functions["two"]: return # check param common.check_param_num(params, 2, False) if len(params) > 3: raise ArgumentsError("{} : params must be no more than 3") index = common.check_int_range(params[1]) result = None # check param type if cmd == "getTransactionByBlockHashAndIndex": common.check_hash(params[0]) result = self.exec_command(cmd, [params[0], index]) if cmd == "getTransactionByBlockNumberAndIndex": number = common.check_int_range(params[0]) result = self.exec_command(cmd, [number, index]) self.parse_tx_and_receipt(result, cmd, params)
def getTransactionReceipt(self, hash): cmd = "getTransactionReceipt" common.check_hash(hash) params = [self.groupid, hash] return self.common_request(cmd, params)
def getTransactionByBlockHashAndIndex(self, hash, index): cmd = "getTransactionByBlockHashAndIndex" common.check_hash(hash) common.check_int_range(index) params = [self.groupid, hash, hex(index)] return self.common_request(cmd, params)