/** * 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, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU8Decoder, getU8Encoder, transformEncoder, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array, } from '@solana/kit'; import { DemocracyPtrRegistryMemberSeeds, findDemocracyPtrRegistryMemberPda, } from '../pdas'; export const DEMOCRACY_PTR_REGISTRY_MEMBER_DISCRIMINATOR = new Uint8Array([ 217, 200, 82, 191, 120, 212, 145, 199, ]); export function getDemocracyPtrRegistryMemberDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( DEMOCRACY_PTR_REGISTRY_MEMBER_DISCRIMINATOR, ); } export type DemocracyPtrRegistryMember = { discriminator: ReadonlyUint8Array; version: number; bump: number; domain: Array; catalog: Address; registry: Address; index: number; }; export type DemocracyPtrRegistryMemberArgs = { version: number; bump: number; domain: Array; catalog: Address; registry: Address; index: number; }; /** Gets the encoder for {@link DemocracyPtrRegistryMemberArgs} account data. */ export function getDemocracyPtrRegistryMemberEncoder(): FixedSizeEncoder { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['version', getU8Encoder()], ['bump', getU8Encoder()], ['domain', getArrayEncoder(getU8Encoder(), { size: 8 })], ['catalog', getAddressEncoder()], ['registry', getAddressEncoder()], ['index', getU32Encoder()], ]), (value) => ({ ...value, discriminator: DEMOCRACY_PTR_REGISTRY_MEMBER_DISCRIMINATOR, }), ); } /** Gets the decoder for {@link DemocracyPtrRegistryMember} account data. */ export function getDemocracyPtrRegistryMemberDecoder(): FixedSizeDecoder { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['version', getU8Decoder()], ['bump', getU8Decoder()], ['domain', getArrayDecoder(getU8Decoder(), { size: 8 })], ['catalog', getAddressDecoder()], ['registry', getAddressDecoder()], ['index', getU32Decoder()], ]); } /** Gets the codec for {@link DemocracyPtrRegistryMember} account data. */ export function getDemocracyPtrRegistryMemberCodec(): FixedSizeCodec< DemocracyPtrRegistryMemberArgs, DemocracyPtrRegistryMember > { return combineCodec( getDemocracyPtrRegistryMemberEncoder(), getDemocracyPtrRegistryMemberDecoder(), ); } export function decodeDemocracyPtrRegistryMember< TAddress extends string = string, >( encodedAccount: EncodedAccount, ): Account; export function decodeDemocracyPtrRegistryMember< TAddress extends string = string, >( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeDemocracyPtrRegistryMember< TAddress extends string = string, >( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getDemocracyPtrRegistryMemberDecoder(), ); } export async function fetchDemocracyPtrRegistryMember< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeDemocracyPtrRegistryMember( rpc, address, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyPtrRegistryMember< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeDemocracyPtrRegistryMember(maybeAccount); } export async function fetchAllDemocracyPtrRegistryMember( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeDemocracyPtrRegistryMember( rpc, addresses, config, ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeDemocracyPtrRegistryMember( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeDemocracyPtrRegistryMember(maybeAccount), ); } export async function fetchDemocracyPtrRegistryMemberFromSeeds( rpc: Parameters[0], seeds: DemocracyPtrRegistryMemberSeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const maybeAccount = await fetchMaybeDemocracyPtrRegistryMemberFromSeeds( rpc, seeds, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyPtrRegistryMemberFromSeeds( rpc: Parameters[0], seeds: DemocracyPtrRegistryMemberSeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const { programAddress, ...fetchConfig } = config; const [address] = await findDemocracyPtrRegistryMemberPda(seeds, { programAddress, }); return await fetchMaybeDemocracyPtrRegistryMember(rpc, address, fetchConfig); }