Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 10
0
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
Esempio n. 13
0
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
Esempio n. 14
0
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
Esempio n. 17
0
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
Esempio n. 19
0
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
Esempio n. 21
0
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
Esempio n. 23
0
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
Esempio n. 24
0
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
Esempio n. 26
0
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
Esempio n. 29
0
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
Esempio n. 30
0
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