def removePeers(api_name, params): try: result = request_Api(api_name, params) print("移除节点成功,{}".format(result)) return result except Exception as e: print("移除节点失败,api返回为{}".format(e)) return -1
def localNode(api_name, params): ''' 需要获取本地的enode,用于P2p链接 :param api_name: p2p_localNode :param params: [""] :return: 本地节点的enode ''' try: result = request_Api(api_name, params) print("把交易字节信息反解析成交易详情,返回值为{}".format(result)) return result except Exception as e: print("把交易字节信息反解析成交易详情api返回错误,返回值为{}".format(e)) return -1
def getTransactionCount(api_name, params): ''' 获取地址发出的交易总数. :param api_name: :param params: 待查询地址 :return: 获取地址发出的交易总数 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"blockmgr_getTransactionCount","params":["0x8a8e541ddd1272d53729164c70197221a3c27486"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("获取地址发出的交易总数,{}".format(result)) return result except Exception as e: print("获取地址发出的交易总数api返回错误,{}".format(e)) return -1
def cancelCandidateCredit(api_name, params): ''' 取消候选 :param api_name: account_cancelCandidateCredit :param params: 发起转账的地址;接受者的地址;金额;gas价格;gas上线;备注 :return: 交易地址 示例代码 curl -H "Content-Type: application/json" -X post --data '{"jsonrpc":"2.0","method":"account_cancelCandidateCredit","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5","0x111","0x110","0x30000",""],"id":1}' http://127.0.0.1:15645 ''' try: result = request_Api(api_name, params) print("取消候选成功,返回值为{}".format(result)) return result except Exception as e: print("取消候选失败,api返回错误,返回值为{}".format(e)) return -1
def importKeyStore(api_name, params): ''' 导入私钥 :param api_name: "account_importPrivkey" :param params:privkey(compress hex) :return: address 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_importPrivkey","params":["0xe5510b32854ca52e7d7d41bb3196fd426d551951e2fd5f6b559a62889d87926c"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("导入keystore成功,返回值为{}".format(result)) return result except Exception as e: print("导入keystore失败,api返回错误,返回值为{}".format(e)) return -1
def getRawTransaction(api_name, params): ''' 根据交易hash查询交易字节 :param api_name: trace_getRawTransaction :param params: 交易hash :return: 交易字节信息 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"trace_getRawTransaction","params":["0x00001c9b8c8fdb1f53faf02321f76253704123e2b56cce065852bab93e526ae2"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("把交易字节信息反解析成交易详情,返回值为{}".format(result)) return result except Exception as e: print("把交易字节信息反解析成交易详情api返回错误,返回值为{}".format(e)) return -1
def decodeTrasnaction(api_name, params): ''' 把交易字节信息反解析成交易详情 :param api_name: "trace_decodeTrasnaction" :param params: 交易字节信息 :return: 交易详情 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"trace_decodeTrasnaction","params":["0x02a7ae20007923a30bbfbcb998a6534d56b313e68c8e0c594a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002011102011003030000bc9889d00b004120eba14c77eab7a154833ff14832d8769cfc0b30db288445d6a83ef2fe337aa09042f8174a593543c4acabe7fadf1ad5fceea9c835682cb9dbea3f1d8fec181fb9"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("把交易字节信息反解析成交易详情,返回值为{}".format(result)) return result except Exception as e: print("把交易字节信息反解析成交易详情api返回错误,返回值为{}".format(e)) return -1
def createCode(api_name, params): ''' 部署合约 :param api_name: "account_createAccount" :param params:部署合约的地址;合约内容;金额;gas价格;gas上限 :return: 合约地址 示例代码 curl -H "Content-Type: application/json" -X post --data '{"jsonrpc":"2.0","method":"account_createCode","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5","0x608060405234801561001057600080fd5b5061018c806100206000396000f3fe608060405260043610610051576000357c0100000000000000000000000000000000000000000000000000000000900480634f2be91f146100565780636d4ce63c1461006d578063db7208e31461009e575b600080fd5b34801561006257600080fd5b5061006b6100dc565b005b34801561007957600080fd5b5061008261011c565b604051808260070b60070b815260200191505060405180910390f35b3480156100aa57600080fd5b506100da600480360360208110156100c157600080fd5b81019080803560070b9060200190929190505050610132565b005b60016000808282829054906101000a900460070b0192506101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550565b60008060009054906101000a900460070b905090565b806000806101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055505056fea165627a7a723058204b651e4313ab6bc4eda61084cac1f805699cefbb979ddfd3a2d7f970903307cd0029","0x111","0x110","0x30000"],"id":1}' http://127.0.0.1:15645 ''' try: result = request_Api(api_name, params) print("部署合约成功,返回值为{}".format(result)) return result except Exception as e: print("部署合约失败,api返回错误,返回值为{}".format(e)) return -1
def candidateCredit(api_name, params): ''' 候选投票 :param api_name: "trace_decodeTrasnaction" :param params: 发起转账的地址;接受者的地址;金额;gas价格;gas上线;用户pubkey ip等信息 :return: 交易地址 示例代码 curl -H "Content-Type: application/json" -X post --data '{"jsonrpc":"2.0","method":"account_candidateCredit","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5","0x111","0x110","0x30000","{\"Pubkey\":\"0x020e233ebaed5ade5e48d7ee7a999e173df054321f4ddaebecdb61756f8a43e91c\",\"Node\":\"192.168.31.51:55555\"}"],"id":1}' http://127.0.0.1:15645 ''' try: result = request_Api(api_name, params) print("候选投票成功,返回值为{}".format(result)) return result except Exception as e: print("候选投票失败,api返回错误,返回值为{}".format(e)) return -1
def createAccount(api_name, params): ''' 创建本地账号 :param api_name: "account_createAccount" :param params: :return: 新账号地址信息 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_createAccount","params":[], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("创建本地账号成功,返回值为{}".format(result)) return result except Exception as e: print("创建本地账号失败,api返回错误,返回值为{}".format(e)) return -1
def closeWallet(api_name, params): ''' 关闭钱包 :param api_name: "trace_decodeTrasnaction" :param params: :return: 无 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_closeWallet","params":[], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("关闭钱包成功,返回值为{}".format(result)) return result except Exception as e: print("关闭钱包失败,api返回错误,返回值为{}".format(e)) return -1
def dumpPrivkey(api_name, params): ''' 导出私钥 :param api_name: "account_dumpPrivkey" :param params: :return: 私钥 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_dumpPrivkey","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("导出私钥成功,返回值为{}".format(result)) return result except Exception as e: print("导出私钥失败,api返回错误,返回值为{}".format(e)) return -1
def addPeers(api_name, params): ''' 添加节点 :param api_name: p2p_addPeers :param params: 添加的节点的p2p信息+ip地址,以数组的形式传入 :return: nil 示例代码 "enode://e1b2f83b7b0f5845cc74ca12bb40152e520842bbd0597b7770cb459bd40f109178811ebddd6d640100cdb9b661a3a43a9811d9fdc63770032a3f2524257fb62d@192.168.74.1:55555" ''' try: result = request_Api(api_name, params) print("添加节点,返回值为{}".format(result)) return result except Exception as e: print("添加节点返回错误,返回值为{}".format(e)) return -1
def call(api_name, params): ''' 调用合约 :param api_name: "trace_decodeTrasnaction" :param params: 调用者的地址;合约地址;代码;金额;gas价格;gas上限 :return: 合约地址 示例代码 curl -H "Content-Type: application/json" -X post --data '{"jsonrpc":"2.0","method":"account_call","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5","0x6d4ce63c","0x111","0x110","0x30000"],"id":1}' http://127.0.0.1:15645 ''' try: result = request_Api(api_name, params) print("把交易字节信息反解析成交易详情,返回值为{}".format(result)) return result except Exception as e: print("把交易字节信息反解析成交易详情api返回错误,返回值为{}".format(e)) return -1
def sendRawTransaction(api_name, params): ''' 发送已签名的交易 :param api_name: :param params:交易内容,交易内容由钱包那边生成,该api主要配合钱包端使用 :return:交易哈希 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"blockmgr_sendRawTransaction","params":["0x40a287b6d30b05313131317a4120dd8c23c40910d038fa43b2f8932d3681cbe5ee3079b6e9de0bea6e8e6b2a867a561aa26e1cd6b62aa0422a043186b593b784bf80845c3fd5a7fbfe62e61d8564"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("发送已签名的交易,返回交易哈希,{}".format(result)) return result except Exception as e: print("发送已签名的交易api错误,{}".format(e)) return -1
def getTxInPool(api_name, params): ''' 查询交易是否在交易池,如果在,返回交易 :param api_name: :param params: 发起转账的地址 :return: 交易完整信息 示例代码 curl -H "Content-Type: application/json" -X post --data '{"jsonrpc":"2.0","method":"blockmgr_getTxInPool","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5"],"id":1}' http://127.0.0.1:15645 ''' try: result = request_Api(api_name, params) print("查询交易是否在交易池中,如果在,返回交易,{}".format(result)) return result except Exception as e: print("查询交易是否在交易池中api错误,{}".format(e)) return -1
def generateAddresses(api_name, params): ''' 生成其他链的地址 :param api_name: "account_generateAddresses" :param params:drep地址 :return: {BTCaddress, ethAddress, neoAddress} 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_generateAddresses","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("导出私钥成功,返回值为{}".format(result)) return result except Exception as e: print("导出私钥失败,api返回错误,返回值为{}".format(e)) return -1
def getPoolTransactions(api_name, params): ''' 获取交易池中的交易信息 :param api_name: blockmgr_getPoolTransactions :param params: 待查询地址 :return: 交易池中所有交易 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"blockmgr_getPoolTransactions","params":["0x8a8e541ddd1272d53729164c70197221a3c27486"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("获取交易池中的交易信息".format(result)) return result except Exception as e: print("获取交易池中的交易信息api报错,{}".format(e)) return -1
def getCandidateAddrs(api_name, params): ''' 获取所有候选节点地址和对应的信任值 :param api_name: chain_getCandidateAddrs :param params:地址 :return: [] 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"chain_getCandidateAddrs","params":[""], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("获取所有候选节点地址和对应的信任值成功,{}".format(result)) return result except Exception as e: print("获取所有候选节点地址和对应的信任值失败,api返回错误,返回值为{}".format(e)) return -1
def createWallet(api_name, params): ''' 创建本地钱包 :param api_name: account_createWallet :param params:钱包密码 :return: 失败返回错误原因,成功不返回任何信息 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_createWallet","params":["123"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("创建本地钱包成功,地址为{}".format(result)) return result except Exception as e: print("创建本地钱包失败,api返回错误,返回值为{}".format(e)) return -1
def listAddress(api_name, params): ''' 列出所有本地地址 :param api_name: account_listAddress :param params: :return: 地址数组 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_listAddress","params":[], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("列出所有本地地址,地址为{}".format(result)) return result except Exception as e: print("列出所有本地地址api返回错误,返回值为{}".format(e)) return -1
def getTransactionByBlockHeightAndIndex(api_name, params): ''' 获取区块中特定序列的交易 :param api_name: chain_getTransactionByBlockHeightAndIndex :param params:区块高度;交易序列 :return: 交易信息 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"chain_getTransactionByBlockHeightAndIndex","params":[10000,1], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("获取区块中特定序列的交易,{}".format(result)) return result except Exception as e: print("获取区块中特定序列的交易失败,api返回错误,返回值为{}".format(e)) return -1
def getSendTransactionByAddr(api_name, params): ''' 根据地址查询该交易发出的交易,支持分页,从0开始计数,返回结果中的nonce为交易序号 e.g: curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"trace_getSendTransactionByAddr","params":["0x7923a30bbfbcb998a6534d56b313e68c8e0c594a",1,10], "id": 3}' -H "Content-Type:application/json" :param api_name: :param params: 1. 交易地址 2. 分页号(从1开始)3. 页大小 :return: 交易列表 ''' try: result = request_Api(api_name, params) print("根据地址查询该交易发出的交易,支持分页,{}".format(result)) return result except Exception as e: print("根据地址查询该交易发出的交易,支持分页,api返回错误".format(e)) logging.info("根据地址查询该交易发出的交易,支持分页,api返回错误".format(e)) return -1
def getCancelCreditDetails(api_name, params): ''' 获取所有退票请求的细节 :param api_name: chain_getCancelCreditDetails :param params:地址 :return: bytecode 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"chain_getCancelCreditDetails","params":["0x8a8e541ddd1272d53729164c70197221a3c27486"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("根据txhash获取receipt信息成功,{}".format(result)) return result except Exception as e: print("根据txhash获取receipt信息失败,api返回错误,返回值为{}".format(e)) return -1
def lockAccount(api_name, params): ''' 锁定账号 :param api_name: account_lockAccount :param params:需要锁住的账号地址 :return: 失败返回错误原因,成功不返回任何信息 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_lockAccount","params":["0x518b3fefa3fb9a72753c6ad10a2b68cc034ec391"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("锁定账号成功,地址为{}".format(result)) return result except Exception as e: print("锁定账号失败,api返回错误,返回值为{}".format(e)) return -1
def sign(api_name, params): ''' 账号签名 :param api_name: account_sign :param params:地址;消息hash :return: 签名结果,签名后的交易,裸交易结果 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_sign","params":["0x3ebcbe7cb440dd8c52940a2963472380afbb56c5", "0x00001c9b8c8fdb1f53faf02321f76253704123e2b56cce065852bab93e526ae2"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("账号签名成功,地址为{}".format(result)) return result except Exception as e: print("账号签名失败,api返回错误,返回值为{}".format(e)) return -1
def importKeyStore(api_name, params): ''' 导入keystore :param api_name: "account_importKeyStore" :param params:path;password :return: address list 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"account_importKeyStore","params":["path","123"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("导入keystore成功,返回值为{}".format(result)) return result except Exception as e: print("导入keystore失败,api返回错误,返回值为{}".format(e)) return -1
def getAddressByAlias(api_name, params): ''' 根据别名获取别名对应的地址 :param api_name: chain_getAddressByAlias :param params:待查询地别名 :return: 别名对应的地址 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"chain_getAddressByAlias","params":["tom"], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("根据别名获取别名对应的地址成功,地址为{}".format(result)) return result except Exception as e: print("根据别名获取别名对应的地址失败,api返回错误,返回值为{}".format(e)) return -1
def changeWaitTime(api_name, params): ''' 共识时间,一般救急时使用 修改leader等待时间 (ms) :param api_name: 等待时间(ms) :param params: :return: 私钥 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"consensus_changeWaitTime","params":[100000], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("修改leader等待时间(ms),{}".format(result)) return result except Exception as e: print("修改leader等待时间(ms)api返回错误,返回值为{}".format(e)) return -1
def getMaxHeight(api_name, params): ''' 用于获取当前最高区块 :param api_name: chain_getMaxHeight :param params:无 :return: 当前最高区块高度数值 示例代码 curl http://localhost:15645 -X POST --data '{"jsonrpc":"2.0","method":"chain_getMaxHeight","params":[], "id": 3}' -H "Content-Type:application/json" ''' try: result = request_Api(api_name, params) print("查询地址在链上的nonce成功,地址为{}".format(result)) return result except Exception as e: print("查询地址在链上的nonce失败,api返回错误,返回值为{}".format(e)) return -1