如何使用 Rust 和 Metaplex 在 Solana 上铸造 NFT

本文详细介绍了如何在Solana区块链上使用Rust和Metaplex框架铸造NFT。从Solana开发提示、项目概述到具体的步骤,包括设置开发环境、编写Mint函数、调用Mint函数等,文章提供了清晰的指导。通过跟随教程,开发者可以了解在Solana生态系统中创建NFT的过程。
摘要由CSDN通过智能技术生成

如何使用 Rust 和 Metaplex 在 Solana 上铸造 NFT

未标题-3

solana nfts

在这一篇文章中,我们将学习如何编写一个自定义合约,并且只需要四个步骤就可以生成NFT。

关于Solana开发的一些提示

在Solana的开发过程中,我们会遇到很多奇怪的自定义错误和bug,因为Solana的开发生态系统不像以太坊的开发生态系统那么大,所以修复它们会非常困难和令人沮丧。但不用担心。当我们陷入困境时,我们只需要在正确的地方寻找解决方案。

项目概述

我们将使用的工具:

  • Solana CLI工具——Solana 官方 CLI工具集
  • Anchor Framework—— 开发Solana项目的高级框架
  • Solana/web3.js——web3.js的Solana版本
  • Solana/ spla -token ——一个使用spl代币的包
  • Mocha——一个JS测试工具

现在开始

准备工作

在CLI中使用如下命令设置网络为devnet:

solana config set --url devnet

要确认它是否工作,然后输入cmd后检查输出:

Config File: /Users/anoushkkharangate/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /Users/anoushkkharangate/.config/solana/id.json
Commitment: confirmed

接下来,如果还没有设置的话,我们是需要设置文件系统钱包的,并使用命令Solana airdrop 1添加一些devnet sol。

最后,使用anchor CLI 命令行创建一个anchor 项目:

anchor init

确保Anchor.toml也被设置为devnet。

[features]
seeds = false
[programs.devnet]
metaplex_anchor_nft = "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"
[registry]
url = "https://anchor.projectserum.com"
[provider]
cluster = "devnet"
wallet = "/Users/<user-name>/.config/solana/id.json"
[scripts]
test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"

步骤1. 导入依赖项

在我们的项目中,必须有一个名为programs的文件夹。转到programs/<your-project-name>/Cargo.toml并添加这些依赖项。确保使用0.22.1版本,并且可以使用avm来更改它。

[dependencies]
anchor-lang = “0.22.1”
anchor-spl = “0.22.1”
mpl-token-metadata = {version = “1.2.5”, features = [“no-entrypoint”]}

不要使用最新版本的anchor ,因为anchor会延迟使用最新版本的Solana程序进行自我更新,所以它可能会导致mpl crate 和 anchor crate 的依赖需求之间的冲突。

然后转到lib.rssrc 中的文件并导入这些:

use anchor_lang::prelude:😗;
use anchor_lang::solana_program::program::invoke;
use anchor_spl::token;
use anchor_spl::token::{MintTo, Token};
use mpl_token_metadata::instruction::{create_master_edition_v3, create_metadata_accounts_v2};

现在我们可以编写mint函数了!

步骤2. 编写Mint函数结构

首先,让我们为mint函数创建accounts结构

#[derive(Accounts)]
pub struct MintNFT<'info> {
    #[account(mut)]
    pub mint_authority: Signer<'info>,
/// CHECK: This is not dangerous because we don't read or write from this account
    #[account(mut)]
    pub mint: UncheckedAccount<'info>,
    // #[account(mut)]
    pub token_pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值