BSN-DDC基础网络DDC SDK详细设计五:官方合约BSN-DDC-1155

这篇具有很好参考价值的文章主要介绍了BSN-DDC基础网络DDC SDK详细设计五:官方合约BSN-DDC-1155。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2022年1月25日,区块链服务网络发展联盟(简称“BSN联盟”)推出了“BSN-DDC基础网络”(简称DDC网络)。DDC网络的推出,为NFT技术在我国的落地提供基础设施能力支撑,并为其合规发展保驾护航。

DDC(Distributed Digital Certificate)即分布式数字凭证,其属性和功能类似于NFT。NFT是现实或数字世界中某个事物在区块链上的数字化权益证明,尽管目前大多被用于数字艺术品版权领域,然而其本质上是一种区块链分布式数据库技术,并不带有特定的业务属性,它的潜在使用场景是非常广泛的,可应用在数字商品凭证、票证、账户管理、知识产权等各种领域。

DDC网络不直接向个人用户提供服务,而是向拥有DDC/NFT业务的平台方提供极其便捷的网络接入服务,以方便这些平台以极低的成本提供DDC/NFT的生成和管理服务。

DDC-SDK 是用于开发者与DDC合约交互的 API 工具。为了让运营方或各平台方对DDC-SDK整体设计有一个全面详细的了解,同时为项目的开发、测试、验证、交付等环节提供原始依据以及开发指导,BSN研习社推出BSN-DDC基础网络DDC SDK详细设计系列。分别从整体设计,DID功能设计,DDC权限管理、费用管理,官方合约BSN-DDC-721,官方合约 BSN-DDC-1155,交易查询、区块查询、签名事件,数据解析,示例等八个方面,全面详细的介绍DDC-SDK。

本期是系列文章第五期,官方合约BSN-DDC-1155。

3.2.1  BSN-DDC-1155

3.2.4.1  安全生成

3.2.4.1.1   功能介绍

平台方或终端用户可以通过调用该方法进行DDC的安全生成。

3.2.4.1.2   API定义

  • 方法定义:String safeMint(String sender,String to,BigInteger amount,String ddcURI,byte[] data);

  • 合约方法:safeMint(address to,uint256 amount, string memory ddcURI, bytes memory data);

  • 调用者:平台方、终端用户;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查接收者账户地址信息是否为空;

  3. 检查接收者账户地址格式是否正确;

  4. 检查需要生成的DDC数量是否大于0;

  5. 检查DDCURI信息是否为空;

  6. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
接收者账户 to String
DDC数量 amount BigInteger
DDCURI ddcURI String
附加数据 data byte[]
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.2  批量安全生成

3.2.4.2.1   功能介绍

平台方或终端用户可以通过调用该方法进行DDC的批量安全生成。

3.2.4.2.2   API定义

  • 方法定义:String safeMintBatch(String sender,String to,Multimap<BigInteger,String> ddcInfo,byte[] data);

  • 合约方法:safeMintBatch(address to,uint256[] amounts, string[] ddcURIs, bytes memory data);

  • 调用者:平台方、终端用户;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查接收者账户地址信息是否为空;

  3. 检查接收者账户地址格式是否正确;

  4. 检查生成的DDC数量集合大小是否大于0;

  5. 检查生成的DDC数量集合中每个DDC数量是否大于0;

  6. 检查生成的DDCURI集合大小是否大于0;

  7. 检查生成的DDCURI集合中每个DDCURI是否为空;

  8. 检查生成的DDC数量集合与DDCURI集合的大小是否相等;

  9. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
接收者账户 to String
DDC信息合计 ddcInfo Multimap<BigInteger,String>
附加数据 data byte[]
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.3    账户授权

3.2.4.3.1   功能介绍

DDC拥有者可以通过调用该方法进行账户授权,发起者需要是DDC的拥有者。

3.2.4.3.2   API定义

  • 方法定义:

    String setApprovalForAll(String sender,String operator, Boolean approved);

  • 合约方法:

    setApprovalForAll(address operator, bool approved);

  • 调用者:DDC拥有者;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查授权者账户地址信息是否为空;

  3. 检查授权者账户地址格式是否正确;

  4. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
授权者账户 operator String
授权标识 approved Boolean
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.4    账户授权查询

3.2.4.4.1   功能介绍

