广州

点击搜索

发布

马蹄链NFT智能合约系统开发搭建

区域:
广州 > 天河 > 黄村
类别:
软件开发
地址:
广州天河区
  Matic Network是一种基于【I8I开发2591系统3365】侧链的公共区块链扩展解决方案。它的基础是Plasma框架的调整实施。Matic提供了可扩展性,同时以安全和分散的方式确保了卓越的用户体验。它在KovanTestnet上为Etalum提供了一个工作实现。Matic打算在未来支持其他区块链,这将使它能够提供互操作性功能,同时为现有的公共区块链提供可伸缩性。

  Matic计划在未来支持其他区块链,这将使其能够提供互操作性功能,同时为现有公共区块链提供可扩展性。

  使用侧链进行可扩展,安全和即时的区块链交易,同时使用Plasma框架和去中心化网络的权益证明(PoS)验证器确保资产安全。

  ​​Web3.0”是对“Web2.0”的改进,在此环境下,用户不必在不同中心化的平台创建多种身份,而是能打造一个去中心化的通用数字身份体系,通行各个平台。

  Web3.0被用来描述互联网潜在的下一阶段,一个运行在“区块链”技术之上的“去中心化”的互联网。

NFT智能合约
我们将使用OpenZeppelin来编写智能合约,该合约是基于ERC-721实现。因此我们需要安装OpenZeppelin的智能合约库。在项目根目录执行如下命令:

npm install @openzeppelin/contracts
1
安装好openZeppelin后,我们就可以开始编写智能合约了。打开contracts文件夹并创建一个新的文件NFT.sol,该合约文件非常简单,让我们看一下具体内容:
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721, Ownable {
     using Counters for Cou***unter;
     using Strings for uint256;
     Cou***unter private _tokenIds;
     mapping (uint256 => string) private _tokenURIs;
constructor() ERC721("MyNFT", "MNFT") {}
function _setTokenURI(uint256 tokenId, string memory _tokenURI)internalvirtual{_tokenURIs[tokenId] = _tokenURI;}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory){
     require(_exists(tokenId),
     "ERC721Metadata: URI query for nonexistent token"
     );
     string memory _tokenURI = _tokenURIs[tokenId];
     return _tokenURI;
     }
function mint(address recipient, string memory uri)public returns (uint256){
     _tok***crement();
     uint256 newItemId = _tokenIds.current();
     _mint(recipient, newItemId);
     _setTokenURI(newItemId, uri);
     return newItemId;
     }
}
由于我们使用了OpenZeppelin的ERC721合约,因此只需要很少的代码。

行定义了我们使用的solidiy的版本。

接下来的三行代码引入所需的OpenZeppelin合约,其中ERC-721合约是重要的。 有了这些合约,我们编写智能合约的效率就大大提高了。

接下来我们定义contract名为MyNFT,它继承自OpenZeppeline提供的ERC721和Ownable合约。

然偶定义一些变量。Counters和Strings用来帮助计数以及将数据转换为字符串,然后我们定义一个变量来保存下一个token的ID。后,我们定义一个从通证ID到通证URI的映射表。

引入声明和变量定义完成后,我们可以开始实质性的代码了。构造函数实际上就是定义下通证名称和符号。

在近的OpenZeppelin更新中,其ERC-721合约不再内置setTokenURI函数。这一选择 的初衷可能是减少用户部署合约的gas成本,不过我们还需要这个函数。

没关系,我们可以自己实现。这就是个函数的功能。函数_setTokenURI传入参数通证ID 和通证URI,然后将其添加到映射表中。

通过上述操作,我们现在可以使用tokenURI方法返回通证URI的值。这一点很重要,因为这个URI指向了NFT的全部元数据,例如名称、属性以及资产自身。我们必须确保URI保存下来并能够返回给任何对此感兴趣的人。
相关信息
天河-棠下
14小时前
天河-棠下
1天前
天河-棠下
5月10日
荔湾-荔湾湖
5月10日
天河-棠下
5月8日
天河-棠下
5月7日
查看更多广州网站/软件服务信息

免责声明:此信息系发布者(UID:739123)自行发布,本站是服务平台,仅提供信息存储空间服务,该信息内容的真实性及合法性由该发布者完全负责。

© lieju.com 联系我们