Qsnark SDK 是qsnark对外提供的API接口的Java封装。
根据用户手机号码密码等信息,获取授权令牌token。
| 参数 |
类型 |
说明 |
| client_id |
string |
httpkey |
| client_secret |
string |
httpsecret |
| phone |
string |
用户手机号 |
| password |
string |
密码 |
| 参数 |
值 |
| client_id |
123 |
| client_secret |
123 |
| phone |
17706421110 |
| password |
123 |
GetTokenReturn getTokenReturn = api.getAccess_Token("123", "123", "17706421110", "123");
返回的GetTokenReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,-1为失败 |
| error |
成功时为空失败时为失败的类型 |
| message |
成功时为success,失败时为相应的错误信息 |
| access_token |
授权令牌 |
| expires_in |
有效时间(s |
| refresh_token |
刷新token |
| scope |
范围 |
| token_type |
token类型 |
{
"code": 0 ,
"error":"" ,
"message":"success" ,
"access_token": "IEK1DO1ZPAQPBDPPDY7VMQ",
"expires_in": 7200,
"refresh_token": "JH_-7WRJUIS5EQ4U35SD2G",
"scope": "all",
"token_type": "Bearer"
}
根据refresh_token等参数,刷新授权令牌token。
| 参数 |
类型 |
说明 |
| client_id |
string |
httpkey |
| client_secret |
string |
httpsecret |
| refresh_token |
string |
刷新token码 |
| 参数 |
值 |
| client_id |
123 |
| client_secret |
123 |
| refresh_token |
JH_-7WRJUIS5EQ4U35SD2G |
RetokenReturn retokenReturn = api.refAccess_Token("123", "123", "YFUMQEGTUT2-VAJ_LHA1QA");
返回的RetokenReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,-1为失败 |
| error |
成功时为空失败时为失败的类型 |
| message |
成功时为success,失败时为相应的错误信息 |
| access_token |
授权令牌 |
| expires_in |
有效时间(s |
| refresh_token |
刷新token |
| scope |
范围 |
| token_type |
token类型 |
{
"code": 0 ,
"error":"" ,
"message":"success" ,
"access_token":"CD843SDUOQ61RY3NEXZHLA",
"expires_in":7200,
"refresh_token":"LAJDJSVYXG-XQTZUVCNOOG",
"scope":"all",
"token_type":"Bearer"
}
根据token,hash获取交易信息。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| transactionHash |
string |
交易的哈希值,32字节的十六进制字符串 |
| 参数 |
值 |
| token |
3VCA4KTPPLCRIQXEWNIWLW |
| hash |
0x17e8747903ea0a929cfda41e38e70d20b4205291b3b59af2f3ee0529b8f62825 |
QueryTranReturn qreturn = api.queryTransaction("3VCA4KTPPLCRIQXEWNIWLW", "0x17e8747903ea0a929cfda41e38e70d20b4205291b3b59af2f3ee0529b8f62825");
返回的QueryTranReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| Transaction |
包含以下全部信息 |
| Version |
平台版本号 |
| Hash |
交易的哈希值,32字节的十六进制字符串 |
| BlockNumber |
交易所在的区块高度 |
| BlockHash |
交易所在区块哈希值 |
| TxIndex |
交易在区块中的交易列表的位置 |
| From |
交易发送方的地址,20字节的十六进制字符串 |
| To |
交易接收方的地址,20字节的十六进制字符 |
| Amount |
交易量 |
| Timestamp |
交易发生时间(单位 ns |
| Nonce |
16位随机数 |
| ExecuteTime |
交易的处理时间(单位ms |
| Payload |
部署合约与调用合约的时候才有这个值,可以通过这个值追朔到合约调用的方法以及调用传入的参数 |
| Invalid |
交易是否不合法 |
| InvalidMsg |
交易的不合法信息 |
{
"code": 0 ,
"status":"" ,
"Transaction": {
"Version": "1.2",
"Hash": "0x4a630908bf78441197c9fc94aa3ebb4f21218cf61dfe82b62184aa1bc7f1dff1",
"BlockNumber": 1,
"BlockHash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"TxIndex": 0,
"From": "0x0aed175e1b70c67aa601a0f65946aee6bc4e5534",
"To": "0x0000000000000000000000000000000000000000",
"Amount": 0,
"Timestamp": 1502860798414577195,
"Nonce": 6651414131918424343,
"ExecuteTime": 23,
"Payload": "0x60a0604052600c60608190527f48656c6c6f2051736e61726b0000000000000000000000000000000000000000608090815261003e916000919061004c565b50341561004757fe5b6100ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061008d57805160ff19168380011785556100ba565b828001600101855582156100ba579182015b828111156100ba57825182559160200191906001019061009f565b5b506100c79291506100cb565b5090565b6100e991905b808211156100c757600081556001016100d1565b5090565b90565b610188806100fb6000396000f300606060405263ffffffff60e060020a6000350416638da9b7728114610021575bfe5b341561002957fe5b6100316100b1565b604080516020808252835181830152835191928392908301918501908083838215610077575b80518252602083111561007757601f199092019160209182019101610057565b505050905090810190601f1680156100a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100b961014a565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561013f5780601f106101145761010080835404028352916020019161013f565b820191906000526020600020905b81548152906001019060200180831161012257829003601f168201915b505050505090505b90565b604080516020810190915260008152905600a165627a7a72305820794559401ace9f00ea9b8bc27902f3396df15cc581cc6545a04292177f71725c0029",
"Invalid": false,
"InvalidMsg": ""
}
根据token,from,to参数,查询指定区间内的区块。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| from |
long |
起始区块号 |
| to |
object |
终止区块号可以为具体块号或者为latest |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| from |
1 |
| to |
2 |
RangeBlocksReturn queryBlocksReturn = api.rangeBlocks("IVKEWCXMOAWXG1DTYAGUZA", 1, 2);
返回的RangeBlocksReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| Blocks |
区块数组 |
{
"code": 0 ,
"status":"" ,
"Blocks": [
{
"Number": 2,
"Hash": "0xaa9d9227d307f87d2c19f3b624f6af32bd90784044d1089c9e457fc90b70794f",
"ParentHash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"WriteTime": 1502860905924476359,
"AvgTime": 17,
"Txcounts": 1,
"MerkleRoot": "0xda854e53569a308034da9714d2a9cf16a174e39b96699b0d0727c27d93896f2f",
"Transactions": [
{
"Version": "1.2",
"Hash": "0x612b1b6d10cd1ee55ad3084e8734adaae11f83e9a2fcd062c064c0bc382eb8ba",
"BlockNumber": 2,
"BlockHash": "0xaa9d9227d307f87d2c19f3b624f6af32bd90784044d1089c9e457fc90b70794f",
"TxIndex": 0,
"From": "0x0aed175e1b70c67aa601a0f65946aee6bc4e5534",
"To": "0xceced635239b1b801d972b93d253f628bf1cf9fa",
"Amount": 0,
"Timestamp": 1502860805006583586,
"Nonce": 5944830206637008055,
"ExecuteTime": 17,
"Payload": "0x8da9b772",
"Invalid": false,
"InvalidMsg": ""
}
]
},
{
"Number": 1,
"Hash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"ParentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"WriteTime": 1502860899344164151,
"AvgTime": 23,
"Txcounts": 1,
"MerkleRoot": "0xda854e53569a308034da9714d2a9cf16a174e39b96699b0d0727c27d93896f2f",
"Transactions": [
{
"Version": "1.2",
"Hash": "0x4a630908bf78441197c9fc94aa3ebb4f21218cf61dfe82b62184aa1bc7f1dff1",
"BlockNumber": 1,
"BlockHash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"TxIndex": 0,
"From": "0x0aed175e1b70c67aa601a0f65946aee6bc4e5534",
"To": "0x0000000000000000000000000000000000000000",
"Amount": 0,
"Timestamp": 1502860798414577195,
"Nonce": 6651414131918424343,
"ExecuteTime": 23,
"Payload": "0x60a0604052600c60608190527f48656c6c6f2051736e61726b0000000000000000000000000000000000000000608090815261003e916000919061004c565b50341561004757fe5b6100ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061008d57805160ff19168380011785556100ba565b828001600101855582156100ba579182015b828111156100ba57825182559160200191906001019061009f565b5b506100c79291506100cb565b5090565b6100e991905b808211156100c757600081556001016100d1565b5090565b90565b610188806100fb6000396000f300606060405263ffffffff60e060020a6000350416638da9b7728114610021575bfe5b341561002957fe5b6100316100b1565b604080516020808252835181830152835191928392908301918501908083838215610077575b80518252602083111561007757601f199092019160209182019101610057565b505050905090810190601f1680156100a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100b961014a565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561013f5780601f106101145761010080835404028352916020019161013f565b820191906000526020600020905b81548152906001019060200180831161012257829003601f168201915b505050505090505b90565b604080516020810190915260008152905600a165627a7a72305820794559401ace9f00ea9b8bc27902f3396df15cc581cc6545a04292177f71725c0029",
"Invalid": false,
"InvalidMsg": ""
}
]
}
]
}
根据token获取链上的交易总数。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
CountTraReturn countTraReturn = api.countTransaction("Y5BFCSV2MCAZUQMZ9LMMSQ");
返回的CountTraReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| Count |
交易数 |
| Timestamp |
时间戳 |
{
"code": 0 ,
"status":"" ,
"Count": 175390,
"Timestamp": 1502847160298475207
}
通过输入token,start,end查询无效交易信息。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| start |
long |
起始timestamp |
| end |
long |
终止timestamp |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| start |
1509235200000000000 |
| end |
1509375428000000000 |
DiscardConReturn discardConReturn = api.discardTransaction("B14X4H6SMLMQI_WXEVKJDW", "1509235200000000000", "1509375428000000000");
返回的DiscardConReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| Transactions |
无效交易集合 |
| Version |
版本号 |
| Hash |
交易的哈希值,32字节的十六进制字符串 |
| BlockNumber |
交易所在的区块高度 |
| BlockHash |
交易的哈希值,32字节的十六进制字符串 |
| TxIndex |
交易在区块中的交易列表的位置 |
| From |
交易发送方的地址,20字节的十六进制字符串 |
| To |
交易接收方的地址,20字节的十六进制字符 |
| Amount |
交易量 |
| Nonce |
16位随机数 |
| ExecuteTime |
交易的处理时间(单位ms |
| Payload |
部署合约与调用合约的时候才有这个值,可以通过这个值追朔到合约调用的方法以及调用传入的参数。 |
| Invalid |
交易是否不合法 |
| InvalidMsg |
交易的不合法信息 |
"code": 0
"status":""
"Transactions":[
{
"Version":"",
"Hash":"0x08dbbaf176ff51b4501d6757efa5c5b7e28fe6b2febf07fec2d373cef12860a6",
"BlockNumber":0,
"BlockHash": "",
"TxIndex": 0,
"From":"0x885b67411d84f6aa3b1e8e5ee6730c8123423777",
"To": "0x6a713a318ac303457da2d42e52e7304f33ef310a",
"Amount": 0, "Timestamp": 1503296874051787500,
"Nonce": 894385949183117200,
"ExecuteTime":0,
"Payload": "0x60606040526000805463ffffffff19169055341561001957fe5b5b610101806100296000396000f300606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575bfe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a723058205196f5c898c244d3ada034d11893c7a5d67acac307f8e5db125810804cf7bb690029",
"Invalid": true,
"InvalidMsg": "INVOKE_CONTRACT_FAILED"
},{
"Version": "",
"Hash": "0xe12fb78e754f4bde5bf23b1f098d9e75cb977dc5275a6f994f74066c2b52d10c",
"BlockNumber": 0,
"BlockHash": "",
"TxIndex": 0,
"From": "0xdf54c8ff47e57f9e69f1f24f53ea46bd009724c6",
"To": "0x0000000000000000000000000000000000000000",
"Amount": 0,
"Timestamp": 1509345937588384109,
"Nonce": 6129484611666145821,
"ExecuteTime": 0,
"Payload": "0x606060405260006000553415601057fe5b5b6002600090815580fd5b5b5b60728061002b6000396000f300606060405263ffffffff60e060020a600035041663be1c766b81146020575bfe5b3415602757fe5b602d603f565b60408051918252519081900360200190f35b6000545b905600a165627a7a7230582088586937fdbf571f4028e7f0f731739c0af294a130403c85c75001ab5d2345db0029",
"Invalid": true,
"InvalidMsg": "DEPLOY_CONTRACT_FAILED"
}]
}
根据token,type,value参数,实现查询指定区块数的block。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| type |
string |
可以是number或者hash |
| value |
object |
type为number时可以是int(区块的高度)或"latest"(最后一块)type为hash时区块的hash值 |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| type |
number |
| value |
1 |
QueryBlockReturn queryBlockReturn = api.queryBlock("Y5BFCSV2MCAZUQMZ9LMMSQ", "", 1);
返回的QueryBlockReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| Block |
整个block的信息 |
| Number |
区块的高度 |
| Hash |
区块的哈希值,32字节的十六进制字符串 |
| ParentHash |
父区块哈希值,32字节的十六进制字符串 |
| WriteTime |
区块的生成时间(单位ns |
| AvgTime |
当前区块中,交易的平均处理时间(单位ms |
| Txcounts |
当前区块中打包的交易数量 |
| MerkleRoot |
Merkle树的根哈希 |
| 0xda854e53569a308034da9714d2a9cf16a174e39b96699b0d0727c27d93896f2f", |
|
{
"code": 0 ,
"status":"" ,
"Block":{
"Number": 1,
"Hash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"ParentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"WriteTime": 1502860899344164151,
"AvgTime": 23,
"Txcounts": 1,
"MerkleRoot": "0xda854e53569a308034da9714d2a9cf16a174e39b96699b0d0727c27d93896f2f",
"Transactions": [
{
"Version": "1.2",
"Hash": "0x4a630908bf78441197c9fc94aa3ebb4f21218cf61dfe82b62184aa1bc7f1dff1",
"BlockNumber": 1,
"BlockHash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"TxIndex": 0,
"From": "0x0aed175e1b70c67aa601a0f65946aee6bc4e5534",
"To": "0x0000000000000000000000000000000000000000",
"Amount": 0,
"Timestamp": 1502860798414577195,
"Nonce": 6651414131918424343,
"ExecuteTime": 23,
"Payload": "0x60a0604052600c60608190527f48656c6c6f2051736e61726b0000000000000000000000000000000000000000608090815261003e916000919061004c565b50341561004757fe5b6100ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061008d57805160ff19168380011785556100ba565b828001600101855582156100ba579182015b828111156100ba57825182559160200191906001019061009f565b5b506100c79291506100cb565b5090565b6100e991905b808211156100c757600081556001016100d1565b5090565b90565b610188806100fb6000396000f300606060405263ffffffff60e060020a6000350416638da9b7728114610021575bfe5b341561002957fe5b6100316100b1565b604080516020808252835181830152835191928392908301918501908083838215610077575b80518252602083111561007757601f199092019160209182019101610057565b505050905090810190601f1680156100a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100b961014a565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561013f5780601f106101145761010080835404028352916020019161013f565b820191906000526020600020905b81548152906001019060200180831161012257829003601f168201915b505050505090505b90565b604080516020810190915260008152905600a165627a7a72305820794559401ace9f00ea9b8bc27902f3396df15cc581cc6545a04292177f71725c0029",
"Invalid": false,
"InvalidMsg": ""
}
]
}
}
根据token,index,size参数,实现查询指定页的区块。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| index |
long |
page index 页码 |
| size |
long |
page size 每页区块数量 |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| index |
1 |
| size |
1 |
PageBlocksReturn pageBlocksReturn = api.pageBlocks("Y5BFCSV2MCAZUQMZ9LMMSQ", 1, 12);
返回的PageBlocksReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| List |
区块列表 |
| Number |
区块的高度 |
{
"code": 0 ,
"status":"" ,
"List": [
{
"Number": 144,
"Hash": "0x0f91c2be510f101e1d06fec1cfe381bcd8b04e9ad69d99f03521498f1f09c7b6",
"ParentHash": "0x76c785dd4e58762787f39e1e48f57ff0e3d4877f26e8cda53810d31232870d9b",
"WriteTime": 1503322044366500267,
"AvgTime": 24,
"Txcounts": 1,
"MerkleRoot": "0xa49893299fa4f0e2d39d6f49253d3896c9d1724d103913012f765da6083ca3e5",
"Transactions": [
{
"Version": "1.2",
"Hash": "0x5b04a3ebeaa9d39c6d9e001ec4eda5985e02f48b39c8fe7a3b47df69a6054070",
"BlockNumber": 144,
"BlockHash": "0x0f91c2be510f101e1d06fec1cfe381bcd8b04e9ad69d99f03521498f1f09c7b6",
"TxIndex": 0,
"From": "0x76fd78244f6a91d2fbe047a10a9b78e682474e7a",
"To": "0x0000000000000000000000000000000000000000",
"Amount": 0,
"Timestamp": 1503322043820082352,
"Nonce": 5600924393587988459,
"ExecuteTime": 24,
"Payload": "0x60606040526000805463ffffffff19169055341561001957fe5b5b610101806100296000396000f300606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575bfe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a72305820ef7bd79289fbeed067c8fea77467f6a922f70007fc6ba26663290ab3469867420029",
"Invalid": false,
"InvalidMsg": ""
}
]
}
],
"Count": 144
}
根据token,from,to参数,查询指定区间内的区块。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| from |
long |
起始区块号 |
| to |
object |
终止区块号可以为具体块号或者为latest |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| from |
1 |
| to |
2 |
RangeBlocksReturn queryBlocksReturn = api.rangeBlocks("IVKEWCXMOAWXG1DTYAGUZA", 1, 2);
返回的RangeBlocksReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| Blocks |
区块数组 |
{
"code": 0 ,
"status":"" ,
"Blocks": [
{
"Number": 2,
"Hash": "0xaa9d9227d307f87d2c19f3b624f6af32bd90784044d1089c9e457fc90b70794f",
"ParentHash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"WriteTime": 1502860905924476359,
"AvgTime": 17,
"Txcounts": 1,
"MerkleRoot": "0xda854e53569a308034da9714d2a9cf16a174e39b96699b0d0727c27d93896f2f",
"Transactions": [
{
"Version": "1.2",
"Hash": "0x612b1b6d10cd1ee55ad3084e8734adaae11f83e9a2fcd062c064c0bc382eb8ba",
"BlockNumber": 2,
"BlockHash": "0xaa9d9227d307f87d2c19f3b624f6af32bd90784044d1089c9e457fc90b70794f",
"TxIndex": 0,
"From": "0x0aed175e1b70c67aa601a0f65946aee6bc4e5534",
"To": "0xceced635239b1b801d972b93d253f628bf1cf9fa",
"Amount": 0,
"Timestamp": 1502860805006583586,
"Nonce": 5944830206637008055,
"ExecuteTime": 17,
"Payload": "0x8da9b772",
"Invalid": false,
"InvalidMsg": ""
}
]
},
{
"Number": 1,
"Hash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"ParentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"WriteTime": 1502860899344164151,
"AvgTime": 23,
"Txcounts": 1,
"MerkleRoot": "0xda854e53569a308034da9714d2a9cf16a174e39b96699b0d0727c27d93896f2f",
"Transactions": [
{
"Version": "1.2",
"Hash": "0x4a630908bf78441197c9fc94aa3ebb4f21218cf61dfe82b62184aa1bc7f1dff1",
"BlockNumber": 1,
"BlockHash": "0x17fb07cb6e6fe9ff00d4de91b82590158eb12ef1faff724abca9ca7ab584daed",
"TxIndex": 0,
"From": "0x0aed175e1b70c67aa601a0f65946aee6bc4e5534",
"To": "0x0000000000000000000000000000000000000000",
"Amount": 0,
"Timestamp": 1502860798414577195,
"Nonce": 6651414131918424343,
"ExecuteTime": 23,
"Payload": "0x60a0604052600c60608190527f48656c6c6f2051736e61726b0000000000000000000000000000000000000000608090815261003e916000919061004c565b50341561004757fe5b6100ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061008d57805160ff19168380011785556100ba565b828001600101855582156100ba579182015b828111156100ba57825182559160200191906001019061009f565b5b506100c79291506100cb565b5090565b6100e991905b808211156100c757600081556001016100d1565b5090565b90565b610188806100fb6000396000f300606060405263ffffffff60e060020a6000350416638da9b7728114610021575bfe5b341561002957fe5b6100316100b1565b604080516020808252835181830152835191928392908301918501908083838215610077575b80518252602083111561007757601f199092019160209182019101610057565b505050905090810190601f1680156100a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100b961014a565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561013f5780601f106101145761010080835404028352916020019161013f565b820191906000526020600020905b81548152906001019060200180831161012257829003601f168201915b505050505090505b90565b604080516020810190915260008152905600a165627a7a72305820794559401ace9f00ea9b8bc27902f3396df15cc581cc6545a04292177f71725c0029",
"Invalid": false,
"InvalidMsg": ""
}
]
}
]
}
根据token,sourcecode参数,编译合约源码。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| sourcecode |
string |
合约源码 |
| 参数 |
值 |
| token |
_G2BS9FTNUE2SC5SO-NB3Q |
| sourceCode |
contract Accumulator{ uint32 sum = 0; function increment(){ sum = sum + 1; } function getSum() returns(uint32){ return sum; } function add(uint32 num1,uint32 num2) { sum = sum+num1+num2; } } |
String s = "contract Accumulator{ uint32 sum = 0; function increment(){ sum = sum + 1; } function getSum() returns(uint32){ return sum; } function add(uint32 num1,uint32 num2) { sum = sum+num1+num2; } }";
CompileReturn compileReturn = api.compileContract("BZTEAKUJOYECQVU7ZIYXLA", s);
返回的CompileReturn对象的属性:
{
"Code": 0,
"Status": "ok",
"Cts": [
{
"Code": 0,
"Status": "",
"Id": 0,
"Bin": "0x60606040526000805463ffffffff19169055341561001c57600080fd5b5b61012680610
02c6000396000f300606060405263ffffffff7c010000000000000000000000000000000000000000
00000000000000006000350416633ad14af381146050578063569c5f6d146071578063d09de08a146
09a575b600080fd5b3415605a57600080fd5b606f63ffffffff6004358116906024351660ac565b00
5b3415607b57600080fd5b608160ce565b60405163ffffffff909116815260200160405180910390f
35b341560a457600080fd5b606f60db565b005b6000805463ffffffff808216850184011663ffffff
ff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff80821660010
11663ffffffff199091161790555b5600a165627a7a72305820bccd1806f9855c781cf23418c61758
b4da87d5e5cef6503be5aa0d4b4c8db4460029",
"Abi": "[{\"constant\":false,\"inputs\":[{\"name\":\"num1\",\"type\":\"uint32\"},
{\"name\":\"num2\",\"type\":\"uint32\"}],\"name\":\"add\",\"outputs\":[],\"payable\":
false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,
\"inputs\":[],\"name\":\"getSum\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],
\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},
{\"constant\":false,\"inputs\":[],\"name\":\"increment\",\"outputs\":[],\"payable\":false,
\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
"Name": "Accumulator",
"OK": true
}
]
}
根据token,bin,from,callback参数,部署合约异步获取回执。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| from |
string |
合约调用者地址 |
| bin |
string |
合约源码编码生成的bin |
| callback |
function |
用户自定义方法 |
| 参数 |
值 |
| token |
XUSICYOHONK_AJA1LMQQLQ |
| address |
0x60606040526000805463ffffffff19169055341561001957fe5b5b610101806100296000396000f300606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575bfe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a723058205196f5c898c244d3ada034d11893c7a5d67acac307f8e5db125810804cf7bb690029 |
DeployConReturn deployConReturn = api.deployContract("XUSICYOHONK_AJA1LMQQLQ", "0x60606040526000805463ffffffff19169055341561001957fe5b5b610101806100296000396000f300606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575bfe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a723058205196f5c898c244d3ada034d11893c7a5d67acac307f8e5db125810804cf7bb690029","0x91049d6088088bf0c6c9c67d81375a89f648be0",
new DevCallback() {
@Override
public void onCompute(String address) {
System.out.println(address);
}
});
返回的DeployConReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| txHash |
交易hash |
{
"code":0 ,
"status":"" ,
"txHash":"0x05a267ed9cb3102c6297ecf1585b495bc529245e7d90fd4414bd880f3b7c12b6"
}
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| txHash |
交易hash |
| postState |
部署地址 |
异步线程获取回执,此部分的值返回对象获取不到但是可以用传入的自定义方法使用contractAddress
{
"code":0 ,
"status":"" ,
"txHash":"0xe6f62694aa5be2614b24dc3394a79cf1f5923c8dc7dbd81663328ae47aae0613",
"postState": "0x0000000000000000000000000000000000000000000000000000000000000000",
"contractAddress": "0x752bc8552696ba53bb7fddb67294c704b4c6f553",
"ret": "0x606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575bfe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a723058205196f5c898c244d3ada034d11893c7a5d67acac307f8e5db125810804cf7bb690029"
}
根据token,bin,from,部署合约,并获取回执信息。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| from |
string |
合约调用者地址 |
| bin |
string |
合约源码编码生成的bin |
| 参数 |
值 |
| token |
XUSICYOHONK_AJA1LMQQLQ |
| bin |
0x60606040526000805463ffffffff19169055341561001957fe5b5b610101806100296000396000f300606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575bfe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a723058205196f5c898c244d3ada034d11893c7a5d67acac307f8e5db125810804cf7bb690029 |
| from |
0x645aaec26e752d2249a7d3df9f8f6f2c10f71ac5 |
GetTxReciptReturn txReciptReturn = api.deploysyncContract("60K-WEVJPMW3BXHSRUYGGA", "0x60606040523415600b57fe5b604051602080605f83398101604052515b5b505b603380602c6000396000f30060606040525bfe00a165627a7a723058206f3d39eab86ddcfb556e1c6f43a60903e1ab88beb7909c0d49d7a25b1b1a15650029", "0x885b67411d84f6aa3b1e8e5ee6730c8123423777");
返回的GetTxReciptReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| txHash |
交易hash |
| postState |
部署合约地址 |
{
"code":0 ,
"status":"" ,
"txHash":"0x03ed7e9955bc7aa0a538b7671d4287df7537ce9215319965fcbd451774e3f244",
"postState": "0x0000000000000000000000000000000000000000000000000000000000000000",
"contractAddress": "0x41c018c1f9631bb598218b06810a6df74ad5e07f",
"ret": "0x60606040525bfe00a165627a7a723058206f3d39eab86ddcfb556e1c6f43a60903e1ab88beb7909c0d49d7a25b1b1a15650029"
}
根据token,bin,from,callback,abi,param...部署合约,并异步获取回执信息。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| bin |
string |
合约源码编码生成的bin |
| from |
string |
合约调用者地址 |
| callback |
function |
用户自定义方法 |
| abi |
string |
合约源码对应的abi数组 |
| param... |
FuncParamReal对象 |
<FuncParamReal对象>0个或1个或多个 |
FuncParamReal param1 = new FuncParamReal("uint32", 1);
FuncParamReal param2 = new FuncParamReal("uint256", 2);
"token": "JQS1VXOTNEANEOUZ79537A",
"bin": "0x60606040523415600b57fe5b604051602080605f83398101604052515b5b505b603380602c6000396000f30060606040525bfe00a165627a7a723058206f3d39eab86ddcfb556e1c6f43a60903e1ab88beb7909c0d49d7a25b1b1a15650029",
"from": "0x885b67411d84f6aa3b1e8e5ee6730c8123423777",
new DevCallback() {
@Override
public void onCompute(String address) {
System.out.println(address);
}
},
"Abistr": "[{"constant":false,"inputs":[{"name":"num1","type":"uint32"},{"name":"num2","type":"uint32"}],"name":"add","outputs":[],"payable":false,"type":"function"},{"constant":false,},"inputs":[],"name":"getSum","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"increment","outputs":[],"payable":false,"type":"function"}]",
param...(可为空,一个或多个,此处为空)
DeployConReturn deployConReturn = api.deployArgsContract("60K-WEVJPMW3BXHSRUYGGA","0x60606040523415600b57fe5b604051602080605f83398101604052515b5b505b603380602c6000396000f30060606040525bfe00a165627a7a723058206f3d39eab86ddcfb556e1c6f43a60903e1ab88beb7909c0d49d7a25b1b1a15650029","0x885b67411d84f6aa3b1e8e5ee6730c8123423777",
new DevCallback() {
@Override
public void onCompute(String address) {
System.out.println(address);
}
}, abi);
返回的GetTxReciptReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| txHash |
交易hash |
{
"code": 0 ,
"status": "" ,
"txHash": "0x2c0097fdefc0affc27520a35268d2ac36b64dfca76f4347e140e05d9898a8a98"
}
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| txHash |
交易hash |
| postState |
部署合约地址 |
异步线程获取回执,此部分的值返回对象获取不到但是可以用传入的自定义方法使用contractAddress
{
"code": 0 ,
"status": "" ,
"txHash": "0x2c0097fdefc0affc27520a35268d2ac36b64dfca76f4347e140e05d9898a8a98",
"postState": "0x0000000000000000000000000000000000000000000000000000000000000000",
"contractAddress": "0x41c018c1f9631bb598218b06810a6df74ad5e07f",
"ret": "0x60606040525bfe00a165627a7a723058206f3d39eab86ddcfb556e1c6f43a60903e1ab88beb7909c0d49d7a25b1b1a15650029"
}
根据token,_const,from,to,abi,callback,func_name,param...调用合约,并异步获取回执信息。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| _const |
bool |
constant |
| from |
string |
合约调用者地址 |
| to |
string |
合约地址 |
| abi |
string |
合约源码对应的abi数组 |
| callback |
function |
用户自定义方法 |
| param... |
FuncParamReal对象 |
<FuncParamReal对象>0个或1个或多个 |
FuncParamReal param1 = new FuncParamReal("uint32", 1);
FuncParamReal param2 = new FuncParamReal("uint32", 2);
"token":"FWYHAQMTWE6BPQWHPSGFXQ" ,
"const":false ,
"from":"0x9e33ffae1477a33233126c6680d418e0fb1ed219",
"to":"0x4dffc0eecde676583ebde1c29d39a0319bc8b1c7",
"abi":"[{"constant":false,"inputs":[{"name":"num1","type":"uint32"}, {"name":"num2","type":"uint32"}],"name":"add","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"getSum","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"increment","outputs":[],"payable":false,"type":"function"}]",
(用户自定义方法,可以使用address来进行自己想要运行的方法)
new InvCallback() {
@Override
public void onCompute(List ret) {
System.out.println(ret);
}
},
"func_name":"add",
param1,
param2
InvokeConReturn invokeConReturn = api.invokeContract("ZWUEW9TLN3Q_EMELYQFVAA",false,"0x7c2b111bce226cde5848a6304dc36922b7099491"
, "0x83665f52cd2d201269da2faa6c877d2d037b991b", abi, new InvCallback() {
@Override
public void onCompute(List ret) {
System.out.println(ret);
}
});
返回的GetTxReciptReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
{
"code": 0,
"status":"",
"TxHash": "0x331c519f6c5c8d33d032e5da33ae55c8ce96d75eefd0f4201f8145ffd584fd1a"
}
| 参数 |
说明 |
| Code |
状态码0为成功,非零则为相应错误码 |
| Status |
成功时为"ok",失败时为相应的错误信息 |
异步线程获取回执,此部分的值返回对象获取不到但是可以用传入的自定义方法使用ret
{
"Code": 0,
"Status": "ok",
"TxHash": "0x971643ffe42e25febe46e5e4791d03f6abb13a5acb31bd339062f802362c2c0f",
"ContractAddress": "0x0000000000000000000000000000000000000000",
"Ret": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000738fdc2553b5cdcae43952539dcb04b3ae621ee1"
}
根据token,_const,from,to,abi,func_name,param...调用合约,获取回执信息。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| _const |
bool |
constant |
| from |
string |
合约调用者地址 |
| to |
string |
合约地址 |
| abi |
string |
合约源码对应的abi数组 |
| func_name |
string |
调用合约中的方法名 |
| param... |
FuncParamReal对象 |
<FuncParamReal对象>0个或1个或多个 |
FuncParamReal param1 = new FuncParamReal("uint32", 1);
FuncParamReal param2 = new FuncParamReal("uint32", 2);
"token":"FWYHAQMTWE6BPQWHPSGFXQ" ,
"const":false ,
"from":"0x9e33ffae1477a33233126c6680d418e0fb1ed219",
"to":"0x4dffc0eecde676583ebde1c29d39a0319bc8b1c7",
"abi":"[{"constant":false,"inputs":[{"name":"num1","type":"uint32"}, {"name":"num2","type":"uint32"}],"name":"add","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"getSum","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"increment","outputs":[],"payable":false,"type":"function"}]",
"func_name":"add",
param1,
param2
GetTxReciptReturn getTxReciptReturn = api.invokesyncContract("FFDCMMO4NXSHO29OVURYGW", false,"0x7c2b111bce226cde5848a6304dc36922b7099491"
, "0x83665f52cd2d201269da2faa6c877d2d037b991b", abi, "getString");
返回的GetTxReciptReturn对象的属性:
| 参数 |
说明 |
| Code |
状态码0为成功,非零则为相应错误码 |
| Status |
成功时为"ok",失败时为相应的错误信息 |
{
"Code": 0,
"Status": "ok",
"TxHash": "0x971643ffe42e25febe46e5e4791d03f6abb13a5acb31bd339062f802362c2c0f",
"ContractAddress": "0x0000000000000000000000000000000000000000",
"Ret": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000738fdc2553b5cdcae43952539dcb04b3ae621ee1"
}
根据token,from,opration,payload,to,维护合约。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| from |
string |
合约调用者地址 |
| opration |
int |
1升级2冻结3解冻 |
| payload |
string |
新的合约的bin |
| to |
string |
合约地址 |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| from |
0xd4621641bfa08b005c704726d7d2082665f34df4 |
| opration |
1 |
| payload |
0x60606040523415600b57fe5b5b60338060196000396000f30060606040525bfe00a165627a7a72305820d0b1f6bf73919b56bcf02d5db4871de60bd62a9b4ef2200e69b8ade3e6fcd4b90029 |
| to |
0xdf9f4f078997b8269f0782bc40cb3d07a6efd069 |
MainTainReturn mainTainReturn = api.maintainContract("IVKEWCXMOAWXG1DTYAGUZA", "0x885b67411d84f6aa3b1e8e5ee6730c8123423777", 1, "0x60606040526000805463ffffffff19169055341561001957fe5b5b610101806100296000396000f300606060405263ffffffff60e060020a6000350416633ad14af381146034578063569c5f6d146052578063d09de08a146078575fe5b3415603b57fe5b605063ffffffff600435811690602435166087565b005b3415605957fe5b605f60a9565b6040805163ffffffff9092168252519081900360200190f35b3415607f57fe5b605060b6565b005b6000805463ffffffff808216850184011663ffffffff199091161790555b5050565b60005463ffffffff165b90565b6000805463ffffffff8082166001011663ffffffff199091161790555b5600a165627a7a723058205196f5c898c244d3ada034d11893c7a5d67acac307f8e5db125810804cf7bb690029", "0x6a713a318ac303457da2d42e52e7304f33ef310a");
返回的MainTainReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
{
"code":0,
"status":"",
"TxHash":"0xb07859c9e33218956ae03941e2c3e03d7102057e64677902f5b8ab69950186bb"
}
根据token,address查询合约状态。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| address |
string |
合约地址 |
| 参数 |
值 |
| token |
Y5BFCSV2MCAZUQMZ9LMMSQ |
| contract address |
0x9dcaee215a9cbd1207f6d1351a930a804a269892 |
StatusConReturn statusConReturn = api.statusContract("IVKEWCXMOAWXG1DTYAGUZA", "0xd71e6c4910e517b8556fa3d3b7866eb2f6a7025f");
返回的StatusConReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| Status |
成功时为"",失败时为相应的错误信息 |
| ctStatus |
合约状态 |
{
"code":0,
"Status":"ok",
"ctStatus":"normal"
}
通过传入token,创建账户地址。
| 参数 |
类型 |
说明 |
| token |
string |
授权令牌 |
| 参数 |
值 |
| token |
BPJKDVCJNDOJ6EXLYTW_PQ |
CreteAccountReturn creteAccountReturn = api.createAccount("BPJKDVCJNDOJ6EXLYTW_PQ");
返回的CreteAccountReturn对象的属性:
| 参数 |
说明 |
| code |
状态码0为成功,非零则为相应错误码 |
| status |
成功时为"",失败时为相应的错误信息 |
| id |
地址 |
| time |
创建时间 |
| isDisabled |
是否可用 |
| appName |
应用名称 |
{
"code": 0,
"status":"",
"id": 3683 ,
"address": "0x7ecc0ffcdd771be370b7cc748cc320d26cef9a55",
"time": "2017-09-12 15:00:27",
"isDisabled": false,
"appName": "test"
}
| 错误码 |
含义 |
| 1008 |
授权未通过 |
| 1009 |
非法参数 |
| 1010 |
查询异常 |
| 1011 |
appkey不存在 |
| 1012 |
不支持的查询类型 |
| 1013 |
合约编译异常 |
| 1014 |
账户私钥异常 |
| 1015 |
合约部署异常 |
| 1016 |
合约调用异常 |
| 1017 |
合约维护操作异常 |