/** * 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, getArrayDecoder, getArrayEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, } from "@solana/kit"; import { getBaseFeeStructDecoder, getBaseFeeStructEncoder, getDynamicFeeStructDecoder, getDynamicFeeStructEncoder, type BaseFeeStruct, type BaseFeeStructArgs, type DynamicFeeStruct, type DynamicFeeStructArgs, } from "./index.js"; /** * Information regarding fee charges * trading_fee = amount * trade_fee_numerator / denominator * protocol_fee = trading_fee * protocol_fee_percentage / 100 * referral_fee = protocol_fee * referral_percentage / 100 * partner_fee = (protocol_fee - referral_fee) * partner_fee_percentage / denominator */ export type PoolFeesStruct = { /** * Trade fees are extra token amounts that are held inside the token * accounts during a trade, making the value of liquidity tokens rise. * Trade fee numerator */ baseFee: BaseFeeStruct; /** * Protocol trading fees are extra token amounts that are held inside the token * accounts during a trade, with the equivalent in pool tokens minted to * the protocol of the program. * Protocol trade fee numerator */ protocolFeePercent: number; /** partner fee */ partnerFeePercent: number; /** referral fee */ referralFeePercent: number; /** padding */ padding0: Array; /** dynamic fee */ dynamicFee: DynamicFeeStruct; /** padding */ padding1: Array; }; export type PoolFeesStructArgs = { /** * Trade fees are extra token amounts that are held inside the token * accounts during a trade, making the value of liquidity tokens rise. * Trade fee numerator */ baseFee: BaseFeeStructArgs; /** * Protocol trading fees are extra token amounts that are held inside the token * accounts during a trade, with the equivalent in pool tokens minted to * the protocol of the program. * Protocol trade fee numerator */ protocolFeePercent: number; /** partner fee */ partnerFeePercent: number; /** referral fee */ referralFeePercent: number; /** padding */ padding0: Array; /** dynamic fee */ dynamicFee: DynamicFeeStructArgs; /** padding */ padding1: Array; }; export function getPoolFeesStructEncoder(): FixedSizeEncoder { return getStructEncoder([ ["baseFee", getBaseFeeStructEncoder()], ["protocolFeePercent", getU8Encoder()], ["partnerFeePercent", getU8Encoder()], ["referralFeePercent", getU8Encoder()], ["padding0", getArrayEncoder(getU8Encoder(), { size: 5 })], ["dynamicFee", getDynamicFeeStructEncoder()], ["padding1", getArrayEncoder(getU64Encoder(), { size: 2 })], ]); } export function getPoolFeesStructDecoder(): FixedSizeDecoder { return getStructDecoder([ ["baseFee", getBaseFeeStructDecoder()], ["protocolFeePercent", getU8Decoder()], ["partnerFeePercent", getU8Decoder()], ["referralFeePercent", getU8Decoder()], ["padding0", getArrayDecoder(getU8Decoder(), { size: 5 })], ["dynamicFee", getDynamicFeeStructDecoder()], ["padding1", getArrayDecoder(getU64Decoder(), { size: 2 })], ]); } export function getPoolFeesStructCodec(): FixedSizeCodec< PoolFeesStructArgs, PoolFeesStruct > { return combineCodec(getPoolFeesStructEncoder(), getPoolFeesStructDecoder()); }