/** * 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, getU64Decoder, getU64Encoder, 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 { DemocracyPtrAllocationSeeds, findDemocracyPtrAllocationPda, } from '../pdas'; export const DEMOCRACY_PTR_ALLOCATION_DISCRIMINATOR = new Uint8Array([ 122, 143, 85, 43, 64, 27, 117, 239, ]); export function getDemocracyPtrAllocationDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( DEMOCRACY_PTR_ALLOCATION_DISCRIMINATOR, ); } export type DemocracyPtrAllocation = { discriminator: ReadonlyUint8Array; version: number; bump: number; domain: Array; root: Address; historyGeneration: Address; gameId: Address; system: Address; starbaseSeqId: bigint; governance: Address; migration: Address; cutover: Address; revision: bigint; status: number; reservedPvp: bigint; activePvp: bigint; pendingPvp: bigint; activeCurveVersion: number; activeHousingMapVersion: number; pendingCurveVersion: number; pendingHousingMapVersion: number; effectiveDay: bigint; lastSettledDay: bigint; backingSetRevision: bigint; sourceCount: number; crew: bigint; housingQuantities: Array; pendingTargetDigest: Array; }; export type DemocracyPtrAllocationArgs = { version: number; bump: number; domain: Array; root: Address; historyGeneration: Address; gameId: Address; system: Address; starbaseSeqId: number | bigint; governance: Address; migration: Address; cutover: Address; revision: number | bigint; status: number; reservedPvp: number | bigint; activePvp: number | bigint; pendingPvp: number | bigint; activeCurveVersion: number; activeHousingMapVersion: number; pendingCurveVersion: number; pendingHousingMapVersion: number; effectiveDay: number | bigint; lastSettledDay: number | bigint; backingSetRevision: number | bigint; sourceCount: number; crew: number | bigint; housingQuantities: Array; pendingTargetDigest: Array; }; /** Gets the encoder for {@link DemocracyPtrAllocationArgs} account data. */ export function getDemocracyPtrAllocationEncoder(): FixedSizeEncoder { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['version', getU8Encoder()], ['bump', getU8Encoder()], ['domain', getArrayEncoder(getU8Encoder(), { size: 8 })], ['root', getAddressEncoder()], ['historyGeneration', getAddressEncoder()], ['gameId', getAddressEncoder()], ['system', getAddressEncoder()], ['starbaseSeqId', getU64Encoder()], ['governance', getAddressEncoder()], ['migration', getAddressEncoder()], ['cutover', getAddressEncoder()], ['revision', getU64Encoder()], ['status', getU8Encoder()], ['reservedPvp', getU64Encoder()], ['activePvp', getU64Encoder()], ['pendingPvp', getU64Encoder()], ['activeCurveVersion', getU32Encoder()], ['activeHousingMapVersion', getU32Encoder()], ['pendingCurveVersion', getU32Encoder()], ['pendingHousingMapVersion', getU32Encoder()], ['effectiveDay', getU64Encoder()], ['lastSettledDay', getU64Encoder()], ['backingSetRevision', getU64Encoder()], ['sourceCount', getU32Encoder()], ['crew', getU64Encoder()], ['housingQuantities', getArrayEncoder(getU64Encoder(), { size: 18 })], ['pendingTargetDigest', getArrayEncoder(getU8Encoder(), { size: 32 })], ]), (value) => ({ ...value, discriminator: DEMOCRACY_PTR_ALLOCATION_DISCRIMINATOR, }), ); } /** Gets the decoder for {@link DemocracyPtrAllocation} account data. */ export function getDemocracyPtrAllocationDecoder(): FixedSizeDecoder { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['version', getU8Decoder()], ['bump', getU8Decoder()], ['domain', getArrayDecoder(getU8Decoder(), { size: 8 })], ['root', getAddressDecoder()], ['historyGeneration', getAddressDecoder()], ['gameId', getAddressDecoder()], ['system', getAddressDecoder()], ['starbaseSeqId', getU64Decoder()], ['governance', getAddressDecoder()], ['migration', getAddressDecoder()], ['cutover', getAddressDecoder()], ['revision', getU64Decoder()], ['status', getU8Decoder()], ['reservedPvp', getU64Decoder()], ['activePvp', getU64Decoder()], ['pendingPvp', getU64Decoder()], ['activeCurveVersion', getU32Decoder()], ['activeHousingMapVersion', getU32Decoder()], ['pendingCurveVersion', getU32Decoder()], ['pendingHousingMapVersion', getU32Decoder()], ['effectiveDay', getU64Decoder()], ['lastSettledDay', getU64Decoder()], ['backingSetRevision', getU64Decoder()], ['sourceCount', getU32Decoder()], ['crew', getU64Decoder()], ['housingQuantities', getArrayDecoder(getU64Decoder(), { size: 18 })], ['pendingTargetDigest', getArrayDecoder(getU8Decoder(), { size: 32 })], ]); } /** Gets the codec for {@link DemocracyPtrAllocation} account data. */ export function getDemocracyPtrAllocationCodec(): FixedSizeCodec< DemocracyPtrAllocationArgs, DemocracyPtrAllocation > { return combineCodec( getDemocracyPtrAllocationEncoder(), getDemocracyPtrAllocationDecoder(), ); } export function decodeDemocracyPtrAllocation( encodedAccount: EncodedAccount, ): Account; export function decodeDemocracyPtrAllocation( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeDemocracyPtrAllocation( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getDemocracyPtrAllocationDecoder(), ); } export async function fetchDemocracyPtrAllocation< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeDemocracyPtrAllocation( rpc, address, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyPtrAllocation< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeDemocracyPtrAllocation(maybeAccount); } export async function fetchAllDemocracyPtrAllocation( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeDemocracyPtrAllocation( rpc, addresses, config, ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeDemocracyPtrAllocation( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeDemocracyPtrAllocation(maybeAccount), ); } export async function fetchDemocracyPtrAllocationFromSeeds( rpc: Parameters[0], seeds: DemocracyPtrAllocationSeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const maybeAccount = await fetchMaybeDemocracyPtrAllocationFromSeeds( rpc, seeds, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyPtrAllocationFromSeeds( rpc: Parameters[0], seeds: DemocracyPtrAllocationSeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const { programAddress, ...fetchConfig } = config; const [address] = await findDemocracyPtrAllocationPda(seeds, { programAddress, }); return await fetchMaybeDemocracyPtrAllocation(rpc, address, fetchConfig); }