/** * 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, getU128Decoder, getU128Encoder, 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 { DemocracyHistoryDaySeeds, findDemocracyHistoryDayPda } from '../pdas'; import { getGovernanceParamsDecoder, getGovernanceParamsEncoder, getMinorFactionIdDecoder, getMinorFactionIdEncoder, type GovernanceParams, type GovernanceParamsArgs, type MinorFactionId, type MinorFactionIdArgs, } from '../types'; export const DEMOCRACY_HISTORY_DAY_DISCRIMINATOR = new Uint8Array([ 18, 165, 241, 213, 85, 219, 254, 248, ]); export function getDemocracyHistoryDayDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( DEMOCRACY_HISTORY_DAY_DISCRIMINATOR, ); } export type DemocracyHistoryDay = { discriminator: ReadonlyUint8Array; version: number; bump: number; domain: Array; gameId: Address; system: Address; day: bigint; generation: Address; governance: Address; controller: MinorFactionId; eligiblePower: bigint; activeParams: GovernanceParams; dailyOutcome: GovernanceParams; poolAtClose: bigint; reservedAtlas: bigint; separatelyRetainedAtlas: bigint; rewardIndexAfter: bigint; reserved: Array; }; export type DemocracyHistoryDayArgs = { version: number; bump: number; domain: Array; gameId: Address; system: Address; day: number | bigint; generation: Address; governance: Address; controller: MinorFactionIdArgs; eligiblePower: number | bigint; activeParams: GovernanceParamsArgs; dailyOutcome: GovernanceParamsArgs; poolAtClose: number | bigint; reservedAtlas: number | bigint; separatelyRetainedAtlas: number | bigint; rewardIndexAfter: number | bigint; reserved: Array; }; /** Gets the encoder for {@link DemocracyHistoryDayArgs} account data. */ export function getDemocracyHistoryDayEncoder(): FixedSizeEncoder { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['version', getU8Encoder()], ['bump', getU8Encoder()], ['domain', getArrayEncoder(getU8Encoder(), { size: 8 })], ['gameId', getAddressEncoder()], ['system', getAddressEncoder()], ['day', getU64Encoder()], ['generation', getAddressEncoder()], ['governance', getAddressEncoder()], ['controller', getMinorFactionIdEncoder()], ['eligiblePower', getU64Encoder()], ['activeParams', getGovernanceParamsEncoder()], ['dailyOutcome', getGovernanceParamsEncoder()], ['poolAtClose', getU64Encoder()], ['reservedAtlas', getU64Encoder()], ['separatelyRetainedAtlas', getU64Encoder()], ['rewardIndexAfter', getU128Encoder()], ['reserved', getArrayEncoder(getU8Encoder(), { size: 32 })], ]), (value) => ({ ...value, discriminator: DEMOCRACY_HISTORY_DAY_DISCRIMINATOR, }), ); } /** Gets the decoder for {@link DemocracyHistoryDay} account data. */ export function getDemocracyHistoryDayDecoder(): FixedSizeDecoder { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['version', getU8Decoder()], ['bump', getU8Decoder()], ['domain', getArrayDecoder(getU8Decoder(), { size: 8 })], ['gameId', getAddressDecoder()], ['system', getAddressDecoder()], ['day', getU64Decoder()], ['generation', getAddressDecoder()], ['governance', getAddressDecoder()], ['controller', getMinorFactionIdDecoder()], ['eligiblePower', getU64Decoder()], ['activeParams', getGovernanceParamsDecoder()], ['dailyOutcome', getGovernanceParamsDecoder()], ['poolAtClose', getU64Decoder()], ['reservedAtlas', getU64Decoder()], ['separatelyRetainedAtlas', getU64Decoder()], ['rewardIndexAfter', getU128Decoder()], ['reserved', getArrayDecoder(getU8Decoder(), { size: 32 })], ]); } /** Gets the codec for {@link DemocracyHistoryDay} account data. */ export function getDemocracyHistoryDayCodec(): FixedSizeCodec< DemocracyHistoryDayArgs, DemocracyHistoryDay > { return combineCodec( getDemocracyHistoryDayEncoder(), getDemocracyHistoryDayDecoder(), ); } export function decodeDemocracyHistoryDay( encodedAccount: EncodedAccount, ): Account; export function decodeDemocracyHistoryDay( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeDemocracyHistoryDay( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getDemocracyHistoryDayDecoder(), ); } export async function fetchDemocracyHistoryDay< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeDemocracyHistoryDay( rpc, address, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyHistoryDay< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeDemocracyHistoryDay(maybeAccount); } export async function fetchAllDemocracyHistoryDay( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeDemocracyHistoryDay( rpc, addresses, config, ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeDemocracyHistoryDay( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeDemocracyHistoryDay(maybeAccount), ); } export async function fetchDemocracyHistoryDayFromSeeds( rpc: Parameters[0], seeds: DemocracyHistoryDaySeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const maybeAccount = await fetchMaybeDemocracyHistoryDayFromSeeds( rpc, seeds, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeDemocracyHistoryDayFromSeeds( rpc: Parameters[0], seeds: DemocracyHistoryDaySeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const { programAddress, ...fetchConfig } = config; const [address] = await findDemocracyHistoryDayPda(seeds, { programAddress }); return await fetchMaybeDemocracyHistoryDay(rpc, address, fetchConfig); }