运营方、平台方或终端用户可以通过调用该方法进行账户授权查询。

3.2.4.4.2   API定义

  • 方法定义:

    Boolean isApprovedForAll(String owner,String operator);

  • 合约方法:

    isApprovedForAll(address owner,address operator) returns (bool);

  • 调用者:运营方、平台方或终端用户;

  • 核心逻辑:

  1. 检查拥有者账户地址信息是否为空;

  2. 检查拥有者账户地址格式是否正确;

  3. 检查授权者账户地址信息是否为空;

  4. 检查授权者账户地址格式是否正确;

  5. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
拥有者账户 owner String
授权者账户 operator Boolean
  • 输出参数:

字段名 字段 类型 必传 备注
Boolean

3.2.4.5  安全转移

3.2.4.5.1   功能介绍

DDC拥有者或DDC授权者可以通过调用该方法进行DDC的转移。

3.2.4.5.2   API定义

  • 方法定义:

    String safeTransferFrom(String sender,String from,String to,BigInteger ddcId,BigInteger amount,byte[] data);

  • 合约方法:

    safeTransferFrom(address from,address to,uint256 ddcId,uint256 amount,bytes memory data);

  • 调用者:DDC拥有者、DDC授权者;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查拥有者账户地址信息是否为空;

  3. 检查拥有者账户地址格式是否正确;

  4. 检查接收者账户地址信息是否为空;

  5. 检查接收者账户地址格式是否正确;

  6. 检查DDCID数值是否大于0;

  7. 检查DDC转移所对应的数量是否大于0;

  8. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
拥有者账户 from String
接收者账户 to String
DDCID ddcId BigInteger
数量 amount BigInteger DDCID所对应的数量
附加数据 data byte[]
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.6  批量安全转移

3.2.4.6.1   功能介绍

DDC拥有者或DDC授权者可以通过调用该方法进行DDC的批量转移。

3.2.4.6.2   API定义

  • 方法定义:

    String safeBatchTransferFrom(String sender,String from,String to,Map<BigInteger,BigInteger> ddcs, byte[] data);

  • 合约方法:

    safeBatchTransferFrom(address from, address to,uint256[] ddcIds,uint256[] amounts,bytes memory data);

  • 调用者:DDC拥有者、DDC授权者;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查拥有者账户地址信息是否为空;

  3. 检查拥有者账户地址格式是否正确;

  4. 检查接收者账户地址信息是否为空;

  5. 检查接收者账户地址格式是否正确;

  6. 检查转移的ddcs集合大小是否大于0;

  7. 检查转移的ddcs集合中每个DDCID是否大于0;

  8. 检查转移的ddcs集合中每个DDC数量是否大于0;

  9. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
拥有者账户 from String
接收者账户 to String
拥有者DDCID集合 ddcs Map<BigInteger,BigInteger>
附加数据 data byte[]
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.7  销毁

3.2.4.7.1   功能介绍

DDC拥有者或DDC授权者可以通过调用该方法进行DDC的销毁。

3.2.4.7.2   API定义

  • 方法定义:

    String burn(String sender,String owner,BigInteger ddcId);

  • 合约方法:burn(address owner,uint256 ddcId);

  • 调用者:DDC拥有者、DDC授权者;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查拥有者账户地址信息是否为空;

  3. 检查拥有者账户地址格式是否正确;

  4. 检查需要销毁的DDCID集合长度是否大于0;

  5. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
拥有者账户 owner String
DDCID ddcId BigInteger
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.8  批量销毁

3.2.4.8.1   功能介绍

DDC拥用者或DDC授权者可以通过调用该方法进行DDC的批量销毁。

3.2.4.8.2   API定义

  • 方法定义:

    String burnBatch(String sender,String owner,List<BigInteger> ddcIds);

  • 合约方法:

    burnBatch(address owner,uint256[] ddcIds);

  • 调用者:DDC拥用者、DDC授权者;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查拥有者账户地址信息是否为空;

  3. 检查拥有者账户地址格式是否正确;

  4. 检查需要销毁的DDCID集合大小是否大于0;

  5. 检查需要销毁的DDCID集合中每个DDCID数值是否大于0;

  6. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
拥有者账户 owner String
DDCID集合 ddcIds List<BigInteger>
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

3.2.4.9  查询数量

