【區塊鏈】NFT數字藏品鑄造系統開發原始碼案例

v_ch3nguang發表於2023-04-12

NFT 代表不可替代的代幣。 Non-fungible 是一個經濟學術語,可用於描述傢俱、歌曲檔案或計算機等事物。 這些專案不能與其他專案互換,因為它們具有惟一的屬性。

 

NFT 的所有權是透過其惟一的 ID 和無法複製的後設資料來管理的。 NFT 是透過分配所有權和管理 NFT 可轉讓性的智慧合約 鑄造 的。當有人建立或鑄造 NFT 時,他們會執行儲存在符合不同標準的智慧合約中的程式碼。該資訊被新增到管理 NFT 的區塊鏈中。從高層次來看,鑄幣過程有以下步驟:

 

建立一個新塊

驗證資訊

將資訊記錄到區塊鏈中

NFT 具有一些特殊屬性:

 

鑄造的每個代幣都有一個惟一識別符號,該識別符號直接連結到一個以太坊地址。

它們不能直接與其他代幣 1:1 互換。例如, 1 ETH 與另一個 ETH 完全相同。

NFT 不是這種情況 每個令牌都有一個所有者,並且此資訊很容易驗證。

它們 以太坊上,可以在任何基於以太坊的 NFT 市場上買賣。

 

NFT 數字藏品鑄造系統開發 原始碼示例

 

const tokenUri = await badge.tokenURI(1)

// console.log("tokenURI:")

// console.log(tokenUri)

 

const tokenId = 1

const data = base64.decode(tokenUri.slice(29))

const itemInfo = JSON.parse(data)

expect(itemInfo.name).to.be.equal('Badge #'+String(tokenId))

expect(itemInfo.description).to.be.equal('Badge NFT with on-chain SVG image.')

 

const svg = base64.decode(itemInfo.image.slice(26))

const idInSVG = svg.slice(256,-13)

expect(idInSVG).to.be.equal(String(tokenId))

// console.log("SVG image:")

// console.log(svg)

 

for(let i=1;i<=10;i++){

   await badge.mintTo(address1)

   const tokenUri = await badge.tokenURI(i)

 

   const data = base64.decode(tokenUri.slice(29))

   const itemInfo = JSON.parse(data)

   expect(itemInfo.name).to.be.equal('Badge #'+String(i))

   expect(itemInfo.description).to.be.equal('Badge NFT with on-chain SVG image.')

 

   const svg = base64.decode(itemInfo.image.slice(26))

   const idInSVG = svg.slice(256,-13)

   expect(idInSVG).to.be.equal(String(i))

}

 

expect(await badge.balanceOf(address1)).to.equal(10)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028290/viewspace-2945235/,如需轉載,請註明出處,否則將追究法律責任。

相關文章