/** * 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, 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"; export const GLOBAL_CONFIG_DISCRIMINATOR = new Uint8Array([ 149, 8, 156, 202, 160, 252, 176, 217, ]); export function getGlobalConfigDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode( GLOBAL_CONFIG_DISCRIMINATOR, ); } export type GlobalConfig = { discriminator: ReadonlyUint8Array; emergencyMode: bigint; blockDeposit: bigint; blockInvest: bigint; blockWithdraw: bigint; blockCollectFees: bigint; blockCollectRewards: bigint; blockSwapRewards: bigint; blockSwapUnevenVaults: number; blockEmergencySwap: number; minWithdrawalFeeBps: bigint; scopeProgramId: Address; scopePriceId: Address; swapRewardsDiscountBps: Array; actionsAuthority: Address; adminAuthority: Address; treasuryFeeVaults: Array
; tokenInfos: Address; blockLocalAdmin: bigint; minPerformanceFeeBps: bigint; minSwapUnevenSlippageToleranceBps: bigint; minReferencePriceSlippageToleranceBps: bigint; actionsAfterRebalanceDelaySeconds: bigint; treasuryFeeVaultReceiver: Address; padding: Array; }; export type GlobalConfigArgs = { emergencyMode: number | bigint; blockDeposit: number | bigint; blockInvest: number | bigint; blockWithdraw: number | bigint; blockCollectFees: number | bigint; blockCollectRewards: number | bigint; blockSwapRewards: number | bigint; blockSwapUnevenVaults: number; blockEmergencySwap: number; minWithdrawalFeeBps: number | bigint; scopeProgramId: Address; scopePriceId: Address; swapRewardsDiscountBps: Array; actionsAuthority: Address; adminAuthority: Address; treasuryFeeVaults: Array
; tokenInfos: Address; blockLocalAdmin: number | bigint; minPerformanceFeeBps: number | bigint; minSwapUnevenSlippageToleranceBps: number | bigint; minReferencePriceSlippageToleranceBps: number | bigint; actionsAfterRebalanceDelaySeconds: number | bigint; treasuryFeeVaultReceiver: Address; padding: Array; }; /** Gets the encoder for {@link GlobalConfigArgs} account data. */ export function getGlobalConfigEncoder(): FixedSizeEncoder { return transformEncoder( getStructEncoder([ ["discriminator", fixEncoderSize(getBytesEncoder(), 8)], ["emergencyMode", getU64Encoder()], ["blockDeposit", getU64Encoder()], ["blockInvest", getU64Encoder()], ["blockWithdraw", getU64Encoder()], ["blockCollectFees", getU64Encoder()], ["blockCollectRewards", getU64Encoder()], ["blockSwapRewards", getU64Encoder()], ["blockSwapUnevenVaults", getU32Encoder()], ["blockEmergencySwap", getU32Encoder()], ["minWithdrawalFeeBps", getU64Encoder()], ["scopeProgramId", getAddressEncoder()], ["scopePriceId", getAddressEncoder()], [ "swapRewardsDiscountBps", getArrayEncoder(getU64Encoder(), { size: 256 }), ], ["actionsAuthority", getAddressEncoder()], ["adminAuthority", getAddressEncoder()], [ "treasuryFeeVaults", getArrayEncoder(getAddressEncoder(), { size: 256 }), ], ["tokenInfos", getAddressEncoder()], ["blockLocalAdmin", getU64Encoder()], ["minPerformanceFeeBps", getU64Encoder()], ["minSwapUnevenSlippageToleranceBps", getU64Encoder()], ["minReferencePriceSlippageToleranceBps", getU64Encoder()], ["actionsAfterRebalanceDelaySeconds", getU64Encoder()], ["treasuryFeeVaultReceiver", getAddressEncoder()], ["padding", getArrayEncoder(getU64Encoder(), { size: 2035 })], ]), (value) => ({ ...value, discriminator: GLOBAL_CONFIG_DISCRIMINATOR }), ); } /** Gets the decoder for {@link GlobalConfig} account data. */ export function getGlobalConfigDecoder(): FixedSizeDecoder { return getStructDecoder([ ["discriminator", fixDecoderSize(getBytesDecoder(), 8)], ["emergencyMode", getU64Decoder()], ["blockDeposit", getU64Decoder()], ["blockInvest", getU64Decoder()], ["blockWithdraw", getU64Decoder()], ["blockCollectFees", getU64Decoder()], ["blockCollectRewards", getU64Decoder()], ["blockSwapRewards", getU64Decoder()], ["blockSwapUnevenVaults", getU32Decoder()], ["blockEmergencySwap", getU32Decoder()], ["minWithdrawalFeeBps", getU64Decoder()], ["scopeProgramId", getAddressDecoder()], ["scopePriceId", getAddressDecoder()], ["swapRewardsDiscountBps", getArrayDecoder(getU64Decoder(), { size: 256 })], ["actionsAuthority", getAddressDecoder()], ["adminAuthority", getAddressDecoder()], ["treasuryFeeVaults", getArrayDecoder(getAddressDecoder(), { size: 256 })], ["tokenInfos", getAddressDecoder()], ["blockLocalAdmin", getU64Decoder()], ["minPerformanceFeeBps", getU64Decoder()], ["minSwapUnevenSlippageToleranceBps", getU64Decoder()], ["minReferencePriceSlippageToleranceBps", getU64Decoder()], ["actionsAfterRebalanceDelaySeconds", getU64Decoder()], ["treasuryFeeVaultReceiver", getAddressDecoder()], ["padding", getArrayDecoder(getU64Decoder(), { size: 2035 })], ]); } /** Gets the codec for {@link GlobalConfig} account data. */ export function getGlobalConfigCodec(): FixedSizeCodec< GlobalConfigArgs, GlobalConfig > { return combineCodec(getGlobalConfigEncoder(), getGlobalConfigDecoder()); } export function decodeGlobalConfig( encodedAccount: EncodedAccount, ): Account; export function decodeGlobalConfig( encodedAccount: MaybeEncodedAccount, ): MaybeAccount; export function decodeGlobalConfig( encodedAccount: EncodedAccount | MaybeEncodedAccount, ): Account | MaybeAccount { return decodeAccount( encodedAccount as MaybeEncodedAccount, getGlobalConfigDecoder(), ); } export async function fetchGlobalConfig( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchMaybeGlobalConfig(rpc, address, config); assertAccountExists(maybeAccount); return maybeAccount; } export async function fetchMaybeGlobalConfig( rpc: Parameters[0], address: Address, config?: FetchAccountConfig, ): Promise> { const maybeAccount = await fetchEncodedAccount(rpc, address, config); return decodeGlobalConfig(maybeAccount); } export async function fetchAllGlobalConfig( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchAllMaybeGlobalConfig(rpc, addresses, config); assertAccountsExist(maybeAccounts); return maybeAccounts; } export async function fetchAllMaybeGlobalConfig( rpc: Parameters[0], addresses: Array
, config?: FetchAccountsConfig, ): Promise[]> { const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeGlobalConfig(maybeAccount)); } export function getGlobalConfigSize(): number { return 26832; }