3.2.4.9.1   功能介绍

运营方、平台方以及终端用户可以通过调用该方法进行查询当前账户拥有的DDC的数量。

3.2.4.9.2   API定义

  • 方法定义:

    BigInteger balanceOf(String owner,BigInteger ddcId);

  • 合约方法:

    balanceOf(address owner, uint256 ddcId) returns (uint256);

  • 调用者:运营方、平台方以及终端用户;

  • 核心逻辑:

  1. 检查拥有者账户地址信息是否为空;

  2. 检查拥有者账户地址格式是否正确;

  3. 检查DDCID集合长度是否大于0;

  4. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
拥有者账户 owner String
DDCID ddcId BigInteger
  • 输出参数:

字段名 字段 类型 必传 备注
数量 BigInteger 拥有者账户所对应的DDCID所拥用的数量

3.2.4.10 批量查询数量

3.2.4.10.1 功能介绍

运营方、平台方以及终端用户可以通过调用该方法进行批量查询账户拥有的DDC的数量。

3.2.4.10.2 API定义

  • 方法定义:

    List<BigInteger> balanceOfBatch(Multimap<String,BigInteger>ddcs);

  • 合约方法:

    balanceOfBatch(address[] memory owners,uint256[] memory ddcIds) returns (uint256[] memory);

  • 调用者:运营方、平台方以及终端用户;

  • 核心逻辑:

  1. 检查ddcs集合大小是否大于0;

  2. 检查ddcs集合中拥有者账户地址信息是否为空;

  3. 检查ddcs集合中拥有者账户地址格式是否正确;

  4. 检查ddcs集合中每个DDCID数值是否大于0;

  5. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
拥有者DDCID集合 ddcs Multimap<String,BigInteger>
  • 输出参数:

字段名 字段 类型 必传 备注
数量集合 List<BigInteger> 拥有者账户所对应的每个DDCID所拥用的数量

3.2.4.11  获取DDCURI

3.2.4.11.1 功能介绍

运营方、平台方以及终端用户可以通过调用该方法进行查询当前DDC的资源标识符。

3.2.4.11.2 API定义

  • 方法定义:String ddcURI(BigInteger ddcId);

  • 合约方法:ddcURI(uint256 ddcId) returns (string memory);

  • 调用者:运营方、平台方以及终端用户;

  • 核心逻辑:

  1. 检查DDCID数值是否大于0;

  2. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
DDCID ddcId BigInteger
  • 输出参数:

字段名 字段 类型 必传 备注
DDCURI String

3.2.4.12  URI设置

3.2.4.12.1 功能介绍

DDC拥有者或DDC授权者通过调用该方法对DDC的资源标识符进行设置。

3.2.4.12.2 API定义

  • 方法定义:String setURI(String sender,String owner,BigInteger ddcId,String ddcURI);

  • 合约方法:setURI(address owner,uint256 ddcId,string memory ddcURI);

  • 调用者:DDC拥有者、DDC授权者;

  • 核心逻辑:

  1. 检查sender为标准备address格式;

  2. 检查owner地址格式是否正确;

  3. 检查ddcId数值是否大于0;

  4. 检查ddcURI是否为空字符串;

  5. 检查签名事件是否被注册;

  • 输入参数:

字段名 字段 类型 必传 备注
调用者 sender String 调用者地址
DDC拥有者 owner String
DDC唯一标识 ddcId BigInteger
DDC资源标识符 ddcURI String
  • 输出参数:

字段名 字段 类型 必传 备注
String 交易哈希

本文资料内容来源于BSN-DDC SDK详细设计-V1.0,GitHub地址为:

https://github.com/BSN-DDC/did-sdk

欲浏览更多信息,请您点击登录查看。文章来源地址https://www.toymoban.com/news/detail-797724.html

