/** * 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, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, type Account, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, } from '@solana/kit'; import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/kit'; import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU8Decoder, getU8Encoder, transformEncoder, type Codec, type Decoder, type Encoder, type ReadonlyUint8Array, } from '@solana/kit'; export const ADMIN_SINGLETON_DISCRIMINATOR = new Uint8Array([179, 22, 254, 245, 204, 230, 222, 194]); export function getAdminSingletonDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(ADMIN_SINGLETON_DISCRIMINATOR); } export type AdminSingleton = { discriminator: ReadonlyUint8Array; /** Guard admin */ admin: Address; /** Pending guard admin */ pendingAdmin: Address; /** PDA bump */ bump: number; }; export type AdminSingletonArgs = { /** Guard admin */ admin: Address; /** Pending guard admin */ pendingAdmin: Address; /** PDA bump */ bump: number; }; export function getAdminSingletonEncoder(): Encoder { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['admin', getAddressEncoder()], ['pendingAdmin', getAddressEncoder()], ['bump', getU8Encoder()], ]), (value) => ({ ...value, discriminator: ADMIN_SINGLETON_DISCRIMINATOR }), ); } export function getAdminSingletonDecoder(): Decoder { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['admin', getAddressDecoder()], ['pendingAdmin', getAddressDecoder()], ['bump', getU8Decoder()], ]); } export function getAdminSingletonCodec(): Codec { return combineCodec(getAdminSingletonEncoder(), getAdminSingletonDecoder()); } export function decodeAdminSingleton( encodedAccount: EncodedAccount, ): Account; export function decodeAdminSingleton( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeAdminSingleton( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): Account | MaybeAccount { return decodeAccount(encodedAccount as MaybeEncodedAccount, getAdminSingletonDecoder()); } export async function fetchAdminSingleton( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeAdminSingleton(rpc, address, config); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeAdminSingleton( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeAdminSingleton(maybeAccount); } export async function fetchAllAdminSingleton( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeAdminSingleton(rpc, addresses, config); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeAdminSingleton( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeAdminSingleton(maybeAccount)); } export function getAdminSingletonSize(): number { return 73; }