使用Remix,15 分钟部署使用ERC 1155 智能合约

一、ERC1155 和ERC721 有什么区别

开始介绍ERC1155 智能合约的写法之前,我觉得先要说说ERC1155 和ERC721 到底有什么区别。简单来说,ERC1155 是ERC721 的升级版,ERC1155 在ERC721 的基础上,主要增加或改善了如下功能:

  • 同时支持可替换代币(同质化代币)和不可替换代币(非同质化代币);
  • 批量转账: 仅需要一次智能合约调用,就可以转账多种代币资产;
  • 批量查询余额:一次智能合约调用可以查询多种代币余额资料;
  • 批量授权:一次智能合约调用可以向指定地址授权多种代币的使用权;

用再简单一些的人话来讲,就是一张ERC1155 智能合约,里面可以同时包含类似USDT 这种代币,和类似MekaVerse无聊猿等这种独一无二的NFT 代币。

另外,传统的ERC721 合约,如果要转移NFT,必须一个一个操作,没有办法做到批量转账。

而ERC1155,则宛如加入了类似「购物车」的概念,可以一堆代币一次过转移。

不要小看这个「批量」功能,要知道每次和区块链交互,都要消耗gas,如果有某些应用场景需要大量,频繁转移资产,那ERC1155 相比ERC721 则能节约大量的gas 成本。

我们可以试想一下,假如现在想要创作一款区块链游戏,里面有类似USDT 的可替换同质化代币以进行金融操作,也需要有各种游戏装备,英雄角色等独一无二不可替换代币来进行游戏,这两种代币也需要透过一定的机制进行交易互换,这个场景,使用ERC1155 则可以完美实现。

我们不妨对比一下ERC721 和ERC1155 合约的规范接口:

ERC721

function balanceOf(address _owner) external view returns (uint256);
function ownerOf(uint256 _tokenId) external view returns (address);
function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
function approve(address _approved, uint256 _tokenId) external payable;
function setApprovalForAll(address _operator, bool _approved) external;
function getApproved(uint256 _tokenId) external view returns (address);
function isApprovedForAll(address _owner, address _operator) external view returns (bool)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值