OpenSea铸造NFT合约交易系统开发源码搭建详情

152 阅读3分钟

  非同质化代币(NFT)市场正在进入狂热,【18I链上合约-259l开发系统3365】回顾NFT早期的发展历程,回忆CryptoKitties所暴露出挑战是很有意思的。CryptoKitties由Dapper Labs的团队打造,是让以太坊第一次出现“大规模”使用的案例。

  从那之后,NFT就开始成长之路,Rarible、OpenSea、Foundation、Sorare等平台纷纷涌现。这些平台每月都有数百万元的流量。尽管磕磕碰碰,但大部分依旧在以太坊区块链上发生着。但Dapper Labs的团队在经历了CryptoKitties之后,着手建立一个新的通用的,很适合NFT使用场景区块链。他们这样做的目标是想解决在以太坊上看到的许多NFT的问题,同时为该领域的开发者和收藏者提供更好的体验。他们的新区块链Flow,已经证明了自己能够落地,并吸引一些大牌。,如NBA、UFC、甚至Dr.Seuss都在使用Flow。

  我们最近写了使用IPFS上保存标的资产来创建NFT,并且讨论NFT领域的责任问题,以及IPFS如何提供帮助。现在,这篇文章谈谈如何在Flow上创建IPFS支持的NFT。Flow区块链早期的主要应用之一是NBA巅峰对决(NBA Top Shot)。我们要重新建立一个非常基本的NFT铸币过程,然后在IPFS上回溯NFT元数据和标的资产。

  由于我们喜欢piñatas,所以我们的NFT将不再是NBA精彩的视频,而是一个可交易的piñatas视频

  铸造NFT

  在教程的第二篇文章中,我们将通过一个应用程序和用户界面使铸币过程更加友好。为了看到所铸造的内容,并展示元数据如何在Flow上与NFT一起工作,我们将使用Cadence脚本和命令行。

  在pinata-party项目的根目录下创建一个新的目录,我们把它叫做transactions。创建好文件夹,在里面创建一个名为MintPinataParty.cdc的新文件。

  为了编写出交易,先需要提供给NFT的元数据一个引用文件。为此,我们将通过Pinata上传一个文件到IPFS。这个教程中,我将上传一个孩子在生日派对上砸pinata的视频。你可以上传任何你想要的视频文件。你真的可以上传任何你喜欢的资产文件,并将其与你的NFT关联起来,在本教程系列的第二篇文章将期待视频内容。一旦你准备好你的视频文件,在这里上传。

  当你上传文件后,你会得到一个IPFS哈希(通常被称为内容标识符或CID)。复制这个哈希值,因为我们将在铸币过程中使用它。

  现在,在你的MintPinataParty.cdc文件中,添加以下内容:

  import PinataPartyContract from 0xf8d6e0586b0a20c7

  transaction{

  let receiverRef:&

  let minterRef:&PinataPartyContract.NFTMinter

  prepare(acct:AuthAccount){

  self.receiverRef=acct.getCapability<&>(/public/NFTReceiver)

  .borrow()

  ??panic("Could not borrow receiver reference")

  self.minterRef=acct.borrow<&pinatapartycontract.nftminter>(from:/storage/NFTMinter)

  ??panic("could not borrow minter reference")

  }

  execute{

  let metadata:={

  "name":"The Big Swing",

  "swing_velocity":"29",

  "swing_angle":"45",

  "rating":"5",

  "uri":"ipfs://QmRZdc3mAMXpv6Akz9Ekp1y4vDSjazTx2dCQRkxVy1yUj6"

  }

  let newNFT<-self.minterRef.mintNFT()

  self.receiverRef.deposit(token:<-newNFT,metadata:metadata)

  log("NFT Minted and deposited to Account 2's Collection")

  }

  }