2024-08-15|閱讀時間 ‧ 約 28 分鐘

從 0 開始,結合 Anchor 打造 NFT 鑄造功能的 Action & Blink (Part 2 合約撰寫)

合約設計

更新 Anchor.toml 的 file 使其符合 devnet 設置

[provider]
cluster = "devnet"
wallet = "~/.config/solana/{your_key}.json"

下載 @solana/spl-token

pnpm add @solana/spl-token

更新 Cargo.toml dependencies and features

[features]
idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"]

[dependencies]
anchor-lang = { version = "0.30.1", features = ["init-if-needed"] }
anchor-spl = {version = "0.30.1", features = ["metadata"]}
mpl-token-metadata = "4.1.2"

lib.rs 上,新增創建 NFT 的操作

加上合約測試(tests/action-example.ts)即可完成合約的撰寫部分

最後,我們來測試看看合約

假如錢包沒有錢,可以使用 solane config get 查看當前設定,然後運用 solana config set --url { Keypairs 位置 } 設定想要拿到 faucet 的帳號,最後使用 solana airdrop {數量} ,即可獲得 sol。
anchor test​

若出現下方結果,那麼恭喜你,成功 Mint 一個 NFT 了!!你也可以進一步點擊連結在explorer 上查看。



但是我要怎麼建置自己的 NFT 圖片 (實作 by Pinata)?

Pinata 是一個免費的集成服務,使得在 IPFS 上存儲和檢索媒體變得簡單。如果你還們有帳戶可以點擊上方連結註冊。
  1. 準備一張喜歡的圖片


  1. 上傳圖片至IPFS系統
  1. 完成上傳後,取得圖片 CID
  1. 建立新的 json file 依照底下格式填入值
{
"name": {your name},
"symbol": {your symbol},
"description": {your description},
"external_url": {your url},
"seller_fee_basis_points": 0,
"image": "https://gateway.pinata.cloud/ipfs/{your CID}",
"attributes": [
{
"trait_type": {any type you want},
"value": {any value you want}
}
],
"properties": {
"files": [
{
"uri": "https://gateway.pinata.cloud/ipfs/{your CID}",
"type": "image/png"
}
],
"category": "image"
}
}
  1. 再次上傳 Json 至IPFS系統,並獲取 CID
https://gateway.pinata.cloud/ipfs/{CID} ex.https://gateway.pinata.cloud/ipfs/QmWqzpzBGQyEi3CN4EcDDxKY7cU2Y2SXcuKESkfomG1KBy
  1. 將 URL 和想要的 Name 和 Symbol 更新到 tests/action-example.ts ,然後再 Mint 一次即可獲得想要的圖片和名稱。

最終,我們成功拿到了自己定義的 NFT !!!!!





分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.