5.4.6.10 公钥上传模式下调用智能合约接口
链下业务系统在连接节点网关时,需要按照接口说明在请求中加入相应的请求参数,调用节点网关以后,节点网关会返回智能合约的执行结果。在上传公钥模式的交易中,链上交易的私钥由用户自己生成和保存,然后由客户端在本地进行上链数据的组装和签名,将签名后的数据上传至节点网关,网关将数据转发至相应的区块链节点发起交易请求。在该模式中组装数据时需要用到合约的ABI以及合约地址等信息,其中合约ABI在开发合约时编译合约得到,合约地址可以在应用的详情页面获取。在网关的SDK中已经实现了该上链数据的组装方法,直接调用即可。
1. 接口地址:https://节点网关地址/api/cita/v1/node/trans
注:用户参与服务成功后可以在服务详情页面查看并下载应用链下业务系统开发所需要的应用服务配置参数、节点网关地址和应用接入密钥对,如下图:
2. 通讯方式: POST
3. 签名算法:详见5.4.6.1应用接入签名算法
4. 请求参数
序号 | 字段名 | 字段 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | 信息头 | header | Map | 是 | |
2 | 信息体 | body | Map | 是 | |
3 | 签名值 | mac | String | 是 | |
header | |||||
1 | 用户唯一标识 | userCode | String | 是 | |
2 | 应用唯一标识 | appCode | String | 是 | |
Body | |||||
1 | 合约名称 | contractName | String | 是 | |
2 | 交易数据 | transData | String | 是 |
示例
{"header":{"userCode":"USER0001202006042321579692440","appCode":"app0001202006042323057101002","tId":""},"mac":"MEUCIQCrjIeRVSt1uwFFGkr37bVM8pF0JgAWb40mKEBc5HbpjgIgEzXRIgG+Q7obwuD2MY4EHo9sIsI1W71M+aQKOfAN3wU=","body":{"contractName":"BsnBaseContractk1","transData":"0xf9016fa008d8ebcb4b1f8205fd7883aa3ce9b9c844424070e55a3af6a5da5d7ee97d287385051f4d5c0083419ce07794866aefc204b8f8fdc3e45b908fd43d76667d7f7680b8e4ebf3b24f0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000005733036303400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026161000000000000000000000000000000000000000000000000000000000000018187801ba0324efc9e17f1d31d95535c5103083560560f836931945d03fb69acb6fd2046b5a05fa6f574f83b3b753c9fe40649a08c2a497af1cd804e08fed2b153af20267f23"}}
5. 响应参数
序号 | 字段名 | 字段 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | 信息头 | header | Map | 是 | |
2 | 信息体 | body | Map | 是 | |
3 | 签名值 | mac | String | 是 | |
header | |||||
1 | 响应标识 | code | int | 是 | 0:校验成功 -1:校验失败 |
2 | 响应信息 | msg | String | 否 | code=0时可为null |
body | |||||
1 | 交易hash | txId | string | 否 | |
2 | 交易状态 | status | String | 否 | |
3 | 查询数据 | data | Object | 否 | 合约查询方法时返回 |