Quantcast
Channel: Recent Questions - Solana Stack Exchange
Viewing all articles
Browse latest Browse all 8246

signer privilege escalated when initial PDA

$
0
0
  for warrior_card_usage_ai in &ctx.remaining_accounts[0..warrior_cards_usage_len] {        if warrior_card_usage_ai.data_is_empty() {            msg!("creating warrior card usage account");            let rent_lamports = rent.minimum_balance(warrior_card_usage_data_len);            let cpi_accounts = CreateAccount {                from: ctx.accounts.payer.to_account_info(),                to: (*warrior_card_usage_ai).clone(),            };            let cpi_context = CpiContext::new(                ctx.accounts.system_program.to_account_info(),                cpi_accounts            );            msg!("Expected data length: {}", warrior_card_usage_data_len);            msg!("Minimum rent: {}", rent_lamports);            create_account(                cpi_context,                rent_lamports,                u64::try_from(warrior_card_usage_data_len).unwrap(),                ctx.program_id            )?;        }        let warrior_cards_usage: Account<WarriorCardsUsage> =            Account::try_from(warrior_card_usage_ai)?;        warrior_cards_usages.push(warrior_cards_usage);    }

That is my test code

   let [warriorCardsUsageTracker] = PublicKey.findProgramAddressSync(      [        attacker.publicKey.toBuffer(),        remainingAccountsMock[2].pubkey.toBuffer(),        Buffer.from("warritor_cards_usage_tracker"),      ],      program.programId    );

and pass it as remain account. but get FAy8Uq39nNtspAtnATYj4b543HjrVb9zTdKeYho5pqUZ's signer privilege escalated


Viewing all articles
Browse latest Browse all 8246

Latest Images

Trending Articles



Latest Images