/** * 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, getBytesDecoder, getBytesEncoder, getMapDecoder, getMapEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, type Account, type Address, type Codec, type Decoder, type EncodedAccount, type Encoder, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array, } from '@solana/kit'; import { AtlasRewardTreasurySeeds, findAtlasRewardTreasuryPda } from '../pdas'; import { getCargoIdDecoder, getCargoIdEncoder, type CargoId, type CargoIdArgs, } from '../types'; export const ATLAS_REWARD_TREASURY_DISCRIMINATOR = new Uint8Array([ 182, 164, 35, 176, 93, 96, 234, 214, ]); export function getAtlasRewardTreasuryDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( ATLAS_REWARD_TREASURY_DISCRIMINATOR, ); } /** Game-level finite cargo reserve backing medallion and synthetic-salvage issuance. */ export type AtlasRewardTreasury = { discriminator: ReadonlyUint8Array; version: number; bump: number; gameId: Address; reserves: Map; }; export type AtlasRewardTreasuryArgs = { version: number; bump: number; gameId: Address; reserves: Map; }; /** Gets the encoder for {@link AtlasRewardTreasuryArgs} account data. */ export function getAtlasRewardTreasuryEncoder(): Encoder { return transformEncoder( getStructEncoder([ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['version', getU8Encoder()], ['bump', getU8Encoder()], ['gameId', getAddressEncoder()], ['reserves', getMapEncoder(getCargoIdEncoder(), getU64Encoder())], ]), (value) => ({ ...value, discriminator: ATLAS_REWARD_TREASURY_DISCRIMINATOR, }), ); } /** Gets the decoder for {@link AtlasRewardTreasury} account data. */ export function getAtlasRewardTreasuryDecoder(): Decoder { return getStructDecoder([ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['version', getU8Decoder()], ['bump', getU8Decoder()], ['gameId', getAddressDecoder()], ['reserves', getMapDecoder(getCargoIdDecoder(), getU64Decoder())], ]); } /** Gets the codec for {@link AtlasRewardTreasury} account data. */ export function getAtlasRewardTreasuryCodec(): Codec< AtlasRewardTreasuryArgs, AtlasRewardTreasury > { return combineCodec( getAtlasRewardTreasuryEncoder(), getAtlasRewardTreasuryDecoder(), ); } export function decodeAtlasRewardTreasury( encodedAccount: EncodedAccount, ): Account; export function decodeAtlasRewardTreasury( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeAtlasRewardTreasury( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): | Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getAtlasRewardTreasuryDecoder(), ); } export async function fetchAtlasRewardTreasury< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeAtlasRewardTreasury( rpc, address, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeAtlasRewardTreasury< TAddress extends string = string, >( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeAtlasRewardTreasury(maybeAccount); } export async function fetchAllAtlasRewardTreasury( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeAtlasRewardTreasury( rpc, addresses, config, ); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeAtlasRewardTreasury( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeAtlasRewardTreasury(maybeAccount), ); } export async function fetchAtlasRewardTreasuryFromSeeds( rpc: Parameters[0], seeds: AtlasRewardTreasurySeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const maybeAccount = await fetchMaybeAtlasRewardTreasuryFromSeeds( rpc, seeds, config, ); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeAtlasRewardTreasuryFromSeeds( rpc: Parameters[0], seeds: AtlasRewardTreasurySeeds, config: FetchAccountConfig & { programAddress?: Address } = {}, ): Promise> { const { programAddress, ...fetchConfig } = config; const [address] = await findAtlasRewardTreasuryPda(seeds, { programAddress }); return await fetchMaybeAtlasRewardTreasury(rpc, address, fetchConfig); }