* Partial revert "Updates documentation around what needs to be passed in CPI. (#21633)"

* Enforces the program_id being passed explicitly by removing it from get_instruction_keyed_accounts().

* instruction_accounts => instructions_account
This commit is contained in:
Alexander Meißner
2021-12-21 12:53:22 +01:00
committed by GitHub
parent 41ec7c8be9
commit ba8e15848e
5 changed files with 35 additions and 21 deletions

View File

@ -54,8 +54,12 @@ mod acme {
`invoke()` is built into Solana's runtime and is responsible for routing the
given instruction to the `token` program via the instruction's `program_id`
field. The caller has to pass all the accounts required by the instruction
being invoked, except for the executable account (with the key `program_id`).
field.
Note that `invoke` requires the caller to pass all the accounts required by the
instruction being invoked. This means that both the executable account (the
ones that matches the instruction's program id) and the accounts passed to the
instruction processor.
Before invoking `pay()`, the runtime must ensure that `acme` didn't modify any
accounts owned by `token`. It does this by applying the runtime's policy to the