1. DAC合约
合约接入
  • TEC合约
    • API接入
    • SDK接入
  • DAC合约
    • API接入
    • SDK接入
  • BID合约
    • SDK接入
  • DRC合约
    • SDK接入
  • EPC合约
    • SDK接入
  1. DAC合约

API接入

一、合约使用说明#

DAC合约API是遵循BTSI信链盟相关规范要求、在满足可信联盟链对技术、运营需求的相关条件下开发出一套快速、高效、便捷接入BTSI信链盟、蜀信链等数字资产合约的接口。用户的私钥是经过加密后存储在接入方服务器,保证了私钥的安全。
DAC合约API接入流程如下:
1.
接入信链盟,接入流程参考信链盟网站技术文档栏目下的快速接入部分。
2.
联系服务方,获取系统的授权秘钥。
3.
下载BTSI信链盟DAC合约系统的压缩包,解压缩后按照解压缩文件夹里面的《DAC合约API使用说明》文档进行安装部署,目前系统只支持在linux系统部署。
4.
系统部署完成后,根据系统的API文档进行调用,接入DAC合约业务。

二、命名解释#

针对部分公共的参数命名,本章节做详细说明,后续章节不再单独说明:
参数名类型说明
keystring官方签发的授权秘钥
APP IDstring信链盟网站申请应用的APP ID
APP KEYstring信链盟网站申请应用的APP KEY
chain-codestring链的唯一标识码
dac-contract-addressstringDAC合约地址
secretPrivateKeystring通讯秘钥(用于私钥加密)

三、接口详情#

1、创建通讯秘钥#

接口描述:生成通讯秘钥,一旦生成不能修改,请妥善保管
请求路径:/dac/v1/dac/user/createSecretPrivateKey
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/user/createSecretPrivateKey
Content-Type: application/json;charset=utf8

{
  "secretPrivateKey": "12345678901234567890123456789012"
}
请求参数说明:
参数类型说明示例
secretPrivateKeystring32位通讯秘钥,建议使用MD5加密后的字符串12345678901234567890123456789012
响应示例:
{
	"code": 0,
	"data": {},
	"message": "",
	"requestId": "",
	"status": ""
}

2、创建账号#

接口描述:生成用户账号,密钥对,地址,国密SM2,其中私钥为加密后的私钥
请求路径:/dac/v1/dac/user/generate
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/user/generate
Content-Type: application/json;charset=utf8

{
  "secretPrivateKey": "12345678901234567890123456789012"
}
请求参数说明:
参数类型说明示例
secretPrivateKeystring32位通讯秘钥12345678901234567890123456789012
响应示例:
{
	"code": 0,
	"data": {
		"address": "",//链地址
		"restoreKey": "",//还原秘钥(即加密后的私钥)
	},
	"message": "",
	"requestId": "",
	"status": ""
}

3、创建DAC类别#

接口描述:创建DAC类别
请求路径:/dac/v1/dac/handle/createCategory
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/handle/createCategory
Content-Type: application/json;charset=utf8
address:iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6js
secretPrivateKey:12345678901234567890123456789012

{
  "categoryName": "",
  "metadata": ""
}
请求参数说明:
参数类型说明示例
categoryNamestring类别名称一级分类
metadatastring类别元数据元数据
响应示例:
{
	"code": 0,
	"data": {
		"blockNumber": 0,
		"categoryId": 0,
		"checksumContractAddress": "",
		"contractAddress": "",
		"extraData": "",
		"from": "",
		"gasUsed": "",
		"hash": "",
		"input": "",
		"logEntries": [
			{
				"address": "",
				"blockNumber": "",
				"data": "",
				"topics": []
			}
		],
		"message": "",
		"output": "",
		"receiptProof": [
			{
				"left": [],
				"right": []
			}
		],
		"status": 0,
		"statusOK": true,
		"to": "",
		"transactionHash": "",
		"transactionProof": [
			{
				"left": [],
				"right": []
			}
		],
		"txProof": [],
		"txReceiptProof": [],
		"version": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}
注意
header信息里面有address和secretPrivateKey两个参数。address为链地址,secretPrivateKey为通讯秘钥。这两个参数在后面的业务接口里面会出现,后面就不再重复介绍。

4、发行DAC#

接口描述:发行DAC数字资产
请求路径:/dac/v1/dac/handle/mint
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/handle/mint
Content-Type: application/json;charset=utf8
address:iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6js
secretPrivateKey:12345678901234567890123456789012

{
  "amount": 0,
  "categoryId": 0,
  "metadata": "",
  "to": ""
}
请求参数说明:
参数类型说明示例
amountinteger发行数量1
categoryIdinteger类别ID1
metadatastringDAC元数据这是一幅画
tostring接收地址iaa1ze5m080d2dcl5pn9txcwaf3r3kwezjg6fprrcd
响应示例:
{
	"code": 0,
	"data": {
		"blockNumber": 0,
		"checksumContractAddress": "",
		"contractAddress": "",
		"dacIdList": [],
		"extraData": "",
		"from": "",
		"gasUsed": "",
		"hash": "",
		"input": "",
		"logEntries": [
			{
				"address": "",
				"blockNumber": "",
				"data": "",
				"topics": []
			}
		],
		"message": "",
		"output": "",
		"receiptProof": [
			{
				"left": [],
				"right": []
			}
		],
		"status": 0,
		"statusOK": true,
		"to": "",
		"transactionHash": "",
		"transactionProof": [
			{
				"left": [],
				"right": []
			}
		],
		"txProof": [],
		"txReceiptProof": [],
		"version": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}

5、转移DAC#

接口描述:转移DAC数字资产
请求路径:/dac/v1/dac/handle/transferFrom
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/handle/transferFrom
Content-Type: application/json;charset=utf8
address:iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6js
secretPrivateKey:12345678901234567890123456789012

{
  "dacId": 0,
  "extData": "",
  "from": "",
  "to": ""
}
请求参数说明:
参数类型说明示例
dacIdintegerDAC编号1123
extDatastring扩展数据随时扩展
fromstring转移地址iaa1ze5m080d2dcl5pn9txcwaf3r3kwezjg6fp76rc
tostring接收地址iaa1ze5m080d2dcl5pn9txcwaf3r3kwezjg6fprrcd
响应示例:
{
	"code": 0,
	"data": {
		"blockNumber": 0,
		"checksumContractAddress": "",
		"contractAddress": "",
		"extraData": "",
		"from": "",
		"gasUsed": "",
		"hash": "",
		"input": "",
		"logEntries": [
			{
				"address": "",
				"blockNumber": "",
				"data": "",
				"topics": []
			}
		],
		"message": "",
		"output": "",
		"receiptProof": [
			{
				"left": [],
				"right": []
			}
		],
		"status": 0,
		"statusOK": true,
		"to": "",
		"transactionHash": "",
		"transactionProof": [
			{
				"left": [],
				"right": []
			}
		],
		"txProof": [],
		"txReceiptProof": [],
		"version": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}

6、销毁DAC#

接口描述:销毁DAC数字资产
请求路径:/dac/v1/dac/handle/burn
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/handle/burn
Content-Type: application/json;charset=utf8
address:iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6js
secretPrivateKey:12345678901234567890123456789012

{
  "dacId": 1
}
请求参数说明:
参数类型说明示例
dacIdintegerDAC编号1123
响应示例:
{
	"code": 0,
	"data": {
		"blockNumber": 0,
		"checksumContractAddress": "",
		"contractAddress": "",
		"extraData": "",
		"from": "",
		"gasUsed": "",
		"hash": "",
		"input": "",
		"logEntries": [
			{
				"address": "",
				"blockNumber": "",
				"data": "",
				"topics": []
			}
		],
		"message": "",
		"output": "",
		"receiptProof": [
			{
				"left": [],
				"right": []
			}
		],
		"status": 0,
		"statusOK": true,
		"to": "",
		"transactionHash": "",
		"transactionProof": [
			{
				"left": [],
				"right": []
			}
		],
		"txProof": [],
		"txReceiptProof": [],
		"version": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}

7、授权#

接口描述:授权
请求路径:/dac/v1/dac/handle/approve
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/handle/approve
Content-Type: application/json;charset=utf8
address:iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6js
secretPrivateKey:12345678901234567890123456789012

{
  "dacId": 0,
  "privateKey": "",
  "to": ""
}
请求参数说明:
参数类型说明示例
dacIdintegerDAC编号1123
privateKeystring私钥12345678901234567890123456789012dsd
tostring授权地址12345678901234567890123456789012
响应示例:
{
	"code": 0,
	"data": {
		"blockNumber": 0,
		"checksumContractAddress": "",
		"contractAddress": "",
		"extraData": "",
		"from": "",
		"gasUsed": "",
		"hash": "",
		"input": "",
		"logEntries": [
			{
				"address": "",
				"blockNumber": "",
				"data": "",
				"topics": []
			}
		],
		"message": "",
		"output": "",
		"receiptProof": [
			{
				"left": [],
				"right": []
			}
		],
		"status": 0,
		"statusOK": true,
		"to": "",
		"transactionHash": "",
		"transactionProof": [
			{
				"left": [],
				"right": []
			}
		],
		"txProof": [],
		"txReceiptProof": [],
		"version": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}

8、查询DAC授权地址#

接口描述:查询DAC授权地址
请求路径:/dac/v1/dac/data/getApproved
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/getApproved
Content-Type: application/json;charset=utf8

{
  "dacId": 0
}
请求参数说明:
参数类型说明示例
dacIdintegerDAC编号23
响应示例:
{
	"code": 0,
	"data": "",
	"message": "",
	"requestId": "",
	"status": ""
}

9、查询某地址DAC余额#

接口描述:查询某地址DAC余额
请求路径:/dac/v1/dac/data/balanceOf
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/balanceOf
Content-Type: application/json;charset=utf8

{
  "owner": ""
}
请求参数说明:
参数类型说明示例
ownerstring所有者地址iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6jh
响应示例:
{
	"code": 0,
	"data": 0,
	"message": "",
	"requestId": "",
	"status": ""
}

10、根据索引查询DAC#

接口描述:根据索引查询DAC
请求路径:/dac/v1/dac/data/getDACByIndex
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/getDACByIndex
Content-Type: application/json;charset=utf8

{
  "index": 0,
  "owner": ""
}
请求参数说明:
参数类型说明示例
indexinteger索引1
ownerstring所有者地址iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6jh
响应示例:
{
	"code": 0,
	"data": {
		"categoryId": 0,
		"dacId": 0,
		"metadata": "",
		"owner": ""
	},
	"message": "",
	"requestId": "",
	"status": ""
}

11、查询DAC是否全部授权#

接口描述:查询DAC是否全部授权
请求路径:/dac/v1/dac/data/isApprovedForAll
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/isApprovedForAll
Content-Type: application/json;charset=utf8

{
  "operator": "",
  "owner": ""
}
请求参数说明:
参数类型说明示例
operatorstring操作地址iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kaaw
ownerstring所有者地址iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kc6jh
响应示例:
{
	"code": 0,
	"data": false,
	"message": "",
	"requestId": "",
	"status": ""
}

12、查询DAC类别#

接口描述:查询DAC类别
请求路径:/dac/v1/dac/data/queryCategory
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/queryCategory
Content-Type: application/json;charset=utf8

{
  "categoryId": 0
}
请求参数说明:
参数类型说明示例
categoryIdinteger类目ID12
响应示例:
{
	"code": 0,
	"data": {
		"categoryId": 0,
		"categoryName": "",
		"metadata": "",
		"owner": ""
	},
	"message": "",
	"requestId": "",
	"status": ""
}

13、通过hash查询DAC类别ID#

接口描述:通过hash查询DAC类别ID
请求路径:/dac/v1/dac/data/queryCategoryIdByHash
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/queryCategoryIdByHash
Content-Type: application/json;charset=utf8

{
  "hash": ""
}
请求参数说明:
参数类型说明示例
hashstring哈希值iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kaaw
响应示例:
{
	"code": 0,
	"data": {
		"categoryId": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}

14、查询DAC#

接口描述:查询DAC
请求路径:/dac/v1/dac/data/queryDAC
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/queryDAC
Content-Type: application/json;charset=utf8

{
  "dacId": 0
}
请求参数说明:
参数类型说明示例
dacIdintegerDAC编号234
响应示例:
{
	"code": 0,
	"data": {
		"categoryId": 0,
		"dacId": 0,
		"metadata": "",
		"owner": ""
	},
	"message": "",
	"requestId": "",
	"status": ""
}

15、通过hash查询DAC的ID#

接口描述:通过hash查询DAC的ID
请求路径:/dac/v1/dac/data/queryDACIdByHash
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/queryDACIdByHash
Content-Type: application/json;charset=utf8

{
  "hash": ""
}
请求参数说明:
参数类型说明示例
hashstring哈希值iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kaaw
响应示例:
{
	"code": 0,
	"data": {
		"dacIdList": []
	},
	"message": "",
	"requestId": "",
	"status": ""
}

16、通过hash查询transferFrom结果#

接口描述:通过hash查询transferFrom结果
请求路径:/dac/v1/dac/data/queryTransferResultByHash
请求方式:POST
HTTP请求报文示例:
POST https://127.0.0.1:8080/dac/v1/dac/data/queryTransferResultByHash
Content-Type: application/json;charset=utf8

{
  "hash": ""
}
请求参数说明:
参数类型说明示例
hashstring哈希值iaa1xtgvq3ed4j45pxsasyq3u0t62vl8vsjs6kaaw
响应示例:
{
	"code": 0,
	"data": {
		"blockNumber": 0,
		"checksumContractAddress": "",
		"contractAddress": "",
		"extraData": "",
		"from": "",
		"gasUsed": "",
		"hash": "",
		"input": "",
		"logEntries": [
			{
				"address": "",
				"blockNumber": "",
				"data": "",
				"topics": []
			}
		],
		"message": "",
		"output": "",
		"receiptProof": [
			{
				"left": [],
				"right": []
			}
		],
		"status": 0,
		"statusOK": true,
		"to": "",
		"transactionHash": "",
		"transactionProof": [
			{
				"left": [],
				"right": []
			}
		],
		"txProof": [],
		"txReceiptProof": [],
		"version": 0
	},
	"message": "",
	"requestId": "",
	"status": ""
}
修改于 2023-12-07 02:30:15
上一页
SDK接入
下一页
SDK接入
Built with