接口说明

1. 合约接口

1.1. 合约编译接口

接口描述

调用此接口编译合约。上传合约文件zip压缩包(压缩包里的每个合约的文件名要和合约名一致,合约引用需使用“./xxx.sol”),返回合约编译信息。

注:合约编译默认使用ethereum solcj-0.4.25.jar,如需使用其他版本在/dist/lib中替换solcJ的jar包; 或将新的solcJ jar包放置在项目根目录的/lib文件夹中,在build.gradle中引入web3sdk处exclude去除ethereum的solcJ jar包,同时通过fileTree引入lib中的solcJ-gm jar包

下载其他版本或国密版合约编译包则到下载合约编译jar包下载

接口URL

http://localhost:5003/WeBASE-Transaction/contract/compile

调用方法

HTTP POST

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1合约文件filezip必须是zip压缩包,直接压缩.sol文件;压缩包中不包含文件夹

2)数据格式

压缩包文件

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "contractName": "HelloWorld",
  7. "contractBin": "xxx",
  8. "contractAbi": []
  9. }
  10. ]
  11. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

1.2. 合约部署接口

接口描述

调用此接口发送合约部署相关信息,交易服务子系统会将合约部署请求信息缓存到数据库,通过轮询服务向节点发送交易请求,确保合约成功部署。

接口URL

http://localhost:5003/WeBASE-Transaction/contract/deploy

调用方法

HTTP POST

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2部署业务流水号uuidDeployString64
3签名类型signTypeint20-本地配置私钥签名,1-本地随机私钥签名,2-调用WeBASE-Sign签名
4合约BincontractBinString
5合约AbicontractAbiList\<Object>JSON数组
6构造方法参数funcParamList\<Object>JSON数组
7签名用户编号signUserIdintsignType为2时必填

2)数据格式

  1. {
  2. "groupId":1,
  3. "uuidDeploy":"XXX",
  4. "signType":0,
  5. "contractBin":"0xXXXXX",
  6. "contractAbi":[],
  7. "funcParam":["hello"],
  8. "signUserId":100001
  9. }

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": null
  5. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

1.3. 合约地址查询接口

接口描述

根据群组编号和和部署业务流水号查询部署的合约地址。

接口URL

http://localhost:5003/WeBASE-Transaction/contract/address/{groupId}/{uuidDeploy}

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2部署业务流水号uuidDeployString64

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/contract/address/1/10001

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject合约地址

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": "0xXXXXX"
  5. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

1.4. 部署event查询接口

接口描述

根据群组编号和和部署业务流水号查询部署的合约的构造函数的event信息。

接口URL

http://localhost:5003/WeBASE-Transaction/contract/event/{groupId}/{uuidDeploy}

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2部署业务流水号uuidDeployString64

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/contract/event/1/10001

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "constructorEvent1": [
  6. "hello!"
  7. ],
  8. "constructorEvent": [
  9. "test",
  10. 8
  11. ]
  12. }
  13. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

1.5. 部署信息查询接口

接口描述

根据群组编号和和部署业务流水号查询部署的信息。

接口URL

http://localhost:5003/WeBASE-Transaction/contract/deployInfo/{groupId}/{uuidDeploy}

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2部署业务流水号uuidDeployString64

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/contract/deployInfo/1/10001

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject
3.1编号idint
3.2群组编号groupIdint
3.3流水号uuidDeployString
3.4合约bincontractBinString
3.5合约abicontractAbiString
3.6合约地址contractAddressString
3.7方法参数funcParamString
3.8签名类型signTypeint
3.9签名用户编号signUserIdint
3.10请求上链次数requestCountint
3.11处理状态handleStatusint0-待处理,1-处理成功
3.12交易hashtransHashString
3.13交易回执状态receiptStatusboolean0-异常,1-正常
3.14创建时间gmtCreateDate

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "id": 1,
  6. "groupId": 1,
  7. "uuidDeploy": "10001",
  8. "contractBin": "XXX",
  9. "contractAbi": "XXX"
  10. "contractAddress": "XXX",
  11. "funcParam": "[]",
  12. "signType": 0,
  13. "signUserId": 0,
  14. "requestCount": 1,
  15. "handleStatus": 1,
  16. "transHash": "XXX",
  17. "receiptStatus": true,
  18. "gmtCreate": 1574853659000
  19. }
  20. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

2. keystore接口

2.1. 查询账户地址接口

接口描述

查询本地配置私钥对应的账户地址 。

接口URL

http://localhost:5003/WeBASE-Transaction/key/address

调用方法

HTTP GET

请求参数

1)参数表

2)数据格式

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "0xfe12013103cf85f05b0862e5ef49da4fbdbd8f99"
  6. }
  7. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

3. 交易接口

3.1. 交易请求接口

接口描述

调用此接口发送无状态交易请求,交易服务子系统会将交易请求信息缓存到数据库,通过轮询服务向节点发送交易请求,确保交易成功上链。当部署业务流水号为空时(即不是调用交易子系统部署合约),合约地址和abi不能为空。

接口URL

http://localhost:5003/WeBASE-Transaction/trans/send

调用方法

HTTP POST

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2交易业务流水号uuidStatelessString64
3部署业务流水号uuidDeployString64
4签名类型signTypeint20-本地配置私钥签名,1-本地随机私钥签名,2-调用WeBASE-Sign签名
5合约地址contractAddressString
6合约AbicontractAbiList\<Object>JSON数组
7调用方法名funcNameString
8方法参数funcParamList\<Object>JSON数组
9签名用户编号signUserIdintsignType为2时必填

