@kamino-finance/farms-sdk
Version:
122 lines (115 loc) • 3.62 kB
text/typescript
/**
* 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,
getU128Decoder,
getU128Encoder,
getU64Decoder,
getU64Encoder,
getU8Decoder,
getU8Encoder,
type Address,
type FixedSizeCodec,
type FixedSizeDecoder,
type FixedSizeEncoder,
type ReadonlyUint8Array,
} from "@solana/kit";
import {
getRewardScheduleCurveDecoder,
getRewardScheduleCurveEncoder,
getTokenInfoDecoder,
getTokenInfoEncoder,
type RewardScheduleCurve,
type RewardScheduleCurveArgs,
type TokenInfo,
type TokenInfoArgs,
} from ".";
export type RewardInfo = {
token: TokenInfo;
rewardsVault: Address;
rewardsAvailable: bigint;
rewardScheduleCurve: RewardScheduleCurve;
minClaimDurationSeconds: bigint;
lastIssuanceTs: bigint;
rewardsIssuedUnclaimed: bigint;
rewardsIssuedCumulative: bigint;
rewardPerShareScaled: bigint;
placeholder0: bigint;
rewardType: number;
rewardsPerSecondDecimals: number;
padding0: ReadonlyUint8Array;
padding1: Array<bigint>;
};
export type RewardInfoArgs = {
token: TokenInfoArgs;
rewardsVault: Address;
rewardsAvailable: number | bigint;
rewardScheduleCurve: RewardScheduleCurveArgs;
minClaimDurationSeconds: number | bigint;
lastIssuanceTs: number | bigint;
rewardsIssuedUnclaimed: number | bigint;
rewardsIssuedCumulative: number | bigint;
rewardPerShareScaled: number | bigint;
placeholder0: number | bigint;
rewardType: number;
rewardsPerSecondDecimals: number;
padding0: ReadonlyUint8Array;
padding1: Array<number | bigint>;
};
export function getRewardInfoEncoder(): FixedSizeEncoder<RewardInfoArgs> {
return getStructEncoder([
["token", getTokenInfoEncoder()],
["rewardsVault", getAddressEncoder()],
["rewardsAvailable", getU64Encoder()],
["rewardScheduleCurve", getRewardScheduleCurveEncoder()],
["minClaimDurationSeconds", getU64Encoder()],
["lastIssuanceTs", getU64Encoder()],
["rewardsIssuedUnclaimed", getU64Encoder()],
["rewardsIssuedCumulative", getU64Encoder()],
["rewardPerShareScaled", getU128Encoder()],
["placeholder0", getU64Encoder()],
["rewardType", getU8Encoder()],
["rewardsPerSecondDecimals", getU8Encoder()],
["padding0", fixEncoderSize(getBytesEncoder(), 6)],
["padding1", getArrayEncoder(getU64Encoder(), { size: 20 })],
]);
}
export function getRewardInfoDecoder(): FixedSizeDecoder<RewardInfo> {
return getStructDecoder([
["token", getTokenInfoDecoder()],
["rewardsVault", getAddressDecoder()],
["rewardsAvailable", getU64Decoder()],
["rewardScheduleCurve", getRewardScheduleCurveDecoder()],
["minClaimDurationSeconds", getU64Decoder()],
["lastIssuanceTs", getU64Decoder()],
["rewardsIssuedUnclaimed", getU64Decoder()],
["rewardsIssuedCumulative", getU64Decoder()],
["rewardPerShareScaled", getU128Decoder()],
["placeholder0", getU64Decoder()],
["rewardType", getU8Decoder()],
["rewardsPerSecondDecimals", getU8Decoder()],
["padding0", fixDecoderSize(getBytesDecoder(), 6)],
["padding1", getArrayDecoder(getU64Decoder(), { size: 20 })],
]);
}
export function getRewardInfoCodec(): FixedSizeCodec<
RewardInfoArgs,
RewardInfo
> {
return combineCodec(getRewardInfoEncoder(), getRewardInfoDecoder());
}