/** * 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 { combineCodec, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array, } from "@solana/kit"; export type CollateralInfo = { mint: Address; lowerHeuristic: bigint; upperHeuristic: bigint; expHeuristic: bigint; maxTwapDivergenceBps: bigint; scopeTwapPriceChain: Array; scopePriceChain: Array; name: ReadonlyUint8Array; maxAgePriceSeconds: bigint; maxAgeTwapSeconds: bigint; maxIgnorableAmountAsReward: bigint; disabled: number; padding0: ReadonlyUint8Array; scopeStakingRateChain: Array; padding: Array; }; export type CollateralInfoArgs = { mint: Address; lowerHeuristic: number | bigint; upperHeuristic: number | bigint; expHeuristic: number | bigint; maxTwapDivergenceBps: number | bigint; scopeTwapPriceChain: Array; scopePriceChain: Array; name: ReadonlyUint8Array; maxAgePriceSeconds: number | bigint; maxAgeTwapSeconds: number | bigint; maxIgnorableAmountAsReward: number | bigint; disabled: number; padding0: ReadonlyUint8Array; scopeStakingRateChain: Array; padding: Array; }; export function getCollateralInfoEncoder(): FixedSizeEncoder { return getStructEncoder([ ["mint", getAddressEncoder()], ["lowerHeuristic", getU64Encoder()], ["upperHeuristic", getU64Encoder()], ["expHeuristic", getU64Encoder()], ["maxTwapDivergenceBps", getU64Encoder()], ["scopeTwapPriceChain", getArrayEncoder(getU16Encoder(), { size: 4 })], ["scopePriceChain", getArrayEncoder(getU16Encoder(), { size: 4 })], ["name", fixEncoderSize(getBytesEncoder(), 32)], ["maxAgePriceSeconds", getU64Encoder()], ["maxAgeTwapSeconds", getU64Encoder()], ["maxIgnorableAmountAsReward", getU64Encoder()], ["disabled", getU8Encoder()], ["padding0", fixEncoderSize(getBytesEncoder(), 7)], ["scopeStakingRateChain", getArrayEncoder(getU16Encoder(), { size: 4 })], ["padding", getArrayEncoder(getU64Encoder(), { size: 8 })], ]); } export function getCollateralInfoDecoder(): FixedSizeDecoder { return getStructDecoder([ ["mint", getAddressDecoder()], ["lowerHeuristic", getU64Decoder()], ["upperHeuristic", getU64Decoder()], ["expHeuristic", getU64Decoder()], ["maxTwapDivergenceBps", getU64Decoder()], ["scopeTwapPriceChain", getArrayDecoder(getU16Decoder(), { size: 4 })], ["scopePriceChain", getArrayDecoder(getU16Decoder(), { size: 4 })], ["name", fixDecoderSize(getBytesDecoder(), 32)], ["maxAgePriceSeconds", getU64Decoder()], ["maxAgeTwapSeconds", getU64Decoder()], ["maxIgnorableAmountAsReward", getU64Decoder()], ["disabled", getU8Decoder()], ["padding0", fixDecoderSize(getBytesDecoder(), 7)], ["scopeStakingRateChain", getArrayDecoder(getU16Decoder(), { size: 4 })], ["padding", getArrayDecoder(getU64Decoder(), { size: 8 })], ]); } export function getCollateralInfoCodec(): FixedSizeCodec< CollateralInfoArgs, CollateralInfo > { return combineCodec(getCollateralInfoEncoder(), getCollateralInfoDecoder()); }