2)数据格式

  1. {
  2. "groupId":1,
  3. "uuidStateless":"XXX",
  4. "uuidDeploy":"XXX",
  5. "signType":0,
  6. "contractAddress":"0xXXXXX",
  7. "contractAbi":[],
  8. "funcName":"set",
  9. "funcParam":["hello"],
  10. "signUserId":100001
  11. }

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": null
  5. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

3.2. 交易查询接口

接口描述

调用此接口同步从节点查询交易信息。当部署业务流水号为空时(即不是调用交易子系统部署合约),合约地址和abi不能为空。

接口URL

http://localhost:5003/WeBASE-Transaction/trans/call

调用方法

HTTP POST

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2部署业务流水号uuidDeployString64
3合约地址contractAddressString
4合约AbicontractAbiList\<Object>JSON数组
5调用方法名funcNameString
6方法参数funcParamList\<Object>JSON数组

2)数据格式

  1. {
  2. "groupId":1,
  3. "uuidDeploy":"XXX",
  4. "contractAbi":[],
  5. "funcName":"get",
  6. "funcParam":[]
  7. }

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. "hello"
  6. ]
  7. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

3.3. 交易请求event查询接口

接口描述

根据群组编号和交易业务流水号查询交易请求的event信息。

接口URL

http://localhost:5003/WeBASE-Transaction/trans/event/{groupId}/{uuidStateless}

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2交易业务流水号uuidStatelessString64

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/trans/event/1/20001

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "setEvent": [
  6. "test"
  7. ],
  8. "setEvent1": [
  9. "test"
  10. ]
  11. }
  12. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

3.4. 交易请求output查询接口

接口描述

根据群组编号和交易业务流水号查询交易请求的output信息。

接口URL

http://localhost:5003/WeBASE-Transaction/trans/output/{groupId}/{uuidStateless}

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2交易业务流水号uuidStatelessString64

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/trans/output/1/20001

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. "hello!"
  6. ]
  7. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

3.5. 交易信息查询接口

接口描述

根据群组编号和交易业务流水号查询交易信息。

接口URL

http://localhost:5003/WeBASE-Transaction/trans/transInfo/{groupId}/{uuidStateless}

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1群组编号groupIdint16
2交易业务流水号uuidStatelessString64

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/trans/transInfo/1/20001

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataObject
3.1编号idint
3.2群组编号groupIdint
3.3交易流水号uuidStatelessString
3.4部署流水号uuidDeployString
3.5合约abicontractAbiString
3.6合约地址contractAddressString
3.7方法名funcNameString
3.8方法参数funcParamString
3.9签名类型signTypeint
3.10签名用户编号signUserIdint
3.11请求上链次数requestCountint
3.12处理状态handleStatusint0-待处理,1-处理成功
3.13交易hashtransHashString
3.14交易返回原文transOutputString
3.15交易回执状态receiptStatusboolean0-异常,1-正常
3.16创建时间gmtCreateDate

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "id": 1,
  6. "groupId": 1,
  7. "uuidStateless": "20001",
  8. "uuidDeploy": "10001",
  9. "contractAbi": "XXX"
  10. "contractAddress": "XXX",
  11. "funcName": "set",
  12. "funcParam": "XXX",
  13. "signType": 0,
  14. "signUserId": 0,
  15. "requestCount": 1,
  16. "handleStatus": 1,
  17. "transHash": "XXX",
  18. "transOutput": "0x",
  19. "receiptStatus": true,
  20. "gmtCreate": 1574854118000
  21. }
  22. }

b.异常返回结果示例(信息详情请参看附录1)

  1. {
  2. "code": 103001,
  3. "message": "system error",
  4. "data": null
  5. }

4. 其他接口

4.1. 获取EncryptType接口

接口描述

返回Transaction服务中web3sdk所使用的encryptType,0:标准,1:国密

接口URL

http://localhost:5003/WeBASE-Transaction/encrypt

调用方法

HTTP GET

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1-----

2)数据格式

  1. http://127.0.0.1:5003/WeBASE-Transaction/encrypt

响应参数

1)参数表

序号中文参数名类型最大长度必填说明
1返回码codeString返回码信息请附录1
2提示信息messageString
3返回数据dataIntegerencryptType: 0:标准, 1:国密

2)数据格式

a.请求正常返回结果

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": 0
  5. }

附录

1. 返回码信息列表

Codemessage描述
0success正常
103001system error系统异常
103002param valid fail参数校验异常
203001group id cannot be empty群组编号不能为空
203002uuid cannot be empty业务流水号不能为空
203003sign type cannot be empty签名类型不能为空
203004contract bin cannot be empty合约bin不能为空
203005contract abi cannot be empty合约abi不能为空
203006contract address cannot be empty合约地址不能为空
203007function name cannot be empty方法名不能为空
303001uuid is already exists业务流水号已经存在
303002get sign data from sign service error调用签名服务签名错误
303003contract funcParam is error合约方法参数错误
303004sign type is not exists签名类型不存在
303005contract abi is empty合约abi不存在
303006request function can not be constant交易上链不能为constant方法
303007query function must be constant查询方法必须是constant
303008query data from chain failed查询链上数据失败
303009file cannot be empty文件不能为空
303010it is not a zip file文件不是zip格式
303011contract has not been deployed合约还没有部署
303012contract compile error合约编译错误
303013node request failed节点请求失败
303014there is not event不存在event
303015trans has not been sent to the chain交易还没有上链
303016if deploy uuid is empty, contract address and contract abi cannot be empty部署业务流水号为空时,合约地址和abi不能为空
303017trans output is empty交易返回值为空
303018trans is not exists交易不存在
303019request group id has not been configured请求的群组编号未配置
303020sign user id cannot be empty while sign type is 2签名类型为2是签名用户编号不能为空
303021sign user id check failed签名用户编号校验失败
303022function is not exists合约方法不存在
303023data is not exists数据不存在