教程丨三分钟教你制作专属NFT智能合约

东寻

    本文编译自Amir Soleymani
    
    在NFT领域成为艺术家,其中一个方面是在区块链上拥有自己的出处,没有什么比拥有自己的智能合约更能证明这一点。
    通过拥有自己的智能合约,你将能够在一个收藏品系列中以自己的名义下铸造作品。
    当然,当你计划在Opensea这样的开放市场上出售你的物品,你将无法在任何其他平台上出售你的智能合约中的作品。
    拥有自己的智能合约和铸币的工作并不是一个容易的过程,首先你必须对区块链领域的技术和相关术语有基本的了解。
    这个过程包括:
    
  • 编写一个智能合约,你可以在区块链上铸造无形的代币(独特的作品)
  • 将该智能合约部署在区块链上
  • 在etherscan上验证源代码
  • 创建元数据文件并将其与实际的图片(可以是图像、视频,甚至是Javascript/HTML代码)一起上传到IPFS。
  • 通过连接代币、元数据和艺术品,将它们绑定到区块链上,并在区块链上铸造作品。

    对此,我编写了一个简单的智能合约,允许你铸造无限的独特作品,每个作品都有自己的元数据(tokenURI)。你也可以销毁代币,仍然能够控制智能合约的所有其他标准功能。
    可以在此处查看合约源代码:
    mondoir / NFT-Smart-Contract
    在此源代码中,你需要更改3个部分来对其进行自定义:
    第1358行 #YOURCONTRACTNAME#(你的合约名称)
    无论你的合约/收藏是什么。例如,MondoirPhotographyCollection。注意,这不能有任何空格。
    第1370行 #YOUR CONTRACT NAME# & #SYMBOL#
    名称相同,但在这里你可以使用空格,例如:Mondoir Photography Collection。符号是代币名称。这可能有点令人困惑,但它基本上是类似ETH和BTC的东西。因此,请随意使用你的收藏品名称的某些部分,例如:MPC(代表Mondoir Photography Collection)。
    这就是定制你的合约。
    你现在需要到Remix去部署你的合约。Remix IDE是一个开源的 Web 和桌面应用程序。它促进了快速开发周期,并拥有丰富的插件和直观的GUI。
    Remix - 以太坊 IDE?
    
    

参考A1
    在Remix网页的左侧,有一个文件浏览器。
    点击Single Sheet(编号1),创建一个新文件。将此文件命名为你的智能合约名称,以.sol结尾。所以你的文件名应该是这样的:myContract.sol
    然后复制我github页面上的合约源代码的内容,并将其粘贴到你刚刚创建的文件中。
    
    你可以在此处更新我之前提到的那3项内容。(第1358行和1370行),并且不要忘记删除 # 符号。
    
    
    下一站,转到第2项(参考A1图片)来编译你的合约。确保你的屏幕和选项和上图看起来相同,然后按编译(Compile)。
    如果你选择了自动编译(Auto Compile),它可能已经编译了你的合约,但再次编译也无妨。
    一旦完成,进入菜单3,将合约部署到以太坊网络上。
    
    现在,根据你的需要,你可能想把它部署到testnet上测试你的合约,在这种情况下,你可以使用这个列表中的虚拟机(VM)。
    如果你想使用末的元掩码并在主网或测试网上部署,请使用Web3提供程序并连接你的元掩码。
    确保在合约部分选择了正确的合约,然后按部署(Deploy)。
    
    部署成功后,你应该看到“部署(Deploy)”按钮下面的合约名称和地址。
    通过单击合约名称和地址前面的2个堆叠文件复制合约地址,然后转到etherscan以验证你的合约。
    
    根据你的网络,如果你选择在主网部署,你可以到https://etherscan.io/?,如果在测试网,可以到https://rinkeby.etherscan.io/ 或 https://ropsten.etherscan.io/。
    在Etherscan上,将你的合约地址粘贴到搜索栏上,然后进入你新创建的合约。
    进入“合约”标签,然后点击验证和发布链接。
    根据Remix选择编译器类型、版本和许可证类型。
    最后,回到Remix并复制合约源代码。
    
    根据上图,粘贴合约源代码并选择优化选项“是”。
    重要提示:
    在这个阶段,你可能会收到错误信息。我在Chrome浏览器上遇到了这个问题。如果你遇到这个问题,可以尝试使用Safari浏览器。
    在点击验证和发布后,Etherscan应该读取你的合约源代码,找出这个合约的ABI并验证它。
    验证您的合同后,你将能够在合约标签上用新增加的读写按钮与它进行交互。在写入部分,你将能够铸造新的作品。
    实际铸造工作
    为了铸造,你需要创建元数据json文件,并将其与图像/视频/html 文件一起上传到IPFS。此前我曾解释过这个话题:
    在Opensea上的Mint HTML?
    一旦你的文件在IPFS上,可以获取你的metadata.json文件的链接,然后转到ethersan和你的合约页面。
    在那里写入,然后是mint(铸造)。
    在这里,你可以选择要将这个新创作的作品发送到哪个地址。很明显,这将是你自己的地址。然后你可以为这个作品选择一个代币ID。这是一个数字,只要它没有在你的智能合约中使用过,就完全由你来决定。为你的作品想出一个编号系统是一个很好的做法。
    例如,静止图像以0001开头,然后将下一个作品添加到索引(index)中。
    然后在tokenURI上,将链接粘贴到工作的metadata.json文件,并按mint。确保你的metamask已连接,并且你有足够的ETH支付gas费。一旦完成,新铸造的作品将在你的opensea帐户上可用,你可以自由选择如何出售。
    
    这个智能合约允许你铸造无限数量的独特作品,每个作品都有自己的代币ID和tokenURI。