Getting this error white deploying the program on devnet using anchor deploy. I am writing the program for minting the tokens:-
Recover the intermediate account's ephemeral keypair file with
solana-keygen recover
and the following 12-word seed phrase:
shadow ship foam shop side aisle feel congress long dash what exercise
To resume a deploy, pass the recovered keypair as the
[BUFFER_SIGNER] to solana program deploy
or solana program write-buffer'. Or to recover the account's lamports, pass it as the [BUFFER_ACCOUNT_ADDRESS] argument to
solana program close`.
Error: Deploying program failed: RPC response error -32002: Transaction simulation failed: Error processing Instruction 0: account data too small for instruction [3 log messages] There was a problem deploying: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }.
#![allow(clippy::result_large_err)]
use {
anchor_lang::prelude::*,
anchor_spl::{
associated_token::AssociatedToken,
metadata::{
create_metadata_accounts_v3, mpl_token_metadata::types::DataV2,
CreateMetadataAccountsV3, Metadata,
},
token::{mint_to, Mint, MintTo, Token, TokenAccount},
},
};
declare_id!("6SoLn7evYbz9YPHCyh5CsVifCax3WhZwUFoc9Vyaoqoi");
#[program]
pub mod marketplace {
use super::*;
pub fn mint_nft(
ctx: Context<CreateToken>,
nft_name: String,
nft_symbol: String,
nft_uri: String,
) -> Result<()> {
msg!("Minting Tokens");
mint_to(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
MintTo {
mint: ctx.accounts.mint_account.to_account_info(),
to: ctx.accounts.associated_token_account.to_account_info(),
authority: ctx.accounts.payer.to_account_info(),
},
),
1,
)?;
msg!("Creating metadata account");
create_metadata_accounts_v3(
CpiContext::new(
ctx.accounts.token_metadata_program.to_account_info(),
CreateMetadataAccountsV3 {
metadata: ctx.accounts.metadata_account.to_account_info(),
mint: ctx.accounts.mint_account.to_account_info(),
mint_authority: ctx.accounts.payer.to_account_info(),
update_authority: ctx.accounts.payer.to_account_info(),
payer: ctx.accounts.payer.to_account_info(),
system_program: ctx.accounts.system_program.to_account_info(),
rent: ctx.accounts.rent.to_account_info(),
},
),
DataV2 {
name: nft_name,
symbol: nft_symbol,
uri: nft_uri,
seller_fee_basis_points: 0,
creators: None,
collection: None,
uses: None,
},
false,
true,
None,
)?;
msg!("NFT minted successfully");
Ok(())
}
}
#[derive(Accounts)]
pub struct CreateToken<'info> {
#[account(mut)]
pub payer: Signer<'info>,
/// CHECK: Validate address by deriving pda
#[account(
mut,
seeds = [b"metadata", token_metadata_program.key().as_ref(), mint_account.key().as_ref()],
bump,
seeds::program = token_metadata_program.key(),
)]
pub metadata_account: UncheckedAccount<'info>,
#[account(
init,
payer = payer,
mint::decimals = 0,
mint::authority = payer.key(),
mint::freeze_authority = payer.key(),
)]
pub mint_account: Account<'info, Mint>,
#[account(
init_if_needed,
payer = payer,
associated_token::mint = mint_account,
associated_token::authority = payer,
)]
pub associated_token_account: Account<'info, TokenAccount>,
pub token_program: Program<'info, Token>,
pub token_metadata_program: Program<'info, Metadata>,
pub associated_token_program: Program<'info, AssociatedToken>,
pub system_program: Program<'info, System>,
pub rent: Sysvar<'info, Rent>,
}