BEPs协议:BUMO ATP 10 协议
BUMO ATP 10 协议
简介
ATP 10(Account based Tokenization Protocol) 指基于 BuChain的账号结构对资产进行发行、转移和增发Token的标准协议,Token在此文代表账号资产。
目标
标准协议可以让其它应用程序方便地调用接口在 BUMO 上进行Token的发行、转移和增发操作。
Token 属性
发行的Token需要通过设置Token源账户的metadata来记录Token的相关属性。用于应用程序方便去管理和查询Token数据信息。
变量 | 描述 |
---|---|
name | Token 名称 |
code | Token 代码 |
description | Token 描述 |
decimals | Token 小数位数 |
totalSupply | Token 总量(其值等于10 ^ decimals * 发行量) |
icon | Token 图标(optional) |
version | ATP 版本 |
注意:
name:推荐使用单词全拼,每个首字母大写。如 Demo Token
code: 推荐使用大写首字母缩写。如 DT
decimals: 小数位在0~8的范围,0表示无小数位
totalSupply: 范围是0 ~ (2 ^ 63 - 1)。0表示不固定Token的上限。假如,发行一笔数量是10000, 精度为8的ATP 10 Token,此时totalSupply = 10 ^ 8 * 10000, 结果是1000000000000。
icon: base64位编码,图标文件大小是32k以内,推荐200*200像素。
操作过程
BUMO ATP 10协议中的操作包括 登记Token、发行Token、转移Token、增发Token、查询Token、查询指定Metadata。
登记Token
登记 token 即设置 token 的 metadata 参数。发送Setting Metadata
的交易,设置Token metadata参数key、value和version。下面是登记 token 的示例:
json格式
{"type": 4,"set_metadata": {"key": "asset_property_DT","value": "{\"name\":\"Demon Token\",\"code\":\"DT\",\"totalSupply\":\"10000000000000\",\"decimals\":8,\"description\":\"This is hello Token\",\"icon\":\"iVBORw0KGgoAAAANSUhEUgAAAAE....\",\"version\":\"1.0\"}","version": 0} }
注意:
- key值必须是asset_property_前缀和Token code的组合(参考发行Token的
code
参数)。
设置成功后通过查询指定Metadata可以看到metadata设置的数据。
发行Token
发行 token 即账户发行一笔数字 token,执行成功后账户的 token 余额中会出现这一笔 token。客户端通过发起一笔操作类型是Issuing Assets
的交易。设置参数amount(发行的数量)、code(Token代码)。
例如:发行一笔数量是10000,精度为8的DT Token, 此时参数amount是10 ^ 8 * 10000。
json格式
{"type": 2,"issue_asset": {"amount": 1000000000000,"code": "DT"} }
转移Token
转移 token 即账户将一笔 token 转给目标账户。转移 token 通过发送 Transferring Assets
的交易设置相关参数。以下是相应参数:
参数 | 描述 |
---|---|
pay_asset.dest_address | 目标账户地址 |
pay_asset.asset.key.issuer | Token发行方地址 |
pay_asset.asset.key.code | Token代码 |
pay_asset.asset.amount | 10 ^ 精度 * 要转移的数量 |
pay_asset.input | 触发合约调用的入参,如果用户未输入,默认为空字符串 |
例如:给已激活的目标账户 buQaHVCwXj9ERtFznDnAuaQgXrwj2J7iViVK 转移数量为 500000000000 的 DT 的例子。
- json格式:
{"type": 3,"pay_asset": {"dest_address": "buQaHVCwXj9ERtFznDnAuaQgXrwj2J7iViVK","asset": {"key": {"issuer": "buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD","code": "DT"},"amount": 500000000000}}}
转移成功后通过查询Token可以看到目标账户拥有amount数量的DT。
注意:给未激活的目标账户转移Token,交易的执行结果是失败的
增发Token
增发 token 即账户继续在原 token 代码上发行一定数量的 token。通过设置和之前发行Token
相同的交易类型代码,继续发送发行Token的交易,进行Token增发。应用程序根据具体业务去控制增发Token数量是否超过totalSupply,增发成功后可以看到Token数量会有所增加。
查询Token
查询 token 即查询源账户的 token 信息,以下是查询 token 需要指定的 token 信息:
参数 | 描述 |
---|---|
address | 账号地址, 必填 |
code & issuer | issuer表示Token发行账户地址,code表示Token代码。只有同时填写正确code&issuer才能正确显示指定Token否则默认显示所有Token。选填 |
type | 目前type只能是0,可以不用填写 |
以下是查询 token 的代码示例:
HTTP GET /getAccountAssets?address=buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD
- 返回内容
{"error_code": 0,"result": [{"amount": 469999999997,"key": {"code": "DT","issuer": "buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD"}},{"amount": 1000000000000,"key": {"code": "ABC","issuer": "buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD"}}]
}
- 如果该账号不存在Token,则返回内容
{"error_code" : 0,"result" : null
}
查询指定metadata
查询指定 metadata 即查询 metadata 的相关信息,包括 key、value、version。查询 metadata 需指定的 metadata 信息:
参数 | 描述 |
---|---|
address | 账号地址, 必填 |
key | 指定metadata中的key值 |
以下是查询指定 metadata 的代码示例:
HTTP GET /getAccountMetaData?address=buQhzVyca8tQhnqKoW5XY1hix2mCt5KTYzcD&key=asset_property_DT
- 如果该账号指定的 key 存在 metadata,则返回内容:
{"error_code": 0,"result": {"asset_property_DT": {"key": "asset_property_DT","value": "{\"name\":\"DemonToken\",\"code\":\"DT\",\"totalSupply\":\"1000000000000\",\"decimals\":8,\"description\":\"This is hello Token\",\"icon\":\"iVBORw0KGgoAAAANSUhEUgAAAAE\",\"version\":\"1.0\"}","version": 4}}
}
- 如果该账号指定的key不存在metadata,则返回内容:
{"error_code" : 0,"result" : null
}
BEPs协议:BUMO ATP 10 协议相关推荐
- BEPs协议:BUMO ATP 20 协议
BUMO ATP 20 协议 简介 ATP 20(Account based Tokenization Protocol) 指基于 BUMO 智能合约发行 token 的标准协议.该协议提供了转移 t ...
- BEPs协议:BUMO DEX 10 协议
BUMO DEX 10 协议 简介 BUMO DEX 1.0(Decentralized exchange) 是基于 BUMO 智能合约制定的去中心化资产兑换协议.该协议为基于BUMO发行的各类资产提 ...
- BEPs协议:BUMO STO 10 协议
BUMO STO 10 协议 简介 STO 10 (Security Token Standard)是指基于 BUMO 智能合约发行证券型 token 的标准协议.该标准在 CTP 10 的基础上制定 ...
- BEPs协议:BUMO ATP 30 协议
BUMO ATP 30 协议 简介 ATP 30(Account based Tokenization Protocol) 是"Non-Fungible Tokens",英文简写为 ...
- GPS NMEA 0183 4.10协议/GPS Linux串口驱动
NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.现在已经成为GPS导航设备统一的RTCM(R ...
- android mux协议,GSM 07.10 MUX 协议驱动解析
PXA1802使用HSIC接口与AP连接,HSIC枚举实现7个虚拟通道ttyUSB0~6,为方便扩展,Marvell在HSIC虚拟通道0上实现了3GPP GSM-07.10 MUX协议,MUX协议提供 ...
- 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6
其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...
- ssh协议是osi_TCP/IP协议和三次握手四次挥手
计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...
- Python中的端口协议之基于UDP协议的通信传输
阅读目录 UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) 3.利用socketserver模块实现udp传输协议的并发通 ...
最新文章
- 迷宫搜索问题最短路_[源码和文档分享]基于C语言实现的勇闯迷宫游戏
- js获取微信验证实现微信自动跳转 检验code操作
- 解决maltab的中文和英文字体问题,中文乱码
- mongodb 分组聚合_MongoDB按键值对进行聚合/分组
- poi向word插入图片_如何使用word裁剪图片图形?如何使用word修整图片?
- Web开发性能优化总结 转载
- .NET异步程序设计之任务并行库
- ServletContext读取属性文件
- Redis 未授权访问漏洞利用
- gets()gets_s()puts()函数的使用
- 华硕afudos刷bios_华硕M2N-MX SE PLUS主板 如何用afudos命令刷BIOS
- 模糊局部信息c均值聚类算法(flicm)
- 谷歌日语输入法、中文输入法之间的切换
- 寒武纪“失速”,是AI芯片行业的阵痛?
- Sql Server利器sql prompt
- 【转载】世界十大名咖啡
- C/C++内存检测工具valgrind--memcheck
- 2021成都好久查询高考成绩,2021年成都各高中高考成绩排名及放榜最新消息
- 手机GPS天线设计对GPS定位有影响
- 农村土地确权之调查公示 ——二轮公示前数据检查说明