/** * 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 { DemocracyPtrRegistryEntrySeeds, findDemocracyPtrRegistryEntryPda, } from '../pdas'; import { getSystemIdDecoder, getSystemIdEncoder, type SystemId, type SystemIdArgs, } from '../types'; export const DEMOCRACY_PTR_REGISTRY_ENTRY_DISCRIMINATOR = new Uint8Array([ 191, 120, 121, 18, 234, 52, 27, 219, ]); export function getDemocracyPtrRegistryEntryDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( DEMOCRACY_PTR_REGISTRY_ENTRY_DISCRIMINATOR, ); } export type DemocracyPtrRegistryEntry = { discriminator: ReadonlyUint8Array; version: number; bump: number; domain: Array; catalog: Address; index: number; systemId: SystemId; system: Address; registry: Address; }; export type DemocracyPtrRegistryEntryArgs = { version: number; bump: number; domain: Array; catalog: Address; index: number; systemId: SystemIdArgs; system: Address; registry: Address; }; /** Gets the encoder for {@link DemocracyPtrRegistryEntryArgs} account data. */ export function getDemocracyPtrRegistryEntryEncoder(): FixedSizeEncoder { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['version', getU8Encoder()], ['bump', getU8Encoder()], ['domain', getArrayEncoder(getU8Encoder(), { size: 8 })], ['catalog', getAddressEncoder()], ['index', getU32Encoder()], ['systemId', getSystemIdEncoder()], ['system', getAddressEncoder()], ['registry', getAddressEncoder()], ]), (value) => ({ ...value, discriminator: DEMOCRACY_PTR_REGISTRY_ENTRY_DISCRIMINATOR, }), ); } /** Gets the decoder for {@link DemocracyPtrRegistryEntry} account data. */ export function getDemocracyPtrRegistryEntryDecoder(): FixedSizeDecoder { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['version', getU8Decoder()], ['bump', getU8Decoder()], ['domain', getArrayDecoder(getU8Decoder(), { size: 8 })], ['catalog', getAddressDecoder()], ['index', getU32Decoder()], ['systemId', getSystemIdDecoder()], ['system', getAddressDecoder()], ['registry', getAddressDecoder()], ]); } /** Gets the codec for {@link DemocracyPtrRegistryEntry} account data. */ export function getDemocracyPtrRegistryEntryCodec(): FixedSizeCodec< DemocracyPtrRegistryEntryArgs, DemocracyPtrRegistryEntry > { return combineCodec( getDemocracyPtrRegistryEntryEncoder(), getDemocracyPtrRegistryEntryDecoder(), ); } export function decodeDemocracyPtrRegistryEntry< TAddress extends string = string, >( encodedAccount: EncodedAccount, ): Account; export function decodeDemocracyPtrRegistryEntry< TAddress extends string = string, >( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeDemocracyPtrRegistryEntry< TAddress extends string = string, >( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getDemocracyPtrRegistryEntryDecoder(), ); } export async function fetchDemocracyPtrRegistryEntry< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeDemocracyPtrRegistryEntry( rpc, address, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyPtrRegistryEntry< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeDemocracyPtrRegistryEntry(maybeAccount); } export async function fetchAllDemocracyPtrRegistryEntry( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeDemocracyPtrRegistryEntry( rpc, addresses, config, ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeDemocracyPtrRegistryEntry( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeDemocracyPtrRegistryEntry(maybeAccount), ); } export async function fetchDemocracyPtrRegistryEntryFromSeeds( rpc: Parameters[0], seeds: DemocracyPtrRegistryEntrySeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const maybeAccount = await fetchMaybeDemocracyPtrRegistryEntryFromSeeds( rpc, seeds, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyPtrRegistryEntryFromSeeds( rpc: Parameters[0], seeds: DemocracyPtrRegistryEntrySeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const { programAddress, ...fetchConfig } = config; const [address] = await findDemocracyPtrRegistryEntryPda(seeds, { programAddress, }); return await fetchMaybeDemocracyPtrRegistryEntry(rpc, address, fetchConfig); }