HORIZON HASKELLDocslts/ghc-9.14.xd82dee82026-10-12Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · d82dee8 · 2026-10-12

Modulesolana-haskell-sdk-1.3.0.0GHC2021

Network.Solana.NativePrograms.BpfLoaderUpgradeable

Client for the Upgradeable BPF Loader program (loader-v3). Instruction data is bincode-encoded (u32 little-endian discriminant), like the System Program; the Write variant's byte vector is bincode's Vec<u8> encoding (u64 little-endian length followed by the raw bytes).

Rust's composite helpers (create_buffer, deploy_with_max_program_len) are deliberately not mirrored: compose them from the System Program client (createAccount) plus initializeBuffer / deployWithMaxDataLen.

  • 1 type
  • 12 values

Upgradeable BPF loader program address.

Named after the Rust SDK's bpf_loader_upgradeable module rather than the ...ProgramId convention used elsewhere in this SDK; kept intentionally for symmetry with upstream.

Instances5Eq, Show, Generic, Binary, Rep

Creates instruction to "Write program data into a Buffer account" Receives the buffer account, its authority (which must sign), the byte offset and the bytes to write. # Account references 0. `[WRITE]` Buffer account to write to 1. `[SIGNER]` Buffer authority

Creates instruction to "Deploy an executable program" Receives the payer, the uninitialized ProgramData account, the uninitialized Program account, the Buffer account holding the deployed program data, the authority (which must sign) and the maximum length in bytes the program can be upgraded to. # Account references 0. `[WRITE, SIGNER]` Payer account 1. `[WRITE]` ProgramData account 2. `[WRITE]` Program account 3. `[WRITE]` Buffer account 4. `[]` Rent sysvar 5. `[]` Clock sysvar 6. `[]` System program 7. `[SIGNER]` Authority

Creates instruction to "Upgrade a program" Receives the ProgramData account, the Program account, the Buffer account holding the new program data, the spill account (which receives excess lamports) and the authority (which must sign). # Account references 0. `[WRITE]` ProgramData account 1. `[WRITE]` Program account 2. `[WRITE]` Buffer account 3. `[WRITE]` Spill account 4. `[]` Rent sysvar 5. `[]` Clock sysvar 6. `[SIGNER]` Authority

Creates instruction to "Set a new authority" Receives the account whose authority is being changed, the current authority (which must sign) and the new authority. # Account references 0. `[WRITE]` Buffer or ProgramData account 1. `[SIGNER]` Current authority 2. `[]` New authority

Creates instruction to "Set a new authority", checking that the new authority signs (a safer version of setAuthority). Receives the account whose authority is being changed, the current authority (which must sign) and the new authority (which must sign). # Account references 0. `[WRITE]` Buffer or ProgramData account 1. `[SIGNER]` Current authority 2. `[SIGNER]` New authority

Creates instruction to "Close an account" Receives the account to close, the recipient of its lamports, the authority (which must sign) and, when closing a ProgramData account, the associated Program account. # Account references 0. `[WRITE]` Account to close 1. `[WRITE]` Recipient account 2. `[SIGNER]` Authority 3. `[WRITE]` (optional) Associated Program account, if closing a ProgramData account

Creates instruction to "Extend a program's ProgramData account by the given number of bytes" Receives the ProgramData account, the Program account, an optional payer to fund the extension (the system program is always included alongside it), and the number of additional bytes. # Account references 0. `[WRITE]` ProgramData account 1. `[WRITE]` Program account 2. `[]` (optional) System program 3. `[WRITE, SIGNER]` (optional) Payer account