4.3.1 凭证API应用基础概述

4.3.1.1 接入前准备

  • 接入节点
  • 中间件(底层链通讯的封装,链上数据同步,链上数据推送)
  • mongodb(中间件数据存储)
  • RocketMQ(中间件数据推送)
  • 加密机(可选,密钥管理,签名工具)
  • API服务(合约业务接口封装)
  • MySQL(API服务数据存储)

4.3.1.2 相关名词表

名词 类型 解释
bizId string 业务流水号(最长32位),业务方生成,且需要保证全局唯一
txHash string 交易hash,上链接口底层链返回的交易回执
blockLimit biginteger 超时块号,一笔交易在此块号之前认为被确认打包,那么这笔交易会被认为是失败的交易(获取最新块号+N块)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 一般是一个合约的代理地址,16进制字符串,部署时提供,可做业务系统配置项
hsmUserId string 安全插件用户唯一标识
signatureInBase64 string 签名数据的base64编码
publicKeyAddress string 公钥地址,由公钥计算出来

4.3.2 凭证API应用调用说明

4.3.2.1 接口调用说明

请求:

GET http://API_HOST:port/path HTTP/1.1
POST http://API_HOST:port/path HTTP/1.1
Content-Type: application/json; charset=utf-8

响应:

响应的格式为:

{
    "code": Integer(),
    "message": "描述",
    "detail": Object()
}

其中code为错误码,message为错误描述,detail为请求成功时的返回值。

4.3.2.2 注意事项

上链接口的bizId在交易重试时需要重新计算,blockLimit由api服务计算超时块号可在配置文件中配置。

  1. bizId区块链要求在一定的块区间内不能重复,如果重复则直接上链失败。
  2. blockLimit超时块号会在请求API服务时返回。

使用我们提供的安全插件生成公钥信息的接口, http://[HSM_HOST:port]/[server]/crypt/generateKeyFromHsm.json?userId=TEST12345678&type=SM2

参数userId要业务方保证不可重复,因为重复的userId接口会返回相同的公钥地址。从业务上讲,公钥地址应该是不能重复的。

4.3.2.3 解析MQ事件

消息监听请参照MQ产品官方文档。

下面以阿里RocketMQ接入举例。

MQ消息主要有两种类型。

  • EVENT_BLOCKNUMBER 块号更新事件

    块号更新事件是指中间件同步了一个新块下来,然后发送了一条MQ消息给业务系统。

    消息内容为:

    {
        "blockNumber":9571,
        "blockHash":"095d8fe634c54b11752d2847cd5cd4e33abd1f4d24714ca5f693bece36e1d1b2",
        "preBlockHash":"23a5e309dd87b49ccf03874cdebf59c4f6bad2697dbf38628205a619b9cf4c3b",
        "blockTime":1595503411925,
        "regionId":"0000000000000000000000000000000000000000"
    }
    

    | 字段名 | 字段类型 | 字段说明 | | ------------ | ---------- | -------------- | | blockNumber | biginteger | 块号 | | blockHash | string | 当前块的块hash | | preBlockHash | string | 前一块的块hash | | blockTime | long | 上链时间戳 | | regionId | string | 专区编号 |

  • EVENT_TX_RECORDED 交易事件

    消息内容如下

    {
        "txHash":"3fbc0b8dbfe74ec8b7a1178895d98ffff73afa2fc179346def776b761c2c80d0",
        "success":true,
        "bizId":"1598001532",
        "code":0,
        "blockNumber":7487508,
        "timestamp":null,
        "signer":"7823540e2f6fe796e95c761b1328dec0387c8adf",
        "regionId":"000000000052d197000000005edf67c300000000",
        "regionPageHash":"144370c6e0456744d221109a821e96bb32f7c2586254913739eea19aa3cad9c7",
        "contractList":[
            "aae0f4dabab653910570454854a84f36e5f6ab31",
            "bae0f4dabab653910570454854a84f36e5f6ab31",
            "cae0f4dabab653910570454854a84f36e5f6ab31"
        ]
    }
    

    | 字段名 | 字段类型 | 字段说明 | | -------------- | ---------- | --------------- | | txHash | string | 交易hash | | success | bool | 交易是否成功 | | bizId | string | 业务流水号 | | code | int | 0为合约调用成功 | | blockNumber | biginteger | 块号 | | timestamp | object | 预留字段 | | signer | string | 交易发起方 | | regionId | string | 专区编号 | | regionPageHash | string | 专区页Hash | | contractList | string[] | 合约地址列表 |

这个事件类型可以使用以下方式获取。

阿里RocketMQ

com.aliyun.openservices.ons.api.Message#getUserProperties("eventType")

4.3.3 接口列表

4.3.3.1 通用查询接口

4.3.3.1.1获取当前最新块号

请求路径:/search/blockNumber

请求方式:GET

请求参数

返回参数

参数名称 参数类型 是否必填 参数说明
code string 错误码SUCCESS为成功
detail biginteger 成功时为最新块号
message string 错误描述

4.3.3.1.2根据bizId查询txHash

场景:上链请求接口调用失败时,需要调用此接口根据bizId查询txHash

请求路径:/search/txHash

请求方式:GET

Content-Type:application/json; charset=utf-8

请求参数

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)业务方生成

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail string 成功时为txHash
message string 错误描述

4.3.3.1.3根据txHash和regionId查询交易回执

场景:收到交易事件EVENT_TX_RECORDED后,根据txHash和regionId查询交易详情。

请求路径:/common/getTransactionByHash

请求方式:POST

Content-Type:application/json; charset=utf-8

请求参数

参数名称 参数类型 是否必填 参数说明
txHash string 交易流水号(最长32位)业务方生成
regionId string 专区编号,部署时提供,可做业务系统配置项

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object 成功时返回
detail.transactionHash string 交易hash
detail.blockNumber biginteger 该笔交易所在的块号
detail.regionId string 该笔交易所在的专区编号
detail.hash string 交易所在专区的页hash或者主账本的块hash
detail.resultCode int 默认情况下为0时,交易成功,非0交易失败。
detail.errorMessage string LogError事件的错误描述
detail.resultMsg string 错误描述
detail.logs object[] 日志列表
detail.logs[*].address string 触发事件的合约地址
detail.logs[*].topics string[] 事件名称
detail.logs[*].topics[0] string 事件名称
detail.logs[*].data object 事件内容
detail.logs[*].data.dumpData object 事件关联的合约地址中实际存储的内容
message string 错误描述

接口返回举例

注:以下内容仅为格式定义,不代表真实数据,往下面翻有交易举例

{
    "code": "SUCCESS",
    "detail": {
        "transactionHash": "0xc18459fff78e33e2bdfbec581b1e55247bb05ff7c565f78983a155d65faf0dbb",
        "blockNumber": 15429451,
        "regionId": "0x0000000000eab696000000005fd0bc0b00000000",
        "hash": "0x9f6f42999cdeb89d88ddcfb0c737d7b7fc82fb7da86a8d0507d06758e4592a03",
        "contractAddress": null,
        "errorMessage": null,
        "resultCode": 0,
        "resultMsg": "运行成功",
        "logs": [
            {
                "address": "0xb239b199972e08367dcd2c1c383f07d701b22e74",
                "data": {
                    "amount": 100000,
                    "tokenSymbol": "464b464b00000000000000000000000000000000000000000000000000000000",
                    "data": "323233",
                    "partitionId": "464b464b30303030310000000000000000000000000000000000000000000000",
                    "holder": "97fdea898d471a368df2ec6a4de4f0305371a871",
                    "extraParams": "31",
                    "issuer": "97fdea898d471a368df2ec6a4de4f0305371a871"
                },
                "topics": [
                    "IssueToken"
                ]
            }
        ]
    }
}j

4.3.3.2合约上链接口

4.3.3.2.1创建普通用户身份

场景:创建一个普通用户身份

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string createUser
hsmUserId string 安全插件用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.symbol string 身份唯一标识(最长30位)
params.primaryKey string 主公钥地址
params.additionalInfo string 附加信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.2更改主公钥地址

场景:更改身份的主公钥地址

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string changePrimaryKey
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.identity string 身份的Identity合约
params.newPrimaryKey string 新的主公钥地址

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.3增加备选公钥地址

场景:为指定的身份增加一组备选公钥地址

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string addAlternativeKeys
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.identity string 身份的Identity合约
params.alternativeKeys string[] 备选公钥地址

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.4移除备选公钥地址

场景:移除指定身份的一组备选公钥地址

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string removeAlternativeKeys
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.identity string 身份的Identity合约
params.alternativeKeys string[] 备选公钥地址

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.5创建角色

场景:创建一个角色

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string createRole
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.roleId string 角色ID(最长8位)
params.permissions string 权限集合
params.description string 描述信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.6更新角色权限

场景:更新指定的角色的权限集合

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string updateRolePermissions
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.roleId string 角色ID(最长8位)
params.permissions string 权限集合

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.7更新角色描述

场景:更新指定的角色描述信息

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string updateRoleDescription
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.roleId string 角色ID(最长8位)
params.description string 描述信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.8创建账户

场景:创建一个账户及其对应的身份

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string createAccount
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.identitySymbol string 身份唯一标识(最长20位)
params.primaryKey string 主公钥地址
params.identityInfo string 身份附加信息
params.roles string[] 关联的角色列表
params.subjectName string 账户主体名称(限英文、数字、中文和符号,最长60位)
params.subjectCode string 账户主体代码(限英文、数字,定长18位)
params.accountInfo string 账户附加信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.9登记账户

场景:将指定的身份登记为指定凭证的账户

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string enrollAccount
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.identity string 身份的Identity合约
params.roles string[] 关联的角色列表
params.subjectName string 账户主体名称(限英文、数字、中文和符号,最长60位)
params.subjectCode string 账户主体代码(限英文、数字,定长18位)
params.accountInfo string 账户附加信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.10增加账户角色

场景:为指定的账户增加一组角色

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string addAccountRoles
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.identity string 身份的Identity合约
params.roles string[] 关联的角色列表

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.11移除账户角色

场景:移除指定账户的一组角色

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string removeAccountRoles
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.identity string 身份的Identity合约
params.roles string[] 角色列表

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.12更新账户附加信息

场景:更新指定账户的附加信息

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string updateAccountAdditionalInfo
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.identity string 身份的Identity合约
params.newAdditionalInfo string 新的附加信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.13发行凭证

场景:发行(默认分片的)凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string issueToken
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.holder string 持有者的Identity合约
params.amount string 发行数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.14发行指定分片的凭证

场景:发行指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string issueTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID(限英文、数字、符号,最长20位)
params.holder string 持有者的Identity合约
params.amount string 发行数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.15发行指定分片的凭证并更新分片信息

场景:发行指定分片的凭证,同时更新分片信息

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string issueTokenWithPartitionInfo
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID(限英文、数字、符号,最长20位)
params.holder string 持有者的Identity合约
params.amount string 发行数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据
params.partitionInfo string 分片附加信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.16更新分片信息

场景:更新指定分片的附加信息

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string updatePartitionAdditionalInfo
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID(限英文、数字、符号,最长20位)
params.partitionInfo string 分片附加信息

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.17转移凭证

场景:转移(默认分片的)凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string transferToken
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.to string 转入方的Identity合约
params.amount string 转移数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.18转移指定分片的凭证

场景:转移指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string transferTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID
params.to string 转入方的Identity合约
params.amount string 转移数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.19转移多个分片的凭证

场景:转移多个分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string transferTokenByMultiplePartitions
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionIds string[] 分片ID列表
params.to string[] 转入方的Identity合约列表
params.amount string[] 转移数量列表
params.extraParams string[] ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.20代理转移凭证

场景:适用于代理人转移持有者的凭证,以及管理者强制转移持有者的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string operatorTransferToken
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.from string 转出方的Identity合约
params.to string 转入方的Identity合约
params.amount string 转移数量列表
params.extraParams string ABI编码的附加参数
params.data string 附加数据
params.operatorData string 操作者(发起者)的附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.21代理转移指定分片的凭证

场景:适用于代理人转移持有者的凭证,以及管理者强制转移持有者的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string operatorTransferTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID
params.from string 转出方的Identity合约
params.to string 转入方的Identity合约
params.amount string 转移数量列表
params.extraParams string ABI编码的附加参数
params.data string 附加数据
params.operatorData string 操作者(发起者)的附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.22冻结凭证

场景:冻结指定账户的指定分片的凭证,并产生一条冻结记录

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string freezeTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID
params.holder string 持有者的Identity合约
params.recordId string 冻结记录ID
params.amount string 冻结数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.23解冻凭证

场景:根据冻结记录,解冻指定账户的指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string unfreezeTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID
params.holder string 持有者的Identity合约
params.recordId string 冻结记录ID
params.amount string 解冻数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.24核销凭证

场景:核销(默认分片的)凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string writeOffToken
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.amount string 核销数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.25核销指定分片的凭证

场景:核销指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string writeOffTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID
params.amount string 核销数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.26代理核销凭证

场景:核销其他账户的(默认分片的)凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string operatorWriteOffToken
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.holder string 持有者的Identity合约
params.amount string 核销数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据
params.operatorData string 操作者(发起者)的附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.27代理核销指定分片的凭证

场景:核销其他账户的指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string operatorWriteOffTokenByPartition
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.partitionId string 分片ID
params.holder string 持有者的Identity合约
params.amount string 核销数量
params.extraParams string ABI编码的附加参数
params.data string 附加数据
params.operatorData string 操作者(发起者)的附加数据

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.28变更代理授权

场景:变更其他账户代理授权的范围。当授权范围变更为“无”时,分片列表会被清空

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string changeAgentAuthorization
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.agent string 代理人的Identity合约
params.scope string 代理范围。可选值为0(无)、1(全部)、2(指定分片)

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.29授权代理指定分片

场景:授权其他账户代理指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string authorizeAgentByPartitions
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.agent string 代理人的Identity合约
params.partitions string[] 分片列表。仅当代理范围为指定分片时有效

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.2.30取消授权代理指定分片

场景:取消授权其他账户代理指定分片的凭证

请求路径:/tx/buildAndSend

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
bizId string 交易流水号(最长32位)
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 合约代理地址,部署时提供,可做业务系统配置项
method string revokeAgentByPartitions
hsmUserId string 加密机用户ID,络谱加密机的一个公私钥对索引ID
params object 合约参数
params.sender string 发起者的Identity合约
params.tokenSymbol string 凭证项目标识
params.agent string 代理人的Identity合约
params.partitions string[] 分片列表。仅当代理范围为指定分片时有效

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.txHash string 交易hash
detail.blockLimit string 超时块号
message string 错误描述

4.3.3.3合约查询接口

4.3.3.3.1获取分片信息

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的凭证合约地址
method string getPartition
params object 合约参数
params.id string 分片ID

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.issuer string 分片的发行方
detail.issueTime string 分片的发行时间
detail.totalSupply string 该分片的凭证总量
detail.writtenOffAmount string 该分片已核销的凭证总量
detail.additionalInfo string 该分片的附加信息
detail.cutOffTime string 分片的过期时间
message string 错误描述

4.3.3.3.2获取分片列表

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的token合约地址
method string getPartitionsOf
params object 合约参数
params.account string 账户的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.partitionIds string[] 分片ID列表
message string 错误描述

4.3.3.3.3获取余额信息

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的token合约地址
method string getBalance
params object 合约参数
params.partitionId string 分片ID
params.account string 账户的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.balance string 余额
message string 错误描述

4.3.3.3.4获取冻结数量

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的token合约地址
method string getFrozenAmount
params object 合约参数
params.partitionId string 分片ID
params.account string 账户的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.amount string 已冻结总量
message string 错误描述

4.3.3.3.5获取冻结记录

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的token合约地址
method string getFreezeRecords
params object 合约参数
params.partitionId string 分片ID
params.account string 账户的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.freezeRecords object[] 已冻结总量
detail.freezeRecords[i].recordId string 冻结记录编号
detail.freezeRecords[i].amount number 冻结数量
message string 错误描述

4.3.3.3.6获取角色信息

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的AccountRegistry合约地址
method string getRole
params object 合约参数
params.id string 角色ID

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.description string 描述信息
detail.permissions string 权限集合
message string 错误描述

4.3.3.3.7获取账户信息

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的AccountRegistry合约地址
method string getAccount
params object 合约参数
params.identity string 账户的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.status string 状态
detail.roles[] string 角色集合
detail.subjectName string 账户主体名称
detail.subjectCode string 账户主体代码
detail.additionalInfo string 附加信息
message string 错误描述

4.3.3.3.8获取代理列表

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的AgentRegistry合约地址
method string getAgents
params object 合约参数
params.account string 账户的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.agents object[] 代理列表
detail.agents[i].agent string 代理方的Identity合约
detail.agents[i].scope number 代理范围
message string 错误描述

4.3.3.3.9获取代理信息

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的AgentRegistry合约地址
method string getAgentAuthorization
params object 合约参数
params.account string 账户的Identity合约
params.agent string 代理方的Identity合约

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.scope string 代理范围
detail.partitionIds string[] 分片ID 列表
message string 错误描述

4.3.3.3.10获取凭证项目标识列表

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的TokenProjectRegistry合约地址
method string getSymbols
params object 合约参数

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.symbols string[] 凭证项目标识列表
message string 错误描述

4.3.3.3.11获取凭证项目合约

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的TokenProjectRegistry合约地址
method string projects
params object 合约参数
params.symbol string 凭证项目的标识

返回参数

参数名称 参数类型 是否必填 参数说明
code integer 错误码SUCCESS为成功
detail object
detail.tokenProject string 凭证项目的TokenProject合约
message string 错误描述

4.3.4合约查询接口注意事项

4.3.4.1获取凭证项目的AccountRegistry合约地址

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的TokenProject合约地址
method string accountRegistry
params object 合约参数

返回参数为AccountRegistry合约地址

{
    "code": "SUCCESS",
    "detail": {
        "0": "779a038a38c5c398ae528dfe6dd9b7049c003c70"
    }
}

4.3.4.2获取凭证项目的AgentRegistry合约地址

请求路径:/search/contract

请求方式:POST

Content-Type:application/json; charset=utf-8

参数名称 参数类型 是否必填 参数说明
regionId string 专区编号,部署时提供,可做业务系统配置项
contractAddress string 凭证项目的凭证项目合约地址
method string agentRegistry
params object 合约参数

返回参数为AgentRegistry合约地址

{
    "code": "SUCCESS",
    "detail": {
        "0": "02a600c1b1d7c632217d47fb7b37c51f3bb8dc97"
    }
}

4.3.5凭证默认角色

凭证合约在部署时会创建以下默认角色。

角色ID 角色描述
ADMIN 管理员,拥有所有合约的所有权限
ISSUER 发行方,拥有发行,持有,交易,核销的权限
HOLDER 持有方,拥有持有,交易,核销的权限

4.3.6签名错误

上链接口返回

{
    "code":"PARAM_INVALID_ERROR",
    "message":"The account does not have permission to send the transaction",
    "detail":null
}

此种情况一般是签名的公钥地址未在链上注册,例如未使用此公钥地址创建身份合约地址,或未将改公钥地址加入到某个身份合约地址中。也有可能是签名是的原文和发到链上的原文不一致导致的。

results matching ""

    No results matching ""