logo

NFT数字藏品铸造系统开发应用源码示例

作者:薇ch3nguang2023.04.13 17:33浏览量:102

简介:NFT 代表不可替代的代币。Non-fungible 是一个经济学术语,可用于描述家具、歌曲文件

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)

相关文章推荐

发表评论