久久色播_色综合久久久久久久久久久_欧美.com_97中文在线_天堂在线资源库_久久成人视屏

okx

NFT商城系統2022年主要功能部署

時間:2023-06-21|瀏覽:308

2022年開發NFT商城系統市場技術主要功能部署

我們創建合約、鑄造代幣、構建應用程序以查看通過該合約生成的NFT以及創建市場以將NFT轉移給其他用戶的示例。讓我們從合約的創建和代幣鑄造開始。

設置工具

在您的系統上安裝FlowCLI。根據不同的操作系統,有不同的命令用于安裝CLI。

例如,要在macOS上安裝FlowCLI,請使用以下命令: ``` brew install flow-cli ```

在Windows上: ``` iex "$(irm 'https://storage.googleapis.com/flow-cli/install.ps1')" ```

在Linux上: ``` sh -ci "$(curl -fsSL https://storage.googleapis.com/flow-cli/install.sh)" ```

資產文件將存儲在IPFS上。在這個例子中,我們將使用Pinata來存儲文件。您可以在此處注冊免費帳戶并獲取API密鑰。安裝NodeJS和文本編輯器以突出顯示Flow智能合約代碼也很重要。

第二步是使用命令為項目創建目錄: ``` mkdir pinata-party ``` 初始化一個新的Flow項目并將其更改為該目錄: ``` cd pinata-party ```

現在,在代碼編輯器中打開項目,讓我們開始工作。首先,創建一個名為cadence的文件夾。在該文件夾中添加另一個名為contracts的文件夾。最后,在名為PinataPartyContract.cdc的合同文件夾中創建一個文件。

在繼續之前,有必要指出我們對Flow區塊鏈平臺所做的一切。為模擬器環境設置文件,然后我們就可以開始編寫合約了。我們需要使用以下代碼更新flow.json中的合約對象: ``` "contracts": { "PinataPartyContract": "./cadence/contracts/PinataPartyContract.cdc" } ``` 使用以下代碼更新該文件中的部署對象: ``` "deployments": { "emulator": { "emulator-account": [ "PinataPartyContract" ] } } ``` 它將使FlowCLI能夠使用模擬器來部署我們的合約。該代碼還引用了我們即將編寫的帳戶和合約。

合約

我們需要創建用于鑄造NFT的合約,將元數據與NFT相關聯,并確保元數據指向存儲在IPFS上的基礎資產。

打開PinataPartyContract.cdc并執行以下代碼: ``` contract PinataPartyContract { pub resource NFT { pub let id: UInt64

init(initID: UInt64) { self.id = initID } } } ``` 第一步是定義合同。讓我們從定義PinataPartyContract開始并在其中創建一個資源。資源是保存在用戶帳戶中的項目,可通過訪問控制措施訪問。NFT需要可識別,并且id屬性允許您識別令牌。

然后,創建一個資源接口來定義哪些功能可供其他人使用。 ``` pub resource interface NFTReceiver { pub fun deposit(token: @NFT, metadata: {String: String}) pub fun getIDs: [UInt64] pub fun idExists(id: UInt64): Bool pub fun getMetadata(id: UInt64): {String: String} } ``` 將上述代碼放在NFT資源代碼下方。NFTReceiver資源接口表示資源可以調用以下方法: - 獲取ID - 身份存在 - 存款 - 獲取元數據

然后,我們必須定義令牌收集接口。將其視為存儲所有用戶的NFT的錢包。 ``` pub resource collection: NFTReceiver { pub var ownedNFTs: @{UInt64: NFT} pub var metadataObjs: {UInt64: {String: String}}

init { self.ownedNFTs = {} self.metadataObjs = {} }

pub fun deposit(token: @NFT, metadata: {String: String}) { self.metadataObjs[token.id] = metadata self.ownedNFTs[token.id] <- token }

pub fun idExists(id: UInt64): Bool { return self.ownedNFTs[id] != nil }

// ... } ``` 變量ownedNFTs跟蹤用戶可以從接觸者擁有的所有NFT。一個名為metadataObjs的變量是獨一無二的,因為我們正在擴展FlowNFT合約功能以存儲每個NFT的元數據映射。它將令牌id映射到其相關的元數據,這意味著在我們設置之前需要令牌id。變量被初始化以在Flow中的資源中定義它們。

最后,我們將擁有NFT集合資源所需的所有可用功能。默認NFT合約被擴展為包含metadataObjs映射的方式,我們將擴展默認存款函數以采用額外的元數據參數。這樣做是為了確保只有令牌鑄幣者才能將元數據添加到令牌中。我們將最初添加的元數據限制在鑄幣執行中,以保持其私密性。在Collection資源下添加以下代碼: ``` pub resource NFTMinter { pub var idCount: UInt64

init { self.idCount = 1 }

pub fun mintNFT(): @NFT { let newNFT <- create NFT(initID: self.idCount) self.idCount = self.idCount + 1 as UInt64 return <-newNFT } } ``` 首先,我們將有一個函數在調用時創建一個空的NFT集合。與合約交互的用戶將擁有一個映射定義的Collection資源的存儲位置。之后我們將再創建一個資源。沒有它,我們就無法鑄造代幣。NFTMinter包含一個每次都會增加的idCount,以確保我們沒有NFT的重復id。它還包含創建NFT的功能。在NFTMinter資源下方添加主合約初始化程序: ``` init { self.account.save(<-self.createEmptyCollection, to: /storage/NFTCollection) self.account.link<&NFTReceiver>(/public/NFTReceiver, target: /storage/NFTCollection) self.account.save(<-self.createNFTMinter, to: /storage/NFTMinter) } ``` 初始化函數僅在部署合約時調用。它執行三件事: - 為集合部署者創建一個空集合,以便所有者合約可以從合約中創建和擁有NFT。 - NFTMinter資源存儲在合約創建者的

熱點:NFT nft商城 發nft 開發nft

« 上一條| 下一條 »
區塊鏈交流群
數藏交流群

合作伙伴

去玩唄SPA 谷歌留痕代發Google留痕技術 黃金行情 借春秋 趣玩幣 玩合約 秒懂域名 非小號行情 培訓資訊網 裝修裝飾網 聚幣網 旅游資訊網 今日黃金 谷歌seo網站優化 減肥瘦身吧 愛網站 幣圈官網 代特幣圈 天天財富 借春秋財經 寶寶起名 幣圈論壇 皮卡丘資訊 百悅米 金色幣圈 茶百科 百科書庫 媽媽知道 谷歌留痕代發 周公解夢 談股票 幣圈交流群 玩票票財經 美白沒斑啦 兼職信息網 谷歌留痕 元宇宙Web 幣圈ICO官網
在區塊鏈世界中,智能合約不僅是代碼的信任,更是商業的革命。通過了解其在供應鏈、版權保護等領域的應用,您將真正體驗到智能合約的無限可能性
區塊鏈世界GxPiKaQiu.com ?2020-2024版權所有 桂ICP備16002597號-2
主站蜘蛛池模板: 在线免费观看亚洲 | 日韩一级电影 | 69亚洲视频| 国产特黄一级 | 亚洲国产精品女人久久久 | 欧美xxxx性 | 日本一区二区三区免费播放 | av久久久| 亚洲免费中文字幕 | 精品二区 | 蜜桃视频一区二区 | 精品视频一区二区 | 久久不射网站 | 中文字幕一区二区三区在线视频 | 亚洲精品国产成人 | 黄色网入口 | 91精品国产91久久久久久最新 | 婷婷成人精品视频在线观看 | 久久久久久久女女女又又 | 黄色片一级免费看 | 亚洲一区二区视频在线 | 色综合精品 | 久久精品视频网站 | 国产成人精品不卡 | 成年网站在线 | 中文字幕亚洲精品 | 欧美亚洲激情 | 国产一区二区三区免费视频 | 美女黄色在线观看 | 麻豆视频在线播放 | 国产精品一区在线 | 久久一二 | 免费a网 | 玖玖玖国产精品 | 久久久久久久国产精品 | 久久成 | 日韩精品在线一区二区 | 欧美日韩亚洲综合 | 日韩精品视频免费 | 国产精品第一区 | 欧美国产在线观看 |