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.
:: a typeCtrl KGHC 9.14.1 · lts/ghc-9.14.x · d82dee8 · 2026-10-12
Modulesolana-haskell-sdk-1.3.0.0GHC2021
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.
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.
Upgradeable BPF loader program instructions.
Eq UpgradeableLoaderInstructionDefined in solana-haskell-sdk-1.3.0.0 · Network.Solana.NativePrograms.BpfLoaderUpgradeableShow UpgradeableLoaderInstructionDefined in solana-haskell-sdk-1.3.0.0 · Network.Solana.NativePrograms.BpfLoaderUpgradeableGeneric UpgradeableLoaderInstructionDefined in solana-haskell-sdk-1.3.0.0 · Network.Solana.NativePrograms.BpfLoaderUpgradeableBinary UpgradeableLoaderInstructionDefined in solana-haskell-sdk-1.3.0.0 · Network.Solana.NativePrograms.BpfLoaderUpgradeabletype Rep UpgradeableLoaderInstruction = D1 ('MetaData "UpgradeableLoaderInstruction"
"Network.Solana.NativePrograms.BpfLoaderUpgradeable"
"solana-haskell-sdk-1.3.0.0-JMJNnl7jmEh90dthY33ZzW"
'False) (((C1 ('MetaCons "InitializeBuffer"
'PrefixI 'False) U1 :+: C1 ('MetaCons "Write"
'PrefixI 'True) (S1 ('MetaSel ('Just "wOffset"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just "wBytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))) :+: (C1 ('MetaCons "DeployWithMaxDataLen"
'PrefixI 'True) (S1 ('MetaSel ('Just "dMaxDataLen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :+: C1 ('MetaCons "Upgrade"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons "SetAuthority"
'PrefixI 'False) U1 :+: C1 ('MetaCons "Close"
'PrefixI 'False) U1) :+: (C1 ('MetaCons "ExtendProgram"
'PrefixI 'True) (S1 ('MetaSel ('Just "eAdditionalBytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :+: C1 ('MetaCons "SetAuthorityChecked"
'PrefixI 'False) U1)))Defined in solana-haskell-sdk-1.3.0.0 · Network.Solana.NativePrograms.BpfLoaderUpgradeablebincode decodes a Rust Vecu8 as a u64 little-endian byte length followed by that many raw bytes.
Derives the ProgramData account address for a given program: the PDA of
[program] under the upgradeable BPF loader.
Creates instruction to "Initialize a Buffer account" Receives the uninitialized buffer account and its authority. # Account references 0. `[WRITE]` Source account to initialize 1. `[]` Buffer authority
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