1

Seeing some magic happening in the new address-lookup-table program. Code permalink

invoke_context.native_invoke(
    system_instruction::assign(&table_key, &crate::id()),
    &[table_key],
)?;

In this code the table_key is the signer, but table_key is a PDA. So where are the PD seeds that are usually needed by invoke_signed? None of the code in native_invoke adds a signature.

Is this some quirk of solana core programs that they can sign for PDAs without the seeds?

1 Answer 1

1

Is this some quirk of solana core programs that they can sign for PDAs without the seeds?

This is the answer. When you have direct access to the invoke context in a native (non-BPF) environment, you can do many more things. This is why the PDA check is done explicitly before these other calls.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.