/** * This code was AUTOGENERATED using the codama library. * Please DO NOT EDIT THIS FILE, instead use visitors * to add features, then rerun codama to update it. * * @see https://github.com/codama-idl/codama */ import { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBooleanDecoder, getBooleanEncoder, getStructDecoder, getStructEncoder, getU8Decoder, getU8Encoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, } from '@solana/kit'; export type Multisig = { /** Number of signers required. */ m: number; /** Number of valid signers. */ n: number; /** Is `true` if this structure has been initialized. */ isInitialized: boolean; /** Signer public keys. */ signers: Array
; }; export type MultisigArgs = Multisig; export function getMultisigEncoder(): FixedSizeEncoder { return getStructEncoder([ ['m', getU8Encoder()], ['n', getU8Encoder()], ['isInitialized', getBooleanEncoder()], ['signers', getArrayEncoder(getAddressEncoder(), { size: 11 })], ]); } export function getMultisigDecoder(): FixedSizeDecoder { return getStructDecoder([ ['m', getU8Decoder()], ['n', getU8Decoder()], ['isInitialized', getBooleanDecoder()], ['signers', getArrayDecoder(getAddressDecoder(), { size: 11 })], ]); } export function getMultisigCodec(): FixedSizeCodec { return combineCodec(getMultisigEncoder(), getMultisigDecoder()); } export function decodeMultisig( encodedAccount: EncodedAccount ): Account; export function decodeMultisig( encodedAccount: MaybeEncodedAccount ): MaybeAccount; export function decodeMultisig( encodedAccount: EncodedAccount | MaybeEncodedAccount ): Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getMultisigDecoder() ); } export async function fetchMultisig( rpc: Parameters[0], address: Address, config?: FetchAccountConfig ): Promise> { const maybeAccount = await fetchMaybeMultisig(rpc, address, config); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeMultisig( rpc: Parameters[0], address: Address, config?: FetchAccountConfig ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeMultisig(maybeAccount); } export async function fetchAllMultisig( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig ): Promise[]> { const maybeAccounts = await fetchAllMaybeMultisig(rpc, addresses, config); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeMultisig( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeMultisig(maybeAccount)); } export function getMultisigSize(): number { return 355; }