Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
3450 lines (2772 sloc) 124 KB

Acchain https API文档

Table of Contents

Created by gh-md-toc


1 API使用说明

1.1 请求过程说明


  1. 构造请求数据,用户数据按照Acchain提供的接口规则,通过程序生成签名,生成请求数据集合;
  2. 发送请求数据,把构造完成的数据集合通过POST/GET等提交的方式传递给acchain;
  3. acchain对请求数据进行处理,服务器在接收到请求后,会首先进行安全校验,验证通过后便会处理该次发送过来的请求;
  4. 返回响应结果数据,acchain把响应结果以JSON的格式反馈给用户,每个响应都包含success字段,表示请求是否成功,成功为true, 失败为false。 如果失败,则还会包含一个error字段,表示错误原因;
  5. 对获取的返回结果数据进行处理;

1.2 接口说明


  1. 接口地址中带:的字段为变量名, 调用时需要将变量替换成具体的值, 例如接口地址为/api/uia/balances/:address,:address为实际的地址,实际请求时的接口地址为/api/uia/balances/A21DabNVZ4LFZBSWjcoNsLfpDKdhqqoMqB

2 接口

2.1 账户accounts

2.1.1 登录

2.1.1.1 本地加密后再登陆(推荐使用)

接口地址:/api/accounts/open2/
请求方式:post
支持格式:json
接口备注:公钥需要根据用户提供的密码在在本地用程序生成

请求参数说明:

名称 类型 必填 说明
publicKey string Y acchain账户公钥

返回参数说明:

名称 类型 说明
success boole 是否登陆成功
account json 账户信息

请求示例:

var acchainJS = require('AcchainJS');  //AcchainJS具体安装方法见附录 
var publicKey = AcchainJS.crypto.getKeys(secret).publicKey;  //根据密码生成公钥 
// var address = AcchainJS.crypto.getAddress(publicKey);   //根据公钥生成地址

// 将上面生成的数据通过post提交到acchain server   
curl -X POST -H "Content-Type: application/json" -k -d '{"publicKey":"bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9"}' https://testnet.acchain.org/api/accounts/open2/   

JSON返回示例:

{   
    "success": true,   
    "account": {   
        "address": "16723473400748954103",   
        "unconfirmedBalance": 19480000000,   
        "balance": 19480000000,   
        "unconfirmedSignature": false,   
        "secondSignature": true,   
        "secondPublicKey": "edf30942beb74de5ed6368c792af8665e9636f32a5f1c9377bcdc3b252d3f277",   
        "multisignatures": [],   
        "u_multisignatures": []   
    },   
    "latestBlock": {   
        "height": 111923,   
        "timestamp": 4446270   
    },   
    "version": {   
        "version": "1.0.0",   
        "build": "12:11:11 16/08/2016",   
        "net": "testnet"   
    }   
2.1.1.2 本地不加密直接登陆(不推荐使用)

接口地址:/api/accounts/open/
请求方式:post
支持格式:json
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码

返回参数说明:

名称 类型 说明
success boole 是否登陆成功
account json 账户信息

请求示例:

curl -X POST -H "Content-Type: application/json" -k -d '{"secret":"fault still attack alley expand music basket purse later educate follow ride"}' https://testnet.acchain.org/api/accounts/open/   

JSON返回示例:

{   
    "success": true,    
    "account": {   
        "address": "16723473400748954103",    
        "unconfirmedBalance": 19480000000,    
        "balance": 19480000000,    
        "publicKey": "bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9",    
        "unconfirmedSignature": false,    
        "secondSignature": true,    
        "secondPublicKey": "edf30942beb74de5ed6368c792af8665e9636f32a5f1c9377bcdc3b252d3f277",    
        "multisignatures": [ ],    
        "u_multisignatures": [ ]   
    }   
}   
2.1.1.3 获取BIP39格式的密钥

接口地址:/api/accounts/new   请求方式:get 支持格式:json
请求参数说明:

名称 类型 必填 说明

返回参数说明:

名称 类型 说明
success boole 是否获取成功    
secret string  密钥信息        
publicKey string  公钥        
address string  地址        

请求示例:

curl -X GET -H "Content-Type: application/json" -k https://testnet.acchain.org/api/accounts/new/   

JSON返回示例:

{
   success: true,
   secret: "recipe faculty absorb leisure agree lecture syrup helmet fly airport cabin flag",
   publicKey: "5ca7efc2d1506739bc8719d16e7028dbe13d3de1f2680c7a00a0cf4e446eb366",
   privateKey:             "1516276d1875d10dbc5d706953f4c25495235bdd76ef18fcfdf9d4c25aad9c625ca7efc2d1506739bc8719d16e7028dbe13d3de1f2680c7a00a0cf4e446eb366",
   address: "AGXcBi7XG2qxesBBTHdHZiFPkYDUBWcxe1"
}  

2.1.2 获取账户信息


接口地址:/api/accounts
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
address string Y 用户地址,最小长度:1

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
account json 账户信息
latestBlock json 最新的区块信息
version json 版本相关信息

请求示例:

curl -k -X GET https://testnet.acchain.org/api/accounts?address=16723473400748954103   

JSON返回示例:

{   
    "success": true,   
    "account": {   
        "address": "16723473400748954103",  //acchain地址   
        "unconfirmedBalance": 19480000000,  //未确认和已确认的余额之和,该值大于等于balance   
        "balance": 19480000000, //余额   
        "publicKey": "bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9",    //公钥   
        "unconfirmedSignature": false,   
        "secondSignature": true,    //二级签名   
        "secondPublicKey": "edf30942beb74de5ed6368c792af8665e9636f32a5f1c9377bcdc3b252d3f277",  //二级密码公钥   
        "multisignatures": [],    
        "u_multisignatures": []   
    },   
    "latestBlock": {   
        "height": 114480,   //区块高度   
        "timestamp": 4471890   
    },   
    "version": {   
        "version": "1.0.0",   
        "build": "12:11:11 16/08/2016", //构建日期   
        "net": "testnet"    //区块链类型,是主链还是测试链   
    }   
}   

2.1.3 获取账户余额


接口地址:/api/accounts/getBalance
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
address string Y 用户地址,最小长度:1

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
balance integer 余额
unconfirmedBalance integer 未确认和已确认的余额之和,该值大于等于balance

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/accounts/getBalance?address=14636456069025293113'   

JSON返回示例:

{   
    "success": true,   
    "balance": 5281328514990,   
    "unconfirmedBalance": 5281328514990   
}   

2.1.4 获取账户公钥


接口地址:/api/accounts/getPublickey
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
address string Y 用户地址,最小长度:1

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
publicKey string 公钥

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/accounts/getPublickey?address=14636456069025293113'   

JSON返回示例:

{   
    "success": true,   
    "publicKey": "ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7"   
}   

2.1.5 生成公钥


接口地址:/api/accounts/generatePublickey
请求方式:post
支持格式:json
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
publicKey string 公钥

请求示例:

curl -k -H "Content-Type: application/json" -X POST -d '{"secret":"fault still attack alley expand music basket purse later educate follow ride"}' 'https://testnet.acchain.org/api/accounts/generatePublickey'   

JSON返回示例:

{   
    "success": true,   
    "publicKey": "bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9"   
}   

2.1.6 根据地址获取其投票列表


接口地址:/api/accounts/delegates
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
address string Y 投票人地址

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
delegates Array 已投票的受托人详情数组

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/accounts/delegates?address=14636456069025293113'   

JSON返回示例:

{   
    "success": true,   
    "delegates": [{   
        "username": "wgl_002",   
        "address": "14636456069025293113",   
        "publicKey": "ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7",   
        "vote": 9901985415600500,   
        "producedblocks": 1373,   
        "missedblocks": 6,   
        "rate": 1,   
        "approval": "98.54",   
        "productivity": "99.56"   
    },   
    {   
        "username": "wgl_003",   
        "address": "9961157415582672274",   
        "publicKey": "c292db6ea14d518bc29e37cb227ff260be21e2e164ca575028835a1f499e4fe2",   
        "vote": 9891995435600500,   
        "producedblocks": 1371,   
        "missedblocks": 8,   
        "rate": 2,   
        "approval": "98.44",   
        "productivity": "99.41"   
    },   
    {   
        "username": "wgl_001",   
        "address": "1869971419039689816",   
        "publicKey": "c547df2dde6cbb4508aabcb5970d8f9132e5a1d1c422632da6bc20bf1df165b8",   
        "vote": 32401577128413,   
        "producedblocks": 969,   
        "missedblocks": 8,   
        "rate": 102,   
        "approval": "0.32",   
        "productivity": 0   
    }]   
}   

2.1.7 获取受托人手续费设置


接口地址:/api/accounts/delegates/fee
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
fee integer 手续费设置

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/accounts/delegates/fee  

JSON返回示例:

{   
    "success": true,   
    "fee": 100000000   
}   

2.1.8 投票


接口地址:/api/accounts/delegates
请求方式:put
支持格式:json
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
publicKey string N 公钥
secondSecret string N acchain账户二级密码,最小长度:1,最大长度:100
delegates Array 受托人公钥数组,每个公钥前需要加上+或者-号,代表增加/取消对其的投票

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transaction json 投票交易详情

请求示例:

curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"call scissors pupil water friend timber spend brand vote obey corn size","publicKey":"3ec1c9ec08c0512641deba37c0e95a0fe5fc3bdf58424009f594d7d6a4e28a2a","delegates":["+fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575"]}' 'https://testnet.acchain.org/api/accounts/delegates'     

JSON返回示例:

 {
    "success": true,
    "transaction": {
        "type": 3,  //投票的交易类型为3
        "amount": 0,
        "senderPublicKey": "3ec1c9ec08c0512641deba37c0e95a0fe5fc3bdf58424009f594d7d6a4e28a2a",
        "requesterPublicKey": null,
        "timestamp": 5056064,
        "asset": {
            "vote": {
                "votes": ["+fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575"]
            }
        },
        "recipientId": null,
        "signature": "0bff58c7311fc59b3c8b3ffc236bbfece9850c334fb0c292ab087f78cf9a6c0f4d3e541c501887a2c2ec46294c777e8f7bf7dea9cb7c9a175fdec641bb684f08",
        "id": "5630629337798595849",
        "fee": 10000000,
        "senderId": "15238461869262180695"
    }
}  

2.1.9 获取账户排行榜前100名


接口地址:/api/accounts/top
请求方式:get
支持格式:无
请求参数说明:如果不加请求参数则返回持币量前100名账户信息

名称 类型 必填 说明
limit integer N 限制结果集个数,最小值:0,最大值:100
offset integer N 偏移量,最小值0

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
accounts json 账户信息元组,每个元素包含地址、余额、公钥

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/accounts/top?limit=5&offset=0'  //返回前5名账户信息

JSON返回示例:

{
    "success": true,
    "accounts": [{
        "address": "355198157736313687",
        "balance": 4400099900000000,        //44000999 ACC
        "publicKey": "0b8e120db026d58cbf9d3f392f88eefe3a82a0a3023298b9466d7ed64ff05881"
    },
    {
        "address": "3196144307608101364",
        "balance": 3750000020000000,
        "publicKey": "988eb82a603dd033f94a4f3b6f9f9ef4a7d3d066607c433e5255d50ea7270720"
    },
    {
        "address": "9248745407080572308",
        "balance": 988703397029757,
        "publicKey": "02cedc56da08099532e312c5e563e2859bc5b93cc594eb3e5d350f368d681988"
    },
    {
        "address": "15745540293890213312",
        "balance": 498186229718623,
        "publicKey": "d39d6f26869067473d685da742339d1a9117257fe14b3cc7261e3f2ed5a339e3"
    },
    {
        "address": "8812460086240160222",
        "balance": 100704426831866,
        "publicKey": "0af92cc32f54d50dd83c4f7de14e71223a57843a40e993bc0813454aa9270053"
    }
}    

2.2 交易transactions

2.2.1 获取交易信息


接口地址:/api/transactions
请求方式:get
支持格式:urlencoded
接口备注:如果请求不加参数则会获取全网所有交易
请求参数说明:

名称 类型 必填 说明
blockId string N 区块id
limit integer N 限制结果集个数,最小值:0,最大值:100
type integer N 转账:0, 设置二级密码:1, 注册受托人:2, 投票:3, 注册多重签名:4, 注册应用:5, 应用充值:6, 应用提现:7, 批准:8, 注册发行商:9, 注册资产:10, 资产发行:11, 资产行权:12
orderBy string N 根据表中字段排序,senderPublicKey:desc
offset integer N 偏移量,最小值0
senderPublicKey string N 发送者公钥
ownerPublicKey string N 拥有者公钥
ownerAddress string N 拥有者地址
senderId string N 发送者地址
recipientId string N 接收者地址,最小长度:1
amount string N 金额
fee integer N 手续费
message string N 备注信息

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactions 列表 多个交易详情json构成的列表
count int 获取到的交易总个数

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/transactions?recipientId=16723473400748954103&orderBy=t_timestamp:desc&limit=3'   

JSON返回示例:

{   
    "success": true,   
    "transactions": [{   
        "id": "17192581936339156329",   
        "height": "105951",   
        "blockId": "15051364118100195665",   
        "type": 0,   
        "timestamp": 4385190,   
        "senderPublicKey": "d39d6f26869067473d685da742339d1a9117257fe14b3cc7261e3f2ed5a339e3",   
        "senderId": "15745540293890213312",   
        "recipientId": "16723473400748954103",   
        "amount": 10000000000,   
        "fee": 10000000,   
        "signature": "98d65df3109802c707eeed706e90a907f337bddab58cb4c1fbe6ec2179aa1c85ec2903cc0cf44bf0092926829aa5a0a6ec99458f65b6ebd11f0988772e58740e",   
        "signSignature": "",   
        "signatures": null,   
        "confirmations": "31802",
        "currency": "", 
        "asset": {   
               
        },
        "precision": 6,
        "amountShow": "0"
                   
    },   
    {   
        "id": "7000452951235123088",   
        "height": "105473",   
        "blockId": "11877628176330539727",   
        "type": 0,   
        "timestamp": 4380147,   
        "senderPublicKey": "fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575",   
        "senderId": "16358246403719868041",   
        "recipientId": "16723473400748954103",   
        "amount": 10000000000,   
        "fee": 10000000,   
        "signature": "dc84044d4f6b4779eecc3a986b6507e458cc5964f601ebeb4d3b68a96129813f4940e14de950526dd685ca1328b6e477e6c57e95aeac45859a2ea62a587d0204",   
        "signSignature": "",   
        "signatures": null,   
        "confirmations": "32280",
        "currency": "",   
        "asset": {   
               
        }
        "precision": 6,
        "amountShow": "0"   
    },   
    {   
        "id": "14093929199102906687",   
        "height": "105460",   
        "blockId": "2237504897174225512",   
        "type": 0,   
        "timestamp": 4380024,   
        "senderPublicKey": "fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575",   
        "senderId": "16358246403719868041",   
        "recipientId": "16723473400748954103",   
        "amount": 10000000000,   
        "fee": 10000000,   
        "signature": "73ceddc3cbe5103fbdd9eee12f7e4d9a125a3bcf2e7cd04282b7329719735aeb36936762f17d842fb14813fa8f857b8144040e5117dffcfc7e2ae88e36440a0f",   
        "signSignature": "",   
        "signatures": null,   
        "confirmations": "32293", 
        "currency": "TEST.ABC",  
        "asset": {   
               
        }
        "precision": 1,
        "amountShow": "0"   
    }],   
    "count": 3   
}   

2.2.2 根据id查看交易详情


接口地址:/api/transactions/get
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
Id string Y 交易id

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactions json 交易详情

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/transactions/get?id=14093929199102906687'   

JSON返回示例:

{   
    "success": true,   
    "transaction": {   
        "id": "14093929199102906687",   
        "height": "105460",   
        "blockId": "2237504897174225512",   
        "type": 0,   
        "timestamp": 4380024,   
        "senderPublicKey": "fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575",   
        "senderId": "16358246403719868041",   
        "recipientId": "16723473400748954103",   
        "amount": 10000000000,   
        "fee": 10000000,   
        "signature": "73ceddc3cbe5103fbdd9eee12f7e4d9a125a3bcf2e7cd04282b7329719735aeb36936762f17d842fb14813fa8f857b8144040e5117dffcfc7e2ae88e36440a0f",   
        "signSignature": "",   
        "signatures": null,   
        "confirmations": "34268",   
        "asset": {   
        }   
    }   
}   

2.2.3 根据未确认交易id查看详情


接口地址:/api/transactions/unconfirmed/get
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
id string Y 未确认交易id

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transaction json 未确认交易详情

请求示例:

curl -k -X GET https://testnet.acchain.org/api/transactions/unconfirmed/get?id=7557072430673853692  //正常情况,该未确认交易存在时间极短0~10秒   

JSON返回示例:

{
    "success": true,
    "transaction": {
        "type": 0,
        "amount": 10000,
        "senderPublicKey": "3ec1c9ec08c0512641deba37c0e95a0fe5fc3bdf58424009f594d7d6a4e28a2a",
        "requesterPublicKey": null,
        "timestamp": 5082322,
        "asset": {
            
        },
        "recipientId": "16723473400748954103",
        "signature": "3a97f8d63509ef964bda3d816366b8e9e2d9b5d4604a660e7cbeefe210cb910f5de9a51bece06c32d010f55502c62f0f59b8224e1c141731ddfee27206a88d02",
        "id": "7557072430673853692",
        "fee": 10000000,
        "senderId": "15238461869262180695"
    }
}

2.2.4 获取(全网所有)未确认的交易详情


接口地址:/api/transactions/unconfirmed
请求方式:get
支持格式:urlencoded
接口说明:如果不加参数,则会获取全网所有未确认交易 请求参数说明:

名称 类型 必填 说明
senderPublicKey string N 发送者公钥
address string N 地址

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactions Array 未确认交易列表

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/transactions/unconfirmed'   

JSON返回示例:

{   
    "success": true,   
    "transactions": []      //全网目前不存在未确认的交易   
}   

2.2.5 创建交易


接口地址:/api/transactions
请求方式:PUT
支持格式:json
接口备注:接收者账户需在web端钱包登陆过
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
amount string Y 金额,最小值:1,最大值:10000000000000000
recipientId string Y 接收者地址,最小长度:1
publicKey string N 发送者公钥
currency string N 资产名称,例如test.RET
message string N 备注信息
secondSecret string N 发送者二级密码,最小长度1,最大长度:100
multisigAccountPublicKey string N 多重签名账户公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactionId string 交易id

请求示例:

curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"unaware label emerge fancy concert long fiction report affair appear decide twenty","amount":1000000,"recipientId":"16723473400748954103","currency":"test.RET", "message":"hello"}' 'https://testnet.acchain.org/api/transactions'    

JSON返回示例:

{   
    "success": true,   
    "transactionId": "16670272591943275531"   
}   

2.2.6 行权


接口地址:/api/uia/exercises
请求方式:PUT
支持格式:json
接口备注:接收者账户需在web端钱包登陆过
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
amount string Y 金额,最小值:1,最大值:10000000000000000
currency string Y 资产名称,例如test.RET
publicKey string N 发送者公钥
message string N 备注信息
secondSecret string N 发送者二级密码,最小长度1,最大长度:100
multisigAccountPublicKey string N 多重签名账户公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactionId string 交易id

请求示例:

curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"unaware label emerge fancy concert long fiction report affair appear decide twenty","amount":1000000,"currency":"test.RET", "message":"hello"}' 'https://testnet.acchain.org/api/uia/exercises'    

JSON返回示例:

{
    "success": true,
    "transaction": {
        "type": 12,
        "amount": "0",
        "senderPublicKey": "78e3bca480fc90ff149c1f538a332f540350ca19ac441bfee66cc29a076e62d9",
        "requesterPublicKey": null,
        "timestamp": 31408638,
        "asset": {
            "uiaExercise": {
                "currency": "test.RET",
                "amount": "10000"
            }
        },
        "recipientId": null,
        "signature": "ea12eee74a932c49863fb90493a90a942b95e9e39e2d5c6204d8cf651b6c3fee63309db17374c22a16a453a22f5f881c8af153119d81bc3401e5e80364c55502",
        "signSignature": "0577c15e9498fbcd0b84a70b80e7f10db3fb327dd7316868a427ec7bc917b15468f4cb8bcfb4cbe1897b9576275ff1430e78858fdbeebbc19a1ec0966e530d05",
        "id": "8a56a0f5c0b057f2e037b609ab829a8f15e9c581b43436c438063df3492eb6ce",
        "fee": 100000,
        "senderId": "APfs15A8KegKu1TtnJsWJvLoFxCKT7pRos"
    }
}   

2.3 区块blocks

2.3.1 获取特定id的区块详情


接口地址:/api/blocks/get
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
id string 参数3选1 区块id
height string 参数3选1 区块高度
hash string 参数3选1 区块hash

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
block json 区块详情

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/get?id=6076474715648888747'   

JSON返回示例:

{   
    "success": true,   
    "block": {   
        "id": "6076474715648888747",   
        "version": 0,   
        "timestamp": 4734070,   
        "height": 140538,   
        "previousBlock": "16033230167082515105",    //上一个区块id   
        "numberOfTransactions": 0,  //交易数   
        "totalAmount": 0,   //交易额   
        "totalFee": 0,   
        "reward": 350000000,    //奖励   
        "payloadLength": 0,   
        "payloadHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",   
        "generatorPublicKey": "1d352950c8141e1b35daba4a974a604519d7a2ef3a1ec0a503ce2653646aa052",   
        "generatorId": "6656029629904254066",   
        "blockSignature": "a53de66922cdc2f431acd0a474beec7cf7c420a8460b7b7caf84999be7caebb59fb7fbb7166c2c7013dbb431585ea7294722166cb08bf9663abf50b6bd81cd05",   
        "confirmations": "2",   
        "totalForged": 350000000   
    }   
}   

2.3.2 获取最新的区块


接口地址:/api/blocks
请求方式:get
支持格式:urlencoded
接口说明:不加参数则获取全网区块详情
请求参数说明:

名称 类型 必填 说明
limit integer N 限制结果集个数,最小值:0,最大值:100
orderBy string N 根据表中字段排序,如height:desc
offset integer N 偏移量,最小值0
generatorPublicKey string N 区块生成者公钥
totalAmount integer N 交易总额,最小值:0,最大值:10000000000000000
totalFee integer N 手续费总额,最小值:0,最大值:10000000000000000
reward integer N 奖励金额,最小值:0
previousBlock string N 上一个区块
height integer N 区块高度

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
blocks Array 由区块详情json串构成的数组
count integer 区块链高度

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks?limit=2&offset=0&orderBy=height:desc'   

JSON返回示例:

{   
    "success": true,   
    "blocks": [{   
        "id": "12634047624004615059",   
        "version": 0,   
        "timestamp": 4708080,   
        "height": 137986,   
        "previousBlock": "3498191422350401106",   
        "numberOfTransactions": 0,  // 交易数   
        "totalAmount": 0,   // 金额   
        "totalFee": 0,  // 手续费   
        "reward": 350000000,    // 奖励   
        "payloadLength": 0,   
        "payloadHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",   
        "generatorPublicKey": "44db7bec89ef289d0def257285675ca14f2a947dfd2b70e6b1cff4392ce42ada",   
        "generatorId": "4925169939071346193",   
        "blockSignature": "83a2124e3e8201c1a6099b2ac8ab1c117ad34867978add3a90d41a64df9d2ad8fabc9ec14d27a77cd34c08a6479ef684f247c11b1cbbcb0e9767dffc85838600",   
        "confirmations": "1",   
        "totalForged": 350000000   
    },   
    {   
        "id": "3498191422350401106",   
        "version": 0,   
        "timestamp": 4708070,   
        "height": 137985,   
        "previousBlock": "14078155423801039323",   
        "numberOfTransactions": 0,   
        "totalAmount": 0,   
        "totalFee": 0,   
        "reward": 350000000,   
        "payloadLength": 0,   
        "payloadHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",   
        "generatorPublicKey": "500b1ec025cd64d36008341ed8d2508473ecf559be213ca5f9580620a21a592c",   
        "generatorId": "16006295608945777169",   
        "blockSignature": "a0b5ed6c94b1f33c4d0f017f21a08357061493392b19e34eeedf274b77c751e3f86c92443280de09ea1754d62fe7ef00e02acbdc3bc0c1063cef344bacaa4f07",   
        "confirmations": "2",   
        "totalForged": 350000000   
    }],   
    "count": 137986   
}   

2.3.3 获取区块链高度


接口地址:/api/blocks/getHeight
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
height integer 区块链高度

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/getheight'    

JSON返回示例:

{"success":true,"height":140569}   

2.3.4 获取交易手续费


接口地址:/api/blocks/getFee
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
fee integer 交易手续费

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/getfee'   

JSON返回示例:

{"success":true,"fee":10000000}     

2.3.5 获取里程碑


接口地址:/api/blocks/getMilestone
请求方式:get
支持格式:无
请求参数说明:无
返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
milestone integer

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/getMilestone'    

JSON返回示例:

{"success":true,"milestone":0}   

2.3.6 查看单个区块奖励


接口地址:/api/blocks/getReward
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
reward integer 区块奖励

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/getReward'   

JSON返回示例:

{"success":true,"reward":350000000} //每个生成一个block奖励3.5 ACC 

2.3.7 获取区块链当前最大供应值


接口地址:/api/blocks/getSupply
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
supply integer 全网ACC个数

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/getSupply'   

JSON返回示例:

{"success":true,"supply":10049222600000000} //当前testnet共有100492226ACC  

2.3.8 区块链状态


接口地址:/api/blocks/getStatus
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
height integer 区块链高度
fee integer 交易手续费
milestone integer
reward integer 区块奖励
supply integer 全网ACC个数

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/blocks/getStatus'   

JSON返回示例:

{   
    "success": true,   
    "height": 140649,   
    "fee": 10000000,   
    "milestone": 0,   
    "reward": 350000000,   
    "supply": 10049227150000000   
}   

2.4 受托人delegates

2.4.1 获取受托人总个数


接口地址:/api/delegates/count
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
count integer 受托人总个数

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/delegates/count'   

JSON返回示例:

{"success":true,"count":234}   

2.4.2 根据公钥查看哪些人为其投了票


接口地址:/api/delegates/voters
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
publicKey string Y 受托人公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
accounts Array 账户json串组成的数组

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/delegates/voters?publicKey=ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7'   

JSON返回示例:

{   
    "success": true,   
    "accounts": [{   
        "address": "2918354313445278349",   
        "publicKey": "4fde4c49f1297d5d3a24b1494204543c4281aff17917ff7ff8ff32da3b4b222f",   
        "balance": 1338227722727,   
        "weight": 0.013316660647014596   
    },   
    {   
        "address": "1523444724068322527",   
        "publicKey": "8a6a61c28dc47541aadf1eecec2175c8f768f2331eea3472b1593bf1aa4e1fb4",   
        "balance": 2109297623765,   
        "weight": 0.020989552213127274   
    },   
    {   
        "address": "14483826354741911727",   
        "publicKey": "5dacb7983095466b9b037690150c3edec0f073815326e33a4744b6d1d50953e2",   
        "balance": 5135815841470,   
        "weight": 0.051106336795243436   
    }   
    }]   
}   

2.4.3 根据公钥或者用户名获取受托人详情


接口地址: /api/delegates/get/
请求方式:get
支持格式:urlencoded
接口备注:通过公钥或者用户名获取受托人信息
请求参数说明:

名称 类型 必填 说明
publickey string 二选一 受托人公钥
username string 二选一 受托人用户名

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
delegate json 委托人详情

请求示例:

curl -k -X GET https://testnet.acchain.org/api/delegates/get?publicKey=bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9   
curl -k -X GET https://testnet.acchain.org/api/delegates/get?username=delegate_register   

JSON返回示例:

{   
    "success": true,   
    "delegate": {   
        "username": "delegate_register",   
        "address": "16723473400748954103",   
        "publicKey": "bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9",   
        "vote": 0,   
        "producedblocks": 0,   
        "missedblocks": 0,   
        "fees": 0,   
        "rewards": 0,   
        "rate": 191,   
        "approval": 0,   
        "productivity": 0,   
        "forged": "0"   
    }   
}   

2.4.4 获取受托人列表


接口地址:/api/delegates
请求方式:get
支持格式:urlencoded
接口说明:如果不加参数则会返回全网受托人列表
请求参数说明:

名称 类型 必填 说明
address string N 受托人地址
limit int N 限制返回结果数据集的个数
offset integer N 偏移量,最小值:0
orderBy string N 排序字段:排序规则,如:desc

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
delegates Array 受托人详情列表

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/delegates?orderby=approval:desc&limit=2' //按照得票率降序排序,取出前2名   

JSON返回示例:

{   
    "success": true,   
    "delegates": [{   
        "username": "wgl_002",  //受托人名字   
        "address": "14636456069025293113",  //受托人地址   
        "publicKey": "ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7",    //受托人公钥   
        "vote": 9901984015600500,   //得票数   
        "producedblocks": 1371, //生成的区块数   
        "missedblocks": 6,  //丢失的区块数   
        "fees": 12588514990,       
        "rewards": 276850000000,    //已经得到的奖励   
        "rate": 1,   
        "approval": 98.54,  //得票率   
        "productivity": 99.56,  //生产率   
        "forged": "289438514990"    //锻造产生的所有奖励   
    },   
    {   
        "username": "wgl_003",   
        "address": "9961157415582672274",   
        "publicKey": "c292db6ea14d518bc29e37cb227ff260be21e2e164ca575028835a1f499e4fe2",   
        "vote": 9891994035600500,   
        "producedblocks": 1370,   
        "missedblocks": 8,   
        "fees": 12355148480,   
        "rewards": 275100000000,   
        "rate": 2,   
        "approval": 98.44,   
        "productivity": 99.42,   
        "forged": "287455148480"   
    }],   
    "totalCount": 233   
}   

2.4.5 获取受托人设置的转账费


接口地址:/api/delegates/fee
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
publicKey string Y 受托人公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
fee integer 转账费

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/delegates/fee?publicKey=ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7'   

JSON返回示例:

{"success":true,"fee":10000000000}  //0.1 ACC

2.4.6 根据公钥查看其锻造情况


接口地址:/api/delegates/forging/getForgedByAccount
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
generatorPublicKey string Y 区块生成者公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
fees integer 收取的手续费
rewards integer 已获得奖励
forged integer 锻造获得的总奖励

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/delegates/forging/getForgedByAccount?generatorPublicKey=ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7'   

JSON返回示例:

{   
    "success": true,   
    "fees": 12589307065,   
    "rewards": 285600000000,   
    "forged": 298189307065   
}   

2.4.7 注册受托人


接口地址:/api/delegates
请求方式:put
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
publicKey string N 公钥
secondSecret string N acchain账户二级密码,最小长度:1,最大长度:100
username string N 受托人名字

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transaction json 注册受托人交易详情

请求示例:

curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"unaware label emerge fancy concert long fiction report affair appear decide twenty","username":"delegate_0821"}' 'https://testnet.acchain.org/api/delegates'   

JSON返回示例:

{   
    "success": true,   
    "transaction": {   
        "type": 2,  //注册受托人的交易类型为2   
        "amount": 0,   
        "senderPublicKey": "3b64f1833e6328043e1f2fee31e638bdaa6dfff5c7eb9c8577a5cefcf11261f2",   
        "requesterPublicKey": null,   
        "timestamp": 4737615,   
        "asset": {   
            "delegate": {   
                "username": "delegate_0821",   
                "publicKey": "3b64f1833e6328043e1f2fee31e638bdaa6dfff5c7eb9c8577a5cefcf11261f2"   
            }   
        },   
        "recipientId": null,   
        "signature": "7f8417e8db5f58ddff887c86c789c26b32fd3f01083ef1e3c8d4e18ed16622bf766492d78518c6c7a07aada1c98b1efc36d40c8e09394989dbde229d8e3f8103",   
        "id": "16351320834453011577",   
        "fee": 10000000000,   
        "senderId": "250438937633388106"   
    }   
}   

2.4.8 受托人开启锻造


接口地址:/api/delegates/forging/enable
请求方式:post
支持格式:urlencoded //url必须是受托人所在服务器
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
publicKey string N 公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
address string 受托人地址

请求示例:

curl -k -H "Content-Type: application/json" -X POST -d '{"secret":"motion group blossom coral upper warrior pattern fragile sister misery palm detect"}' 'https://testnet.acchain.org/api/delegates/forging/enable'   

JSON返回示例:

{"success":true,"address":"16358246403719868041"}   

2.4.9 受托人关闭锻造


接口地址:/api/delegates/forging/disable
请求方式:post
支持格式:urlencoded //url必须是受托人所在服务器
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
publicKey string N 公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
address string 受托人地址

请求示例:

curl -k -H "Content-Type: application/json" -X POST -d '{"secret":"motion group blossom coral upper warrior pattern fragile sister misery palm detect"}' 'https://testnet.acchain.org/api/delegates/forging/disable'   

JSON返回示例:

{"success":true,"address":"16358246403719868041"}     

2.4.10 受托人锻造状态查看


接口地址:/api/delegates/forging/status
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
publicKey string Y 公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
enabled string 锻造是否开启

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/delegates/forging/status?publicKey=fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575'        

JSON返回示例:

{"success":true,"enabled":false}    

2.5 节点peers

2.5.1 获取全网节点信息


接口地址:/api/peers
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
state integer N 节点状态,0: ,1:,2:,3:
os string N 内核版本
version string N acchain版本号
limit integer N 限制结果集个数,最小值:0,最大值:100
orderBy string N
offset integer N 偏移量,最小值0
port integer N 端口,1~65535

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
peers Array 节点信息json构成的数组
totalCount integer 当前正在运行的节点个数

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/peers?limit=1'   

JSON返回示例:

{   
    "success": true,   
    "peers": [{   
        "ip": "45.32.19.241",   
        "port": 4096,   
        "state": 2,   
        "os": "linux3.13.0-87-generic",   
        "version": "1.0.0"   
    }],   
    "totalCount": ["54"]   
}   

2.5.2 获取节点版本信息


接口地址:/api/peers/version
请求方式:get
支持格式:无
请求参数说明:无参数

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
version string 版本号
build timestamp 构建时间
net string 主链或者测试链

请求示例:

curl -k -X GET https://testnet.acchain.org/api/peers/version   

JSON返回示例:

{   
    "success": true,   
    "version": "1.0.0",   
    "build": "12:11:11 16/08/2016",   
    "net": "testnet"   
}   

2.5.3 获取特定ip节点信息


接口地址:/api/peers/get
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
ip string Y 待查询节点ip
port integer Y 待查询节点端口,1~65535

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
peer json

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/peers/get?ip=45.32.248.33&port=4096'   

JSON返回示例:

{   
    "success": true,   
    "peer": {   
    }   
}   

2.6 同步和加载

2.6.1 查看本地区块链加载状态


接口地址:/api/loader/status
请求方式:get
支持格式:无
请求参数说明:无参数

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
loaded boole
blocksCount integer

请求示例:

curl -k https://testnet.acchain.org/api/loader/status -X GET   

JSON返回示例:

{   
    "success": true,   
    "loaded": true,   
    "blocksCount": 0   
}   

2.6.2 查看区块同步信息


接口地址:/api/loader/status/sync
请求方式:get
支持格式:无
请求参数说明:无参数

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
height int 区块高度

请求示例:

curl -k https://testnet.acchain.org/api/loader/status/sync -X GET   

JSON返回示例:

{   
    "success": true,   
    "syncing": false,  // 是否在同步中,如果是则为true,目前没有数据可以同步所以为false   
    "blocks": 0,   
    "height": 111987   
}   

2.7 二级密码signatures

2.7.1 设置二级密码


接口地址:/api/signatures
请求方式:put
支持格式:json
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
publicKey string N 公钥
secondSecret string Y acchain账户二级密码,最小长度:1,最大长度:100
multisigAccountPublicKey string N 多重签名账户公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transaction json 设置二级密码产生的交易详情

请求示例:

curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"unaware label emerge fancy concert long fiction report affair appear decide twenty","secondSecret":"fault still attack alley expand music basket purse later educate follow ride"}' 'https://testnet.acchain.org/api/signatures'    

JSON返回示例:

{   
    "success": true,   
    "transaction": {   
        "type": 1,  //设置二级密码密码的交易类型为1   
        "amount": 0,   
        "senderPublicKey": "3b64f1833e6328043e1f2fee31e638bdaa6dfff5c7eb9c8577a5cefcf11261f2",   
        "requesterPublicKey": null,   
        "timestamp": 4872315,   
        "asset": {   
            "signature": {   
                "publicKey": "bd1e78c5a10fbf1eca36b28bbb8ea85f320967659cbf1f7ff1603d0a368867b9"   
            }   
        },   
        "recipientId": null,   
        "signature": "e76d9b25ec0fdaa88b19d59c5a222b7efdc04f738ee05896f55f4e6959229d9b1600ca25aa92fbea176668f3be7c12c506f2091e2b38c52ef0ece7a5d35e240a",   
        "id": "1614688380530105232",   
        "fee": 500000000,       //设置二级密码密码的手续费为5 ACC  
        "senderId": "250438937633388106"   
    }   
}   

2.7.2 获取二级密码设置费


接口地址:/api/signatures/fee
请求方式:get
支持格式:无
请求参数说明:无

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
fee integer 费用

请求示例:

curl -k https://testnet.acchain.org/api/signatures/fee -X GET   

JSON返回示例:

{   
    "success": true,   
    "fee": 500000000         //5 ACC  
}     

2.8 多重签名multisignatures

2.8.1 设置普通账户为多重签名账户


接口地址:/api/multisignatures
请求方式:put
支持格式:json
接口说明:返回结果只是生成交易id,还需要其他人签名后该账户才能成功设置成多重签名账户。注册多重签名账户后任意一笔转账都需要多人签名,签名最少个数为min的值(含交易发起人自身)
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
publicKey string N 公钥
secondSecret string N acchain账户二级密码,最小长度:1,最大长度:100
min integer Y 多重签名交易账户的任意一笔转账都需要多人签名的最少个数,如果是注册多重签名账户操作,这该值不生效(此时需要所有人都签名)。最小值:2,最大值:16,该值需要小于keysgroup.length+1
lifetime integer Y 多重签名交易的最大挂起时间,最小值:1,最大值:24,暂时不生效
keysgroup array Y 其它签名人的公钥数组,每个公钥前需要加上+或者-号,代表增加/删除多重签名账户,数组最小长度:1,数组最大长度:10

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactionId string 多重签名交易的id

请求示例:

curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"vanish deliver message evil canyon night extend unusual tell prosper issue antenna","min":2,"lifetime":1,"keysgroup":["+eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97","+d5d7aa157f866c47a2a1e09e2746286ed089fd90976b54fbfa930e87d11609cb"]}' 'https://testnet.acchain.org/api/multisignatures'  //公钥为2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd   

JSON返回示例:

{   
    "success": true,   
    "transactionId": "17620378998277022323"     //返回结果只是生成交易id,还需要其他人签名后该账户才能成功设置成多重签名账户   
}   

2.8.2 获取挂起的多重签名交易详情


接口地址:/api/multisignatures/pending
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
publicKey string Y 公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactions Array 交易json组成的数组

请求示例:

curl -k -X GET https://testnet.acchain.org/api/multisignatures/pending?publicKey=2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd   

JSON返回示例:

{   
    "success": true,   
    "transactions": [{      //上一步中设置账户为多重签名交易的详情,transactionId: 17620378998277022323   
        "min": 2,   
        "lifetime": 1,   
        "signed": true,   
        "transaction": {   
            "type": 4,      //4代表注册多重签名账户   
            "amount": 0,   
            "senderPublicKey": "2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd",   
            "requesterPublicKey": null,   
            "timestamp": 4879978,   
            "asset": {   
                "multisignature": {   
                    "min": 2,   
                    "keysgroup": ["+eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97",   
                    "+d5d7aa157f866c47a2a1e09e2746286ed089fd90976b54fbfa930e87d11609cb"],   
                    "lifetime": 1   
                }   
            },   
            "recipientId": null,   
            "signature": "a42feaccd9f2a4940fc0be1a1580e786b360f189db3154328f307988e75484293eae391f2f9eee489913cc6d15984eb1f5f5a0aa1bf78ea745d5c725f161af08",   
            "id": "17620378998277022323",   
            "fee": 1500000000,   
            "senderId": "3855903394839129841"   
        }   
    }]   
}   
   

2.8.3 非交易发起人对交易进行多重签名


接口地址:/api/multisignatures/sign
请求方式:post
支持格式:json
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
secondSecret string N acchain账户二级密码,最小长度:1,最大长度:100
publicKey string N 公钥
transactionId string Y 交易id

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
transactionId string 多重签名交易id

请求示例:

curl -k -H "Content-Type: application/json" -X POST -d '{"secret":"lemon carpet desk accuse clerk future oyster essay seminar force live dog","transactionId":"17620378998277022323"}' 'https://testnet.acchain.org/api/multisignatures/sign'   //公钥为eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97的用户进行签名   

JSON返回示例:

{   
    "success": true,   
    "transactionId": "17620378998277022323"   
}   
// 此时再次获取pending   
curl -k -X GET https://testnet.acchain.org/api/multisignatures/pending?publicKey=2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd   
{   
    "success": true,   
    "transactions": [{   
        "min": 2,   
        "lifetime": 1,   
        "signed": true,   
        "transaction": {   
            "type": 4,   
            "amount": 0,   
            "senderPublicKey": "2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd",   
            "requesterPublicKey": null,   
            "timestamp": 4879978,   
            "asset": {   
                "multisignature": {   
                    "min": 2,   
                    "keysgroup": ["+eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97",   
                    "+d5d7aa157f866c47a2a1e09e2746286ed089fd90976b54fbfa930e87d11609cb"],   
                    "lifetime": 1   
                }   
            },   
            "recipientId": null,   
            "signature": "a42feaccd9f2a4940fc0be1a1580e786b360f189db3154328f307988e75484293eae391f2f9eee489913cc6d15984eb1f5f5a0aa1bf78ea745d5c725f161af08",   
            "id": "17620378998277022323",   
            "fee": 1500000000,   
            "senderId": "3855903394839129841",   
            "signatures": ["b38a161264db2a23e353d3fbc4983562f6343d5ee693144543ca54e2bc67c0f73d1c761b7bfa38b2bb101ac2ab0797b674b1a9964ccd400aaa310746c3494d03"]      //新生成的多重签名   
        }   
    }]   
}   
   
// 公钥为d5d7aa157f866c47a2a1e09e2746286ed089fd90976b54fbfa930e87d11609cb的账户对该注册交易进行签名   
curl -k -H "Content-Type: application/json" -X POST -d '{"secret":"chalk among elbow piece badge try van round quality position simple teach","transactionId":"17620378998277022323"}' 'https://testnet.acchain.org/api/multisignatures/sign'   
{"success":true,"transactionId":"17620378998277022323"}   
// 此时再次获取pending,结果为空   
curl -k -X GET https://testnet.acchain.org/api/multisignatures/pending?publicKey=2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd   
{"success":true,"transactions":[]}   
// 查看该注册交易详情(该交易已广播并写入blockchain),此时该账户已成功注册成为多重签名账户   
curl -k -X GET https://testnet.acchain.org/api/transactions/get?id=17620378998277022323   
{   
    "success": true,   
    "transaction": {   
        "id": "17620378998277022323",   //注册账户为多重签名用户的交易id   
        "height": "157013",   
        "blockId": "4680888982781013372",   
        "type": 4,   
        "timestamp": 4879978,   
        "senderPublicKey": "2cef5711e61bb5361c544077aa08aebc4d962a1d656571901c48d716382ad4fd",   
        "senderId": "3855903394839129841",   
        "recipientId": "",   
        "amount": 0,   
        "fee": 1500000000,   
        "signature": "a42feaccd9f2a4940fc0be1a1580e786b360f189db3154328f307988e75484293eae391f2f9eee489913cc6d15984eb1f5f5a0aa1bf78ea745d5c725f161af08",   
        "signSignature": "",   
        "signatures": null,   
        "confirmations": "26",   
        "asset": {   
               
        }   
    }   
}   
   

2.8.4 获取多重签名账户信息


接口地址:/api/multisignatures/accounts
请求方式:get
支持格式:urlencoded
请求参数说明:

名称 类型 必填 说明
publicKey string Y 多重签名参与者之一的公钥

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
accounts Array 多重签名账户详情

请求示例:

curl -k -X GET https://testnet.acchain.org/api/multisignatures/accounts?publicKey=eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97   

JSON返回示例:

{   
    "success": true,   
    "accounts": [{   
        "address": "3855903394839129841",       //多重签名账户地址   
        "balance": 18500000000,     //多重签名账户余额   
        "multisignatures": ["eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97",   
        "d5d7aa157f866c47a2a1e09e2746286ed089fd90976b54fbfa930e87d11609cb"],    //多重签名账户公钥   
        "multimin": 2,  //最少签名个数   
        "multilifetime": 1,   
        "multisigaccounts": [{          //签名者账户详情   
            "address": "13542769708474548631",   
            "publicKey": "eb48b9ab7c9a34a9b7cdf860265d65b31af774355cabf1b3a387d14a1925dc97",   
            "balance": 0   
        },   
        {   
            "address": "4100816257782486230",   
            "publicKey": "d5d7aa157f866c47a2a1e09e2746286ed089fd90976b54fbfa930e87d11609cb",   
            "balance": 0   
        }]   
    }]   
}   

2.9 点对点传输transport(安全的api)

2.9.1 说明


/peer相关的api,在请求时都需要设置一个header

  • key为magic,value为8e9b66ed
  • key为version,value为''

2.9.2 交易


acchain系统的所有写操作都是通过发起一个交易来完成的。 交易数据通过一个叫做AcchainJS的库来创建,然后再通过一个POST接口发布出去

POST接口规格如下: payload为AcchainJS创建出来的交易数据 接口地址:/peer/transactions
请求方式:post
支持格式:json

2.9.2.1 设置二级支付密码

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.signature.createSignature生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var acchain = require('AcchainJS');    
var transaction = AcchainJS.signature.createSignature('measure bottom stock hospital calm hurdle come banner high edge foster cram','erjimimashezhi001')       
console.log(JSON.stringify(transaction))  
{"type":1,"amount":0,"fee":500000000,"recipientId":null,"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","timestamp":5328943,"asset":{"signature":{"publicKey":"27116db89cb5a8c02fb559712e0eabdc298480d3c79a089b803e35bc5ef7bb7b"}},"signature":"71ef98b1600f22f3b18cfcf17599db3c40727c230db817f610e86454b62df4fb830211737ff0c03c6a61ecfd4a9fcb68a30b2874060bb33b87766acf800e820a","id":"15605591820551652547"}   

// 将上面生成的设置二级密码的交易数据通过post提交给acchain server
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":1,"amount":0,"fee":500000000,"recipientId":null,"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","timestamp":5328943,"asset":{"signature":{"publicKey":"27116db89cb5a8c02fb559712e0eabdc298480d3c79a089b803e35bc5ef7bb7b"}},"signature":"71ef98b1600f22f3b18cfcf17599db3c40727c230db817f610e86454b62df4fb830211737ff0c03c6a61ecfd4a9fcb68a30b2874060bb33b87766acf800e820a","id":"15605591820551652547"}}' https://testnet.acchain.org/peer/transactions   

JSON返回示例:

{
    "success":true  //二级密码设置成功
}   
2.9.2.2 转账

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.transaction.createTransaction生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var acchain = require('AcchainJS');   
var targetAddress = "16358246403719868041";  
var amount = 100*100000000;   //100 ACC  
var password = 'measure bottom stock hospital calm hurdle come banner high edge foster cram';
var secondPassword  = 'erjimimashezhi001';
var message = '这是转账的备注';

// 其中password是在用户登录的时候记录下来的,secondPassword需要每次让用户输入
// 可以通过user.secondPublicKey来判断用户是否有二级密码,如果没有,则不必输入,以下几个交易类型类似
var transaction = AcchainJS.transaction.createTransaction(targetAddress, amount, message, password, secondPassword || undefined);       
JSON.stringify(transaction)
'{"type":0,"amount":10000000000,"fee":10000000,"recipientId":"16358246403719868041","timestamp":5333378,"asset":{},"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","signature":"2d47810b7d9964c5c4d330a53d1382769e5092b3a53639853f702cf4a382aafcff8ef8663c0f6856a23f41c249944f0c3cfac0744847268853a62af5dd8fc90a","signSignature":"dfa9b807fff362d581170b41c56a2b8bd723c48d1f100f2856d794408723e8973016d75aeff4705e6837dcdb745aafb41aa10a9f1ff8a77d128ba3d712e90907","id":"16348623380114619131"}'

// 将上面生成的转账操作的交易数据通过post提交给acchain server
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":0,"amount":10000000000,"fee":10000000,"recipientId":"16358246403719868041","timestamp":5333378,"asset":{},"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","signature":"2d47810b7d9964c5c4d330a53d1382769e5092b3a53639853f702cf4a382aafcff8ef8663c0f6856a23f41c249944f0c3cfac0744847268853a62af5dd8fc90a","signSignature":"dfa9b807fff362d581170b41c56a2b8bd723c48d1f100f2856d794408723e8973016d75aeff4705e6837dcdb745aafb41aa10a9f1ff8a77d128ba3d712e90907","id":"16348623380114619131"}}' https://testnet.acchain.org/peer/transactions

JSON返回示例:

{
    "success":true  //转账成功
}       
2.9.2.3 注册受托人

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.delegate.createDelegate生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var acchain = require('AcchainJS');   
var password = 'measure bottom stock hospital calm hurdle come banner high edge foster cram';
var secondPassword  = 'erjimimashezhi001';
var userName = 'zhenxi_test';  

var transaction = AcchainJS.delegate.createDelegate(password, userName, secondPassword || undefined);   
JSON.stringify(transaction)  
'{"type":2,"amount":0,"fee":10000000000,"recipientId":null,"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","timestamp":5334485,"asset":{"delegate":{"username":"zhenxi_test","publicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f"}},"signature":"a12ce415d2d21ab46e4c1b918b8717b1d351dd99abd6f2f94d9a1a7e1f32b697f843a05b1851cb857ea45a2476dce592f5ddd612c00cd44488b8b610c57d7f0a","signSignature":"35adc9f1f37d14458e8588f9b4332eedf1151c02480159f64a287a4b0cbb59bfe82040dfec96a4d9560bae99b8eaa1799a7023395db5ddc640d95447992d6e00","id":"12310465407307249905"}'

// 将上面生成的注册受托人的交易数据通过post提交给acchain server
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":2,"amount":0,"fee":10000000000,"recipientId":null,"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","timestamp":5334485,"asset":{"delegate":{"username":"zhenxi_test","publicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f"}},"signature":"a12ce415d2d21ab46e4c1b918b8717b1d351dd99abd6f2f94d9a1a7e1f32b697f843a05b1851cb857ea45a2476dce592f5ddd612c00cd44488b8b610c57d7f0a","signSignature":"35adc9f1f37d14458e8588f9b4332eedf1151c02480159f64a287a4b0cbb59bfe82040dfec96a4d9560bae99b8eaa1799a7023395db5ddc640d95447992d6e00","id":"12310465407307249905"}}' https://testnet.acchain.org/peer/transactions

JSON返回示例:

{
    "success":true  //注册受托人成功
}       
2.9.2.4 投票和取消投票

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.vote.createVote生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var acchain = require('AcchainJS');   
var password = 'measure bottom stock hospital calm hurdle come banner high edge foster cram';
var secondPassword  = 'erjimimashezhi001';
// 投票内容是一个列表,列表中的每一个元素是一个符号加上所选择的受托人的公钥,符号为+表示投票,符号为-表示取消投票
var voteContent = [
    '-ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7',
    '+c292db6ea14d518bc29e37cb227ff260be21e2e164ca575028835a1f499e4fe2'
];

var transaction = AcchainJS.vote.createVote(password, voteContent, secondPassword || undefined);
JSON.stringify(transaction)
{"type":3,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","timestamp":5334923,"asset":{"vote":{"votes":["-ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7","+c292db6ea14d518bc29e37cb227ff260be21e2e164ca575028835a1f499e4fe2"]}},"signature":"6036c2066a231c452a1c83aafd3bb9db3842ee05d5f17813f8264a4294cdec761faa89edf4a95f9b2e2451285807ab18aa9f989ad9a3165b95643179b8e4580f","signSignature":"a216ca739112e6f65986604b9467ccc8058138a7077faf134d6c4d673306cd1c514cc95bd54a036f7c602a56c4b4f2e4e59f6aa7c376cb1429e89054042e050b","id":"17558357483072606427"}

// 将上面生成的投票的交易数据通过post提交给acchain server
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":3,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"3e6e7c90571b9f7dabc0abc2e499c2fcee8e436af3a9d5c8eadd82ac7aeae85f","timestamp":5334923,"asset":{"vote":{"votes":["-ae256559d06409435c04bd62628b3e7ea3894c43298556f52b1cfb01fb3e3dc7","+c292db6ea14d518bc29e37cb227ff260be21e2e164ca575028835a1f499e4fe2"]}},"signature":"6036c2066a231c452a1c83aafd3bb9db3842ee05d5f17813f8264a4294cdec761faa89edf4a95f9b2e2451285807ab18aa9f989ad9a3165b95643179b8e4580f","signSignature":"a216ca739112e6f65986604b9467ccc8058138a7077faf134d6c4d673306cd1c514cc95bd54a036f7c602a56c4b4f2e4e59f6aa7c376cb1429e89054042e050b","id":"17558357483072606427"}}' https://testnet.acchain.org/peer/transactions

JSON返回示例:

{
    "success":true  //投票&取消投票 成功
}       

2.10 用户自定义资产uia

2.10.1 获取资产uia信息

2.10.1.1 获取全网所有发行商

接口地址:/api/uia/issuers
请求方式:get
支持格式:urlencoded

请求参数说明:

名称 类型 必填 说明
limit integer N 限制结果集个数,最小值:0,最大值:100
offset integer N 偏移量,最小值0

返回参数说明:

名称 类型 说明
success boole 是否成功
issuers list 元素为字典,每个字典代表一个发行商,包含发行商名字、描述、id(acchain地址)
count integer 发行商总个数

请求示例:

curl -X GET -H "Content-Type: application/json"  'https://testnet.acchain.org/api/uia/issuers?offset=0&limit=1' && echo

JSON返回示例:

{
    "success": true,
    "issuers": [{
        "name": "zhenxi",
        "desc": "注册资产发行商-测试",
        "issuerId": "AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a"
    },
    {
        "name": "speedtest",
        "desc": "speedtest",
        "issuerId": "AEVWQWAq3TEJkCPSDxXMP2uCRrL2xbQnsy"
    }],
    "count": 6
}       
2.10.1.2 查询指定发行商的信息

接口地址:/api/uia/issuers/:name 请求方式:get
支持格式:urlencoded

其中name可以为发行商名称或acchain账户地址

返回参数说明:

名称 类型 说明
success boole 是否成功
issuers dict 包含发行商名字、描述、id(acchain地址)

请求示例:

curl -X GET -H "Content-Type: application/json"  'https://testnet.acchain.org/api/uia/issuers/zhenxi' && echo

JSON返回示例:

{
    "success": true,
    "issuer": {
        "name": "zhenxi",
        "desc": "注册资产发行商-测试",
        "issuerId": "AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a"
    }
}       
2.10.1.3 查看指定发行商的资产

接口地址:/api/uia/issuers/name/assets
请求方式:get
支持格式:urlencoded

请求参数说明:

名称 类型 必填 说明
name string Y 可以为发行商名称或acchain账户地址
limit integer N 限制结果集个数,最小值:0,最大值:100
offset integer N 偏移量,最小值0

返回参数说明:

名称 类型 说明
success boole 是否成功
assets list 每个元素是一个字典,每个字典是一个资产详情,包含资产名字、描述、上限(最大发行量=真实发行量*10**精度)、精度、策略、当前发行量、发行高度、发行商id,acl模式(0:黑名单,1:白名单)、是否注销
count interger 该发行商注册的资产总个数(包含已注销的)

请求示例:

curl -X GET -H "Content-Type: application/json"  'https://testnet.acchain.org/api/uia/issuers/zhenxi/assets?offset=0&limit=2' && echo

JSON返回示例:

{
    "success": true,
    "assets": [{
            "currency": "BTC",
            "name": "zhenxi.uia",
            "desc": "注册资产-测试",
            "maximum": "10000000",
            "precision": 3,
            "strategy": "",
            "quantity": "1000000",
            "height": 301,
            "issuerId": "AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a",
            "acl": 0,
            "writeoff": 1
    }],
    "count": 1
}       
2.10.1.4 获取全网所有资产

接口地址:/api/uia/assets
请求方式:get
支持格式:urlencoded

请求参数说明:

名称 类型 必填 说明
limit integer N 限制结果集个数,最小值:0,最大值:100
offset integer N 偏移量,最小值0

返回参数说明:

名称 类型 说明
success boole 是否成功
assets list 每个元素是一个字典,每个字典是一个资产详情,包含资产名字、描述、上限、精度、策略、当前发行量、发行高度、发行商id,acl、是否注销
count integer 所有资产的个数

请求示例:

curl -X GET -H "Content-Type: application/json"  'https://testnet.acchain.org/api/uia/assets?offset=0&limit=2' && echo

JSON返回示例:

{
    "success": true,
    "assets": [{
        "name": "zhenxi.uia",
        "desc": "注册资产-测试",
        "maximum": "10000000",
        "precision": 3,
        "strategy": "",
        "quantity": "1000000",
        "height": 301,
        "issuerId": "AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a",
        "acl": 0,
        "writeoff": 1
    },
    {
        "name": "speedtest.SPEED",
        "desc": "测速",
        "maximum": "10000",
        "precision": 1,
        "strategy": "",
        "quantity": "10000",
        "height": 380,
        "issuerId": "AEVWQWAq3TEJkCPSDxXMP2uCRrL2xbQnsy",
        "acl": 0,
        "writeoff": 0
    }],
    "count": 13
}       
2.10.1.5 获取指定资产信息

接口地址:/api/uia/assets/:name
请求方式:get
支持格式:urlencoded

请求参数说明:

名称 类型 必填 说明
name string Y 资产名

返回参数说明:

名称 类型 说明
success boole 是否成功
assets dict 包含资产名字、描述、上限、精度、策略、当前发行量、发行高度、发行商id,acl、是否注销

请求示例:

curl -X GET -H "Content-Type: application/json"  'https://testnet.acchain.org/api/uia/assets/zhenxi.uia' && echo

JSON返回示例:

{
    "success": true,
    "asset": {
        "name": "zhenxi.uia",
        "desc": "注册资产-测试",
        "maximum": "10000000",
        "precision": 3,
        "strategy": "",
        "quantity": "1000000",
        "height": 301,
        "issuerId": "AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a",
        "acl": 0,
        "writeoff": 1
    }
}       
2.10.1.6 查询正在申请中的资产

  • 请求方式: get
  • 请求路径: /api/uia/assets/applying
  • JSON返回实例:
{
    "success":true,
    "assets":[
        {
            "currency":"A.AAA",
            "name":"A.sfsf",
            "desc":"sfasfsa",
            "maximum":"1000000000",
            "precision":1,
            "quantity":"0",
            "height":6931,
            "issuerId":"ACfjnjJtP9ZkprdLioohFS6Jp2CrAGfMS",
            "issuerName":"A",
            "category":"010912",
            "estimateUnit":"RMB",
            "estimatePrice":"100000000",
            "exerciseUnit":"sfasfsa",
            "extra":"{"productBrand":{"value":"sfasfsa"},"packingStandard":{"value":"sfasfsa"},"productIndex":{"value":"sfasfsa"},"productionInfo":{"value":"sfasfsa"},"otherInfo":{"value":"sfasfsa"}}",
            "unlockCondition":0,
            "approved":0
        }
    ],
    "count":1
}
2.10.1.7 查询待发行的资产

  • 请求方式: get
  • 请求路径: /api/uia/issues/applying
  • JSON返回实例:
{
success: true,
issues: [
        {
            transactionId: "431dd812d00e2c7a9242b1b0f1bbf33b80b27e4a8bf333755673ab3ac0ff9d08",
            currency: "PuerBank.PEB",
            amount: "10000000",
            exchangeRate: "0.2",
            senderId: "A7KaYaLnWhSwCzrFVeE1TcXCQUY8WHB9hR"
        }
    ],
count: 1
}
2.10.1.8 查询已上线的资产

  • 请求方式: get
  • 请求路径: /api/uia/assets/approved
  • JSON返回实例:
{
    "success":true,
    "assets":[
        {
            "currency":"BTC",
            "name":"Bitcoin",
            "desc":"Bitcoin is a cryptocurrency and a digital payment system invented by an unknown programmer, or a group of programmers, under the name Satoshi Nakamoto. It was released as open-source software in 2009",
            "maximum":"21000000000000",
            "precision":6,
            "quantity":"50000000000",
            "height":1,
            "issuerId":"AGUaZUoJG5CYqPX32mWAcYQSKjvXu83V8o",
            "issuerName":"__SYSTEM__",
            "category":"1801",
            "estimateUnit":"RMB",
            "estimatePrice":"8000",
            "exerciseUnit":"1",
            "extra":"No extra information",
            "unlockCondition":0,
            "approved":1
        },
        {
            "currency":"asd.BUHG",
            "name":"asd.BUHG",
            "desc":"BUHG",
            "maximum":"1000000000",
            "precision":1,
            "quantity":"10000000",
            "height":6158,
            "issuerId":"APfs15A8KegKu1TtnJsWJvLoFxCKT7pRos",
            "issuerName":"asd",
            "category":"1717",
            "estimateUnit":"RMB",
            "estimatePrice":"100000000",
            "exerciseUnit":"BUHG",
            "extra":"{"productBrand":{"value":"BUHG"},"packingStandard":{"value":"BUHG"},"productIndex":{"value":"BUHG"},"productionInfo":{"value":"BUHG"},"otherInfo":{"value":"BUHG"}}",
            "unlockCondition":1,
            "approved":1
        },
        {
            "currency":"meiyingjugroup.RETSCHSR",
            "name":"RETSCHSR",
            "desc":"RET to House",
            "maximum":"6558750000",
            "precision":1,
            "quantity":"0",
            "height":7199,
            "issuerId":"ADfjWCQ6Ff5c2g62jzJbyQwHAe68TH1QWJ",
            "issuerName":"meiyingjugroup",
            "category":"1732",
            "estimateUnit":"USD",
            "estimatePrice":"655875000",
            "exerciseUnit":"220000",
            "extra":"{"productBrand":{"value":"Serene Country Homes"},"packingStandard":{},"productIndex":{},"productionInfo":{},"otherInfo":{}}",
            "unlockCondition":0,
            "approved":1
        }
    ],
    "count":3
}

2.10.1.9 获取某个资产的访问控制列表acl


接口地址:/api/uia/assets/name/acl/flag 请求方式:get
支持格式:urlencoded

请求参数说明:

名称 类型 必填 说明
name string Y 资产名
flag boole Y 取值0和1,0表示黑名单,1表示白名单
limit integer N 限制结果集个数,最小值:0,最大值:100
offset integer N 偏移量,最小值0

返回参数说明:

名称 类型 说明
success boole 是否成功
list list 符合规则的账户列表
count integer 符合规则账户总数

请求示例:

// 获取资产zhenxi.uia白名单中的地址列表
curl -X GET -H "Content-Type: application/json"  'https://testnet.acchain.org/api/uia/assets/zhenxi.uia/acl/1' && echo

JSON返回示例:

{
    "success": true,
    "list": [{
        "address": "15745540293890213312"
    },
    {
        "address": "AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a"
    }],
    "count": 2
}       
2.10.1.10 获取某个地址拥有的所有资产信息

接口地址:/api/uia/balances/:address 请求方式:get
支持格式:urlencoded

其中address为用户账户地址

请求参数说明:

名称 类型 必填 说明
limit integer N 限制结果集个数,最小值:0,最大值:100
offset integer N 偏移量,最小值0

返回参数说明:

名称 类型 说明
success boole 是否成功
balances list 拥有的资产详情列表,每个元素是一个资产,包含资产符号、资产名、余额、上限、精度、当前发行量、是否注销(0:未注销,1:已注销)
count integer 当前该地址拥有的资产个数

请求示例:

curl -X GET -H "Content-Type: application/json" 'https://testnet.acchain.org/api/uia/balances/AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a' && echo

JSON返回示例:

{
    "success": true,
    "balances": [{
            "currency": "zhenxi.uia",
            "name":"uia",
            "balance": "900000",
            "maximum": "10000000",
            "precision": 3,
            "quantity": "1000000",
            "writeoff": 1
    },
    {
            "currency": "speedtest.SPEED",
            "balance": "400",
            "maximum": "10000",
            "precision": 1,
            "quantity": "10000",
            "writeoff": 0
    }],
    "count": 2
}       
2.10.1.11 获取账户行权记录

接口地址:/api/uia/exercises
请求方式:get
支持格式:无
请求参数说明:如果不加请求参数则返回所有的行权记录

名称 类型 必填 说明
currency string N 账户某个币种的行权记录
id string N 账户id

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据
exercises json 账户行权记录数组,每个数组包含交易ID,币种,时间戳
count integer 行权记录的个数

请求示例:

curl -k -X GET 'https://testnet.acchain.org/api/uia/exercises?currency=TESTREAL.RET'  
// 或者
curl -k -X GET 'https://testnet.acchain.org/api/uia/exercises?id=3bf8892a33eadb2617dbc35934a4781bd0a50834524208a68faedb39fc12b510' 

JSON返回示例:

{"success":true,"exercises":[{"transactionId":"d5cf82f37a35537e73cb921f662b4fe162e7c4d715e4c397a4811db6cf949057","currency":"TESTREAL.RET","amount":"100","precision":1,"senderId":"AD7tetn1WGEAaWeU8BCaK7fRcNKcHKzV6f","timestamp":29254858},{"transactionId":"086c912812c8b7ee0bd70cff80cbed83f0efa8a08230722fdf5b5502b1aa6238","currency":"TESTREAL.RET","amount":"100","precision":1,"senderId":"AD7tetn1WGEAaWeU8BCaK7fRcNKcHKzV6f","timestamp":29254924},{"transactionId":"f7649cf70ad62203c7279be3e3cd0d8b7ecdf5e2073ab20546d521ca87a729ba","currency":"TESTREAL.RET","amount":"100","precision":1,"senderId":"AD7tetn1WGEAaWeU8BCaK7fRcNKcHKzV6f","timestamp":29311954}],"count":3}

2.10.2 创建资产uia交易

2.10.2.1 注册资产发行商

  • 请求方式: get
  • 请求路径: /peer/transactions
  • JSON返回实例:

请求参数说明: |名称 |类型 |必填 |说明 |
|------ |----- |--- |---- |
|transaction|json|Y|AcchainJS.uia.createIssuer根据发行商名字、描述、一级密码、二级密码生成的交易数据|

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

// 发行商名称,唯一标识
var name = 'IssuerName'
// 发行商描述
var desc = 'IssuerDesc'
// 构造交易数据
var trs = AcchainJS.uia.createIssuer(name, desc, secret, secondSecret)
console.log(JSON.stringify(trs))
{"type":9,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19395607,"asset":{"uiaIssuer":{"name":"IssuerName","desc":"IssuerDesc"}},"signature":"c6ed2a4bafe2b8aa31f4aaceacc2a96cb028abbabb2ed062937498c58e24ca5467a340ddd63b67f809a680ff91b83e685c64991eb695494ddb2fdc57e5761607","signSignature":"8eceacbd47c2b8ed335145ced19d7a3a51f99bdd6631d16ed214180c6f80e29bd6d572f45e7c7d685584e55cb5c303cf340406553ece28c9c0a2fa7a777aac0b"}

// 将生成的交易数据通过post发送给server,注册资产发行商IssuerName
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":9,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19395607,"asset":{"uiaIssuer":{"name":"IssuerName","desc":"IssuerDesc"}},"signature":"c6ed2a4bafe2b8aa31f4aaceacc2a96cb028abbabb2ed062937498c58e24ca5467a340ddd63b67f809a680ff91b83e685c64991eb695494ddb2fdc57e5761607","signSignature":"8eceacbd47c2b8ed335145ced19d7a3a51f99bdd6631d16ed214180c6f80e29bd6d572f45e7c7d685584e55cb5c303cf340406553ece28c9c0a2fa7a777aac0b"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true}        
2.10.2.2 注册资产

请求方式:post 接口地址:/peer/transactions
支持格式:json
公用变量:

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.uia.createAsset根据资产名字、描述、上限、精度、策略、一级密码、二级密码生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功
var acchainJS = require('AcchainJS');
// 一级密码
var secret = 'motion group blossom coral upper warrior pattern fragile sister misery palm detect'
// 二级密码
var secondSecret = 'erjimima001'

acchain系统的所有写操作都是通过发起一个交易来完成的。 交易数据通过一个叫做AcchainJS的库来构建,然后再通过一个POST接口发布出去。

POST接口规格如下: payload为AcchainJS创建出来的交易数据

请求示例:

var extra = {
    "productBrand": {
        "value":"ABC",
        "remark":"ABC",
        "link":"ABC"
    },
    "packingStandard": {
        "value":"BCD",
        "remark":"BCD",
        "link":"BCD"
    },
    "productIndex": {
        "value":"CDE",
        "remark":"CDE",
        "link":"CDE"
    },
    "productionInfo": {
        "value":"DEF",
        "remark":"DEF",
        "link":"DEF"
    },
    "otherInfo": {
        "value":" ",
        "remark":" ",
        "link":" "
    },
    "moreDetails":" "
}
var payload = {
    name: 'IssuerName.CNY',// 资产名称,发行商名.资产名,唯一标识
    currency: "",// 货币名称:BTC,ETH..
    desc: '资产描述',// 资产描述
    category: '',// 资产类别
    precision: 3,// 精度,小数点的位数,这里上限是1000000,精度为3,代表资产IssuerName.CNY的最大发行量为1000.000
    maximum: '1000000',// 上限
    estimateUnit: '',// 估值单位
    estimatePrice: '',// 估值价格
    exerciseUnit: '',// 行权规格
    unlockCondition: 0,// 解锁条件0, 1
    extra: extra// 其它信息
}
// 构造交易数据
var trs = AcchainJS.uia.createAsset(payload, secret, secondSecret)
console.log(JSON.stringify(trs))
{"type":10,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19397444,"asset":{"uiaAsset":{"name":"IssuerName.CNY","desc":"资产描述","maximum":"1000000","precision":3,"strategy":""}},"signature":"c755587d331dd2eb62ef91dce1511d83a3e603c7cdc7548a16052519c21ea89c78364e35e5d46da0e2103fa2fb7f037eec55a5deba18826fa13e4252422d750e","signSignature":"1b7ed4c21c477b8ff3d2acfdfd7ff85617093f4c21de70938c46b61c9704b037dbcf7f9e5f5dd1a5dc8f22cf473aaa459e6e5b15ced388b8a1da1e307987a509"}

// 将生成的交易数据通过post发送给server,注册资产IssuerName.CNY
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":10,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19397444,"asset":{"uiaAsset":{"name":"IssuerName.CNY","desc":"资产描述","maximum":"1000000","precision":3,"strategy":""}},"signature":"c755587d331dd2eb62ef91dce1511d83a3e603c7cdc7548a16052519c21ea89c78364e35e5d46da0e2103fa2fb7f037eec55a5deba18826fa13e4252422d750e","signSignature":"1b7ed4c21c477b8ff3d2acfdfd7ff85617093f4c21de70938c46b61c9704b037dbcf7f9e5f5dd1a5dc8f22cf473aaa459e6e5b15ced388b8a1da1e307987a509"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true}        
2.10.2.3 资产发行

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.uia.createIssuer根据发行商名字、描述、一级密码、二级密码生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var currency = 'IssuerName.CNY'
// 本次发行量=真实数量(100)*10**精度(3),所有发行量之和需 <= 上限*精度
var amount = '100000'
var trs = AcchainJS.uia.createIssue(currency, amount, secret, secondSecret)
console.log(JSON.stringify(trs))
{"type":13,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19475744,"asset":{"uiaIssue":{"currency":"IssuerName.CNY","amount":"100000"}},"signature":"32b01a18eca2b0dc7e2ce77ba4e758eaae2532f60844760a762cc20918e7439ac6ca585b921db6ede833ed0bf1c62e30cec545a928abafe0b679183a6ad02202","signSignature":"4fc290d7d7d788e9112a56233df0fe796cba39be3efa0cebf00cbc7e5bc5fd1369fad49e5698d967845b5c02e427926049cab25845d4d385e4a395791906f909"}

curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":13,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19475744,"asset":{"uiaIssue":{"currency":"IssuerName.CNY","amount":"100000"}},"signature":"32b01a18eca2b0dc7e2ce77ba4e758eaae2532f60844760a762cc20918e7439ac6ca585b921db6ede833ed0bf1c62e30cec545a928abafe0b679183a6ad02202","signSignature":"4fc290d7d7d788e9112a56233df0fe796cba39be3efa0cebf00cbc7e5bc5fd1369fad49e5698d967845b5c02e427926049cab25845d4d385e4a395791906f909"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true} 	
2.10.2.4 资产转账

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.uia.createTransfer根据资产名字、数量、接收者地址、一级密码、二级密码生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var currency = 'IssuerName.CNY'
// 本次转账数(10000)=真实数量(10)*10**精度(3),需 <= 当前资产发行总量
var amount = '10000'
// 接收地址,需满足前文定义好的acl规则
var recipientId = 'AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a'
var trs = AcchainJS.uia.createTransfer(currency, amount, recipientId, secret, secondSecret)
console.log(JSON.stringify(trs))
{"type":14,"amount":0,"fee":10000000,"recipientId":"AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a","senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19481489,"asset":{"uiaTransfer":{"currency":"IssuerName.CNY","amount":"10000"}},"signature":"77789071a2ad6d407b9d1e0d654a9deb6d85340a3d2a13d786030e26ac773b4e9b5f052589958d2b8553ae5fc9449496946b5c225e0baa723e7ddecbd89f060a","signSignature":"f0d4a000aae3dd3fa48a92f792d4318e41e3b56cdbaf98649261ae34490652b87645326a432d5deb69f771c133ee4b67d2d22789197be34249e6f7f0c30c1705"}

// 给AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a发送10.000 IssuerName.CNY资产
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":14,"amount":0,"fee":10000000,"recipientId":"AKKHPvQb2A119LNicCQWLZQDFxhGVEY57a","senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19481489,"asset":{"uiaTransfer":{"currency":"IssuerName.CNY","amount":"10000"}},"signature":"77789071a2ad6d407b9d1e0d654a9deb6d85340a3d2a13d786030e26ac773b4e9b5f052589958d2b8553ae5fc9449496946b5c225e0baa723e7ddecbd89f060a","signSignature":"f0d4a000aae3dd3fa48a92f792d4318e41e3b56cdbaf98649261ae34490652b87645326a432d5deb69f771c133ee4b67d2d22789197be34249e6f7f0c30c1705"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true}        
2.10.2.5 资产行权

请求参数说明:

名称 类型 必填 说明
transaction json Y AccchainJS.uia.createExercise根据资产currency、数量、一级密码、二级密码生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var currency = 'IssuerName.CNY';
var amount = '1000';
var message = '这是一些备注信息';
var trs = AccchainJS.uia.createExercise(currency, amount, message, secret, secondSecret);

console.log(JSON.stringify(trs))
 {"type": 12, "amount": "0", "fee": 100000, "recipientId": null, "senderPublicKey":"a7628dc36cc9be73a9d4aa5a61c4ed36ff0ef150139e503f7ced47f237cb2fcf", "timestamp": 29252257, "asset": {"uiaExercise": {"currency": "TESTREAL.RET", "amount":"100"}},"signature":"d4571a90222e77930c125c64d0e710edd2b5aa686ba66e45d80f7d78694ba72115cdfe52e6190cefc88131a5171b03eaba6f25757c800545aeef2a8b82152d0a"}

curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type": 12, "amount": "0", "fee": 100000, "recipientId": null,"senderPublicKey":"a7628dc36cc9be73a9d4aa5a61c4ed36ff0ef150139e503f7ced47f237cb2fcf", "timestamp": 29252257, "asset": {"uiaExercise":{"currency":"TESTREAL.RET","amount":"100"}},"signature":"d4571a90222e77930c125c64d0e710edd2b5aa686ba66e45d80f7d78694ba72115cdfe52e6190cefc88131a5171b03eaba6f25757c800545aeef2a8b82152d0a"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true}        

2.10.3 资产uia投票

2.10.3.1 查询某个资产注册的投票明细

  • 请求方式: get
  • 请求路径: /api/uia/assets/:currency/voters
  • JSON返回实例:

其中currency为资产的符号, 例如TEST.ABC

{
    "success": true,
    "voters": [
        {
            "voter": "delegate1",  // 投票者
            "weight": "500", // 投票权重
        }
    ],
  "count": 9
}
2.10.3.2 查询某次发行的投票明细

  • 请求方式: get
  • 请求路径: /api/uia/issues/:id/voters
  • JSON返回实例:

其中id为从上个接口获取的transactionId

{
    "success": true,
    "voters": [
        {
            "voter": "delegate1",  // 投票者
            "weight": "500", // 投票权重
        }
    ],
  "count": 9
}

2.10.4 资产uia控制

2.10.4.1 资产设置acl模式

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.uia.createFlags根据资产名、流通状态、黑白名单模式、一级密码、二级密码生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var currency = 'IssuerName.CNY'
// 资产是否注销,1:流通,2:注销
var flagType = 1
// 访问控制列表的类型,0:黑名单, 1:白名单,资产创建后默认为黑名单模式
var flag = 1
var trs = AcchainJS.uia.createFlags(currency, flagType, flag, secret, secondSecret)
console.log(JSON.stringify(trs))
{"type":11,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19400996,"asset":{"uiaFlags":{"currency":"IssuerName.CNY","flagType":1,"flag":1}},"signature":"b96fb3d1456e1f26357109cc24d82834eb9a4687f29e69c374bbb1d534568336e148cac52f213aa4d2a69185092f8e1143b49ec4b8048cd9b3af4e20f6ba0b08","signSignature":"b37c77ebebe90341346be2aefe1e12bd7403e5d8f4d6e8f04630190b3e09494a28820da0ffd5f9ff011033aa6d70fc9bb4c159a4493be3b18fd7ff470103570d"}

// 将生成的交易数据通过post发送给server,将acl改为白名单模式
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":11,"amount":0,"fee":10000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19400996,"asset":{"uiaFlags":{"currency":"IssuerName.CNY","flagType":1,"flag":1}},"signature":"b96fb3d1456e1f26357109cc24d82834eb9a4687f29e69c374bbb1d534568336e148cac52f213aa4d2a69185092f8e1143b49ec4b8048cd9b3af4e20f6ba0b08","signSignature":"b37c77ebebe90341346be2aefe1e12bd7403e5d8f4d6e8f04630190b3e09494a28820da0ffd5f9ff011033aa6d70fc9bb4c159a4493be3b18fd7ff470103570d"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true}        
2.10.4.2 更新访问控制列表acl

请求参数说明:

名称 类型 必填 说明
transaction json Y AcchainJS.uia.createAcl根据资产名字、列表操作方法、黑名单还是白名单、地址列表、一级密码、二级密码生成的交易数据

返回参数说明:

名称 类型 说明
success boole 是否成功

请求示例:

var currency = 'IssuerName.CNY'
// '+'表示增加列表, ‘-’表示删除列表
var operator = '+'
var list = ['15745540293890213312']
// 访问控制列表的类型,0:黑名单, 1:白名单
var flag =1
var trs = AcchainJS.uia.createAcl(currency, operator, flag, list, secret, secondSecret)
console.log(JSON.stringify(trs))
{"type":12,"amount":0,"fee":20000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19403125,"asset":{"uiaAcl":{"currency":"IssuerName.CNY","operator":"+","flag":1,"list":["15745540293890213312"]}},"signature":"ad4060e04c1a12256de114e34499f8add24326753f1f8362991ee14aefc4c0fe90ff394d2db97e83770855a5688d463de00656fdd2d04604605cf3c04fdaca0e","signSignature":"63129c58b1b9fcce88cbe829f3104a10ab06037253e9b65feb50ce0d2bb988533b93e8edcad016a85675f9027758fc318cf899ca7ef161a95a8d8a055ae83a02"}

// 将生成的交易数据通过post发送给server,把地址列表['15745540293890213312']增加到该白名单中,只修改名单列表,不修改acl模式,手续费0.2ACC
curl -H "Content-Type: application/json" -H "magic:8e9b66ed" -H "version:''" -k -X POST -d '{"transaction":{"type":12,"amount":0,"fee":20000000,"recipientId":null,"senderPublicKey":"fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575","timestamp":19403125,"asset":{"uiaAcl":{"currency":"IssuerName.CNY","operator":"+","flag":1,"list":["15745540293890213312"]}},"signature":"ad4060e04c1a12256de114e34499f8add24326753f1f8362991ee14aefc4c0fe90ff394d2db97e83770855a5688d463de00656fdd2d04604605cf3c04fdaca0e","signSignature":"63129c58b1b9fcce88cbe829f3104a10ab06037253e9b65feb50ce0d2bb988533b93e8edcad016a85675f9027758fc318cf899ca7ef161a95a8d8a055ae83a02"}}' 'https://testnet.acchain.org/peer/transactions' && echo

JSON返回示例:

{"success":true}
// 查询更新后的列表(acl/1代表白名单)
curl -X GET -H "Content-Type: application/json" 'https://testnet.acchain.org/api/uia/assets/IssuerName.CNY/acl/1?limit=10&offset=0' && echo
{
    "success": true,
    "list": [{
        "address": "15745540293890213312"
    }],
    "count": 1
}

2.10.5 查询资产分类

2.10.5.1 查询一级分类

  • 请求方式: get
  • 请求路径: /api/uia/categories/0
  • JSON返回实例:
{
    "success": true,
    "categories": [
        {
            "id": "01",
            "attrs": ["食品生鲜"],
            "hasChildren": true
        },
        {
            "id": "02",
            "attrs": ["服装"],
            "hasChildren": true
        }
    ],
  "count": 9
}
2.10.5.2 查询指定编号分类的子分类

  • 请求方式: get
  • 请求路径: /api/uia/categories/:id
  • JSON返回实例:

其中id为上一级编号

{
    "success": true,
    "categories": [
        {
            "id": "1001",
            "attrs": ["比特币"],
            "hasChildren": false
        },
        {
            "id": "1002",
            "attrs": ["莱特币"],
            "hasChildren": false
        1}
    ],
  "count": 9
}

attrs表示商品分类名称,可能有多种语言的翻译,第一个是中文, 第二个是英文

2.11 存储storages

源码在src/core/transactions.js文件中,适合存储短文。

2.11.1 上传数据


接口地址:/api/storages
请求方式:PUT
支持格式:json
接口备注:创建者账户需在web端钱包登陆过
请求参数说明:

名称 类型 必填 说明
secret string Y acchain账户密码
secondSecret string N 发送者二级密码,最小长度1,最大长度:100
content string Y 上传数据内容
encode string N 上传数据的格式,可选项为:raw/base64/hex,默认为raw
wait number N 等待确认数,范围为0-6,默认为0。wait为0表示不等待,速度最快,但无法保证数据在掉电情况下不丢失,大于2时,可以100%确保数据已经同步到大部分机器上了,但需要时间较长10-20秒之间,折中的方案是1,wait为1时虽然不能100%保证同步到其他机器,但失败的几率非常小,只是理论上存在,实际上还没遇到过

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据。
transactionId string 交易id

请求示例:

// 将字符串"helloworld"用base64进行编码
console.log(new Buffer('helloworld').toString('base64'));
aGVsbG93b3JsZA==
// acchain用base64方式存储刚才得到的编码值"aGVsbG93b3JsZA=="
curl -k -H "Content-Type: application/json" -X PUT -d '{"secret":"motion group blossom coral upper warrior pattern fragile sister misery palm detect","secondSecret":"erjimima001","content":"aGVsbG93b3JsZA==","encode":"base64","wait":1}' https://testnet.acchain.org/api/storages    

JSON返回示例:

{   
    "success": true,   
    "transactionId": "16670272591943275531"   
}   

2.11.2 查询存储的数据


接口地址:/api/storages
请求方式:GET
支持格式:urlencode
请求参数说明:

名称 类型 必填 说明
id string Y 交易id

返回参数说明:

名称 类型 说明
success boole 是否成功获得response数据。
id string 交易id

请求示例:

curl -k -H "Content-Type: application/json" -X GET https://testnet.acchain.org/api/storages/get/?id=eddc48691269e653c5ec6f077ebf7c87aa3e6fb8ec295987366e6661de067da8 && echo   

JSON返回示例:

{
    "success": true,
    "id": "eddc48691269e653c5ec6f077ebf7c87aa3e6fb8ec295987366e6661de067da8",   // 交易id
    "height": "180182", // 交易所在区块高度
    "blockId": "b59e579a002297557003856fd4cc2b10ac72d3384a5d2a8aece5f906019d79ab",  // 交易所在区块id
    "type": 8,  // 交易类型
    "timestamp": 19552678,  // 交易时间,举例创世块的offset
    "senderPublicKey": "fafcd01f6b813fdeb3c086e60bc7fa9bfc8ef70ae7be47ce0ac5d06e7b1a8575",   // 上传者公钥
    "senderId": "16358246403719868041", // 上传者id
    "recipientId": "",
    "amount": 0,
    "fee": 10000000,    // 交易费。0.1ACC
    "signature": "8a8a256ab16c9cc966f2b975cf5ce39f13f4f13ae4a60f8c6bdfbe94e2e4ee4cb79c3be80630a5c15289d7e959e50dba5f711e9956781b150185ca9d8519f50b", // 交易签名
    "signSignature": "46431039f7e15f3147ca6991e6b46a856741b8566aeb54af97dd73d8d3e03b69eb74693c87d4ce1ef4aa2fb69d56c710681494a013fcf747de24d7ea4e79740f", // 二级签名,有二级密码时才有
    "signatures": null, // 多重签名,使用多重签名账户时才有
    "confirmations": "68",  // 交易确认数
    "asset": {
        "storage": {
            "content": "68656c6c6f776f726c64"   // 数据内容,16进制字符串
        }
    }
}  
// 将得到的16进制(hex)格式的字符串"68656c6c6f776f726c64"转为文本字符串正好是"helloworld"
console.log(new Buffer('68656c6c6f776f726c64','hex').toString());
helloworld