到了这里,关于BSN-DDC基础网络DDC SDK详细设计五:官方合约BSN-DDC-1155的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 国家级区块链基础设施BSN推出BSN-DDC以支持部署NFT

    摘要 产业动态: 谷歌成立区块链部门,将专注于分布式计算、存储等技术 腾讯最快于月内向日本企业提供元宇宙业务服务 目前暂无公司成功注册“元宇宙”相关商标 政策相关: 央行、公安部等11部门联合开展打击治理洗钱违法犯罪三年行动 北京市广播电视局:鼓励各机构

    2024年02月02日
    浏览(23)
  • BSN区块链思想领导力 | NFT/DDC 的未来

    信息来源:Medium 作者:BSN 区块链服务网络(Blockchain-based Service Network,BSN)是我国首个完全自主知识产权的全球性区块链公共基础设施网络,用于部署和运行区块链应用,目的是极大降低区块链应用的开发、部署、运维、互通和监管成本。BSN全面融合了国内外云资源和区块链

    2024年02月01日
    浏览(39)
  • 中移链DDC-SDK技术对接全流程(三)

    id:BSN_2021 公众号:BSN 研习社 作者:中移信息 2021年10月,BSN 提出搭建 BSN-DDC 基础网络,区块链团队自主研发中移链(CMBaaS)DDC 并与 BSN 开展合作,面向存在 DDC 业务需求的各行业客户提供接入服务,使其可便捷管理 DDC 操作,从而灵活升级产品模式,助力客户业务创新。 本文

    2024年01月17日
    浏览(27)
  • Artix7 Microblaze下调试SDK官方lwIP RAW Mode TCP Server Application例程(详细说明)

    Vivado 2019.1 FPGA: Artix7 XC7A100T DDR3: MT41K256M16TW-107 PHY: RTL8211F(商业级) 为加快进入application,设置如下: 1.禁用autodetect, phy_link_speed设为100Mbps(此时autonegotiation被禁止,大大加快进入程序) 2.禁用dhcp, 使用默认IP地址设置(不用等待dhcp配置,加快速度) 先对SDK作简单的调整: 1.关闭

    2024年02月09日
    浏览(28)
  • ZYNQ详细设计之SDK相关操作

            Step1:在生成hdf文件之前需要生成bit文件,左下角Gennerate  Bitstream生成bit文件,用于存储程序和硬件信息;         Step2:File Export Export Hardware,勾选包括bit文件,位置可以自定义或者放置在默认位置;             Step3:打开SDK,File Launch SDK;         

    2024年02月16日
    浏览(25)
  • 什么是区块链服务网络(BSN)

    BSN全称为区块链服务网络(Blockchain-based Service Network),是一个跨云服务、跨门户、跨底层框架,用于部署和运行区块链应用的全球性公共基础设施网络。 BSN是由国家信息中心、中国移动通信集团公司、中国银联股份有限公司、北京红枣科技有限公司共同发起。 互联网是通过

    2024年02月01日
    浏览(25)
  • DDC网络武汉链跨链以太坊逻辑概述

    BSN-DDC基础网络(以下简称“DDC网络”)是BSN产品体系中专门面向国内市场的BSN公网产品,通过建立一个公共分布式云服务网络,可为区块链和NFT等分布式技术以及相关应用在国内的发展提供基础设施能力支撑。 自发布以来,DDC网络上的业务发展迅速。截至目前,已经有超过

    2024年02月06日
    浏览(31)
  • DDC技术:AIGC网络的革命性解决方案

    2023年,人工智能生成内容(AIGC)技术将蓬勃发展,其中ChatGPT作为一个典型案例,在文本生成、代码开发和诗歌创作等多个领域引起行业变革。DDC技术对改变网络格局具有创新和突破性意义,很大程度上提升了效率和连接性。本文将介绍这一AIGC网络的新一代革命性解决方案—

    2024年02月19日
    浏览(36)
  • BSN专网项目介绍:宁波市区块链新型基础设施“甬链”

    “甬链”是在宁波市委网络安全和信息化委员会办公室、宁波市发展和改革委员会、宁波市经济和信息化局、宁波市大数据发展管理局等政府单位的指导下,由宁波区块链专委会主任单位中国移动宁波分公司,基于区块链服务网络(BSN)的技术和资源,以完全开放、兼容、共

    2024年01月17日
    浏览(42)
  • Android SDK安装教程(超详细),从零基础入门到实战,从看这篇开始

    前言 在使用appnium的时候,除了安装JDK之外,也需要安装Android SDK。那么,正确安装Android SDK是怎样的呢,跟着小编继续往下看。 安装Android SDK和环境配置 1.安装Android SDK 首先打开官网:https://www.androiddevtools.cn/ 选中导航中的Android SDK工具,再点击SDK Tools。 网页会自动往下翻,

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包