diff --git a/tests/misc/programs/misc/src/context.rs b/tests/misc/programs/misc/src/context.rs index 8b3bb0ed2b..a681df3a04 100644 --- a/tests/misc/programs/misc/src/context.rs +++ b/tests/misc/programs/misc/src/context.rs @@ -342,4 +342,7 @@ pub struct TestConstArraySize<'info> { pub struct TestProgramIdConstraint<'info> { #[account(seeds = [b"seed"], bump, program_seed = anchor_spl::associated_token::ID)] associated_token_account: AccountInfo<'info>, + + #[account(seeds = [b"seed"], bump, program_seed = crate::ID)] + other_account: AccountInfo<'info>, } diff --git a/tests/misc/tests/misc.js b/tests/misc/tests/misc.js index c646708eeb..cb3adf7afd 100644 --- a/tests/misc/tests/misc.js +++ b/tests/misc/tests/misc.js @@ -1301,11 +1301,16 @@ describe("misc", () => { }); it("Can validate PDAs derived from other program ids", async () => { + const [ourPda, ourPdaBump] = await anchor.web3.PublicKey.findProgramAddress( + [Buffer.from("seed")], + program.programId + ); const wrongAddress = anchor.web3.Keypair.generate().publicKey; try { await program.rpc.testProgramIdConstraint(123, { accounts: { associatedTokenAccount: wrongAddress, + otherAccount: ourPda, }, }); assert.ok(false); @@ -1322,6 +1327,7 @@ describe("misc", () => { await program.rpc.testProgramIdConstraint(wrongBump, { accounts: { associatedTokenAccount: wrongProgramIdPDA, + otherAccount: ourPda, }, }); assert.ok(false); @@ -1337,6 +1343,7 @@ describe("misc", () => { await program.rpc.testProgramIdConstraint(rightBump, { accounts: { associatedTokenAccount: rightProgramIdPDA, + otherAccount: ourPda, }, }); });