pub struct Initialize {
pub program_id: Pubkey,
pub payer: Pubkey,
pub state_pda: Pubkey,
pub native_sol_buffer: Pubkey,
pub manager: Pubkey,
pub solver_authority: Pubkey,
pub reclaim_authority: Pubkey,
pub settlement_owned_order_authority: Pubkey,
}Expand description
Builder for an Initialize instruction.
payer funds the new accounts’ rent and signs. It must be INITIALIZER. It
is meant to be the transaction’s fee payer: the state is created once at
deployment and never deallocated, so there’s no need for a dedicated
funding account separate from whoever pays for the deployment transaction.
state_pda must be the settlement state PDA (see
crate::pda::state::find_state_pda) and native_sol_buffer must be the
native SOL buffer PDA (see
crate::pda::buffer::find_native_sol_buffer_pda); the program rejects any
other address.
All data input accounts are recorded verbatim in the state PDA’s data: the
account authorized to transfer any role, the account authorized to add and
remove solvers, the account authorized to reclaim rent for buffers, and the
account authorized to place settlement-owned orders. See
crate::data::state::StateAccount.
Both accounts are owned by the settlement program; the native SOL buffer holds no data. This instruction succeeds only once: a second call fails because the accounts already exist.
Wire format: [discriminator=3, manager (32 bytes), solver_authority (32 bytes), reclaim_authority (32 bytes), settlement_owned_order_authority (32 bytes)], 129 bytes. Required accounts: [payer (W,S), state_pda (W), native_sol_buffer (W), system_program (R)]. The system program must be
available for the CreateAccount CPI but doesn’t need to sit at that
specific position.
Fields§
§program_id: Pubkey§payer: Pubkey§state_pda: Pubkey§native_sol_buffer: Pubkey§manager: Pubkey