예제 #1
0
 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)
예제 #3
0
 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)