Expand description
Instructions and constructors for the system program.
The system program is responsible for the creation of accounts and nonce accounts. It is responsible for transferring lamports from accounts owned by the system program, including typical user wallet accounts.
Account creation typically involves three steps: allocate space,
transfer lamports for rent, assign to its owning program. The
create_account function does all three at once. All new accounts must
contain enough lamports to be rent exempt, or else the creation
instruction will fail.
The create_account function requires that the account have zero
lamports. create_account_allow_prefund allows for the account to have
lamports prefunded; note that without feature activation of SIMD-0312,
create_account_allow_prefund will fail downstream.
The accounts created by the System program can either be user-controlled, where the secret keys are held outside the blockchain, or they can be program derived addresses, where write access to accounts is granted by an owning program.
Most of the functions in this module construct an Instruction, that must
be submitted to the runtime for execution, either via RPC, typically with
RpcClient, or through cross-program invocation.
When invoking through CPI, the invoke or invoke_signed instruction
requires all account references to be provided explicitly as AccountInfo
values. The account references required are specified in the documentation
for the SystemInstruction variants for each System program instruction,
and these variants are linked from the documentation for their constructors.
Enums§
- System
Instruction - An instruction to the system program.
Functions§
- advance_
nonce_ account bincode - Advance the value of a durable transaction nonce.
- allocate
bincode - Allocate space for an account.
- allocate_
with_ seed bincode - assign
bincode - Assign ownership of an account from the system program.
- assign_
with_ seed bincode - authorize_
nonce_ account bincode - Change the authority of a durable transaction nonce account.
- create_
account bincode - Create an account.
- create_
account_ allow_ prefund bincode - Create a new account without enforcing zero lamports on the destination account.
- create_
account_ with_ seed bincode - create_
nonce_ account bincode - Create an account containing a durable transaction nonce.
- create_
nonce_ account_ with_ seed bincode - transfer
bincode - Transfer lamports from an account owned by the system program.
- transfer_
many bincode - Transfer lamports from an account owned by the system program to multiple accounts.
- transfer_
with_ seed bincode - upgrade_
nonce_ account bincode - One-time idempotent upgrade of legacy nonce versions in order to bump them out of chain blockhash domain.
- withdraw_
nonce_ account bincode - Withdraw lamports from a durable transaction nonce account.