コード例 #1
0
 def sign_multi_transction(self, task, judge=True, process_log=True):
     if task.node_index() != None:
         logger.info("sign transction with other node: " +
                     str(task.node_index()))
         task.set_type("st")
         request = task.request()
         task.set_request({
             "method": "siginvoketx",
             "jsonrpc": "2.0",
             "id": 0,
         })
         request["account"] = Config.NODES[task.node_index()]["address"]
         request["pwd"] = "123456"
         task.request()["params"] = request
         (result,
          response) = TaskRunner.run_single_task(task, False, process_log)
         if result:
             response = response["result"]
         return (result, response)
     else:
         task.set_type("cli")
         request = task.request()
         request["account"] = Config.NODES[
             nodeapi.get_current_node()]["address"]
         request["pwd"] = "123456"
         task.set_request(request)
         (result,
          response) = TaskRunner.run_single_task(task, False, process_log)
         return (result, response)
コード例 #2
0
 def getbestblockhash(self):
     task = Task(Config.BASEAPI_PATH + "/rpc/getbestblockhash.json")
     taskrequest = task.request()
     params = []
     taskrequest["params"] = params
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #3
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getsmartcodeeventbyhash(self, txhash):
     task = Task(Config.BASEAPI_PATH + "/restful/get_smtcode_evts.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/smartcode/event/txhash/" + str(txhash)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #4
0
    def call_signed_contract(self, signed_tx, pre=True, node_index=None):
        sendrawtxtask = Task(Config.BASEAPI_PATH +
                             "/rpc/sendrawtransaction.json")
        if pre:
            sendrawtxtask.request()["params"] = [signed_tx, 1]
        else:
            sendrawtxtask.request()["params"] = [signed_tx]

        if node_index != None:
            sendrawtxtask.data()["NODE_INDEX"] = node_index

        (result,
         response) = TaskRunner.run_single_task(sendrawtxtask, True, False)

        sendrawtxtask.data()["RESPONSE"] = response

        if not response is None and ("result" in response and "Result"
                                     in response["result"]) and not isinstance(
                                         response["result"]["Result"], list):
            response["result"]["Result String"] = HexToByte(
                response["result"]["Result"]).decode('iso-8859-1')

        logger.print("[ CALL CONTRACT ] " +
                     json.dumps(sendrawtxtask.data(), indent=4))

        return (result, response)
コード例 #5
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getblockhashbyheight(self, height):
     task = Task(Config.BASEAPI_PATH + "/restful/get_blk_hash.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/block/hash/" + str(height)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #6
0
ファイル: clirpc.py プロジェクト: rongtian/neo-test
    def simplerun(self, rpcmethod, params, jsonrpc='2.0', id=1):
        request = copy.copy(CLIRPCApi.REQUEST_BODY)
        request["method"] = rpcmethod
        request["params"] = params
        request["jsonrpc"] = jsonrpc
        request["id"] = id

        ijson = {}
        ijson["TYPE"] = "ST"
        ijson["NODE_INDEX"] = int(self.currentnode)
        ijson["REQUEST"] = request
        ijson["RESPONSE"] = None
        task = Task(name=rpcmethod, ijson=ijson)
        (result, response) = TaskRunner.run_single_task(task, False)
        if response is None:
            raise Exception("cli rpc connect error")
        if response["jsonrpc"] != jsonrpc:
            raise Exception("cli rpc connect jsonrpc not valid: " +
                            response["jsonrpc"])
        if response["id"] != id:
            raise Exception("cli rpc connect id not valid: " +
                            str(response["id"]))
        if "error" in response.keys() and response["error"] != 0:
            raise RPCError(json.dumps(response["error"]))
        return response["result"]
コード例 #7
0
 def test_abnormal_097_getmerkleproof(self):
     try:
         task = Task(testpath + "/resource/rpc/97_getmerkleproof.1.json")
         (process, response) = TaskRunner.run_single_task(task)
         self.ASSERT(not process, "")
     except Exception as e:
         logger.print(e.args[0])
コード例 #8
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getmerkleproofbytxhash(self, _hash):
     task = Task(Config.BASEAPI_PATH + "/restful/get_merkle_proof.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/merkleproof/" + str(_hash)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #9
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getcontract(self, script_hash):
     task = Task(Config.BASEAPI_PATH + "/restful/get_contract_state.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/contract/" + str(script_hash)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #10
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getbalance(self, addr):
     task = Task(Config.BASEAPI_PATH + "/restful/get_balance.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/balance/" + str(addr)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #11
0
 def getbalance(self, address):
     task = Task(Config.BASEAPI_PATH + "/rpc/getbalance.json")
     taskrequest = task.request()
     params = []
     if address != None:
         params.append(address)
     taskrequest["params"] = params
     return TaskRunner.run_single_task(task)
コード例 #12
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def gettransactionbytxhash(self, _hash, raw=0):
     task = Task(Config.BASEAPI_PATH + "/restful/get_tx.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/transaction/" + str(
         _hash) + "?raw=" + str(raw)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #13
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getblockbyhash(self, _hash, raw=0):
     task = Task(Config.BASEAPI_PATH + "/restful/get_blk_by_hash.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/block/details/hash/" + str(
         _hash) + "?raw=" + str(raw)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #14
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getblocktxsbyheight(self, height):
     task = Task(Config.BASEAPI_PATH +
                 "/restful/get_blk_txs_by_height.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/block/transactions/height/" + str(height)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #15
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getblockheightbytxhash(self, txhash):
     task = Task(Config.BASEAPI_PATH +
                 "/restful/get_blk_hgt_by_txhash.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/block/height/txhash/" + str(txhash)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #16
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getsmartcodeeventbyheight(self, height):
     task = Task(Config.BASEAPI_PATH + "/restful/get_smtcode_evt_txs.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/smartcode/event/transactions/" + str(
         height)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #17
0
 def getmerkleproof(self, tx_hash):
     task = Task(Config.BASEAPI_PATH + "/rpc/getmerkleproof.json")
     taskrequest = task.request()
     params = []
     if tx_hash != None:
         params.append(tx_hash)
     taskrequest["params"] = params
     return TaskRunner.run_single_task(task)
コード例 #18
0
ファイル: restful.py プロジェクト: nb-spaceship/ontology-test
 def getstorage(self, script_hash, key):
     task = Task(Config.BASEAPI_PATH + "/restful/get_storage.json")
     task.set_type("restful")
     taskrequest = task.request()
     taskrequest["api"] = "/api/v1/storage/" + str(script_hash) + "/" + str(
         key)
     task.set_request(taskrequest)
     return TaskRunner.run_single_task(task)
コード例 #19
0
 def test_normal_095_getmerkleproof(self):
     try:
         task = Task(testpath + "/resource/rpc/95_getmerkleproof.json")
         task.request()["params"] = [test_config.m_txhash_right]
         (process, response) = TaskRunner.run_single_task(task)
         self.ASSERT(process, "")
     except Exception as e:
         logger.print(e.args[0])
コード例 #20
0
    def getmerkleproof(self, _hash):
        task = Task(Config.BASEAPI_PATH + "/ws/getmerkleproof.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Hash"] = _hash
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #21
0
    def getblocktxsbyheight(self, height):
        task = Task(Config.BASEAPI_PATH + "/ws/getblocktxsbyheight.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Height"] = height
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #22
0
    def getblockheightbytxhash(self, _hash):
        task = Task(Config.BASEAPI_PATH + "/ws/getblockheightbytxhash.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Hash"] = _hash
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #23
0
    def getbalancebyaddr(self, addr):
        task = Task(Config.BASEAPI_PATH + "/ws/getbalance.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Addr"] = addr
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #24
0
    def gettransaction(self, _hash, raw=0):
        task = Task(Config.BASEAPI_PATH + "/ws/gettransaction.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Hash"] = _hash
        taskrequest["Raw"] = raw
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #25
0
    def sendrawtransaction(self, _hex, pre=0):
        task = Task(Config.BASEAPI_PATH + "/ws/sendrawtransaction.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Data"] = _hex
        taskrequest["PreExec"] = pre
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #26
0
    def getstorage(self, _hex, key):
        task = Task(Config.BASEAPI_PATH + "/ws/getstorage.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Hash"] = _hex
        taskrequest["Key"] = key
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)
コード例 #27
0
    def getmempooltxstate(self, tx_hash):
        task = Task(Config.BASEAPI_PATH + "/rpc/getmempooltxstate.json")
        taskrequest = task.request()
        params = []
        if tx_hash != None:
            params.append(tx_hash)
        taskrequest["params"] = params
        task.set_request(taskrequest)

        return TaskRunner.run_single_task(task)
コード例 #28
0
    def getblockhash(self, height):
        task = Task(Config.BASEAPI_PATH + "/rpc/getblockhash.json")
        taskrequest = task.request()
        params = []
        if height != None:
            params.append(height)
        taskrequest["params"] = params
        task.set_request(taskrequest)

        return TaskRunner.run_single_task(task)
コード例 #29
0
    def getconnectioncount(self, param=None):
        task = Task(Config.BASEAPI_PATH + "/ws/getconnectioncount.json")
        task.set_type("ws")
        if param and isinstance(param, dict):
            taskrequest = task.request()
            for key in param:
                taskrequest[key] = param[key]
            task.set_request(taskrequest)

        return TaskRunner.run_single_task(task)
コード例 #30
0
    def getallowance(self, asset, _from, to):
        task = Task(Config.BASEAPI_PATH + "/ws/getallowance.json")
        task.set_type("ws")

        taskrequest = task.request()
        taskrequest["Asset"] = asset
        taskrequest["From"] = _from
        taskrequest["To"] = to
        task.set_request(taskrequest)
        return TaskRunner.run_single_task(task)