@kamino-finance/farms-sdk
Version:
76 lines (69 loc) • 1.9 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,
getArrayDecoder,
getArrayEncoder,
getStructDecoder,
getStructEncoder,
getU16Decoder,
getU16Encoder,
getU64Decoder,
getU64Encoder,
type FixedSizeCodec,
type FixedSizeDecoder,
type FixedSizeEncoder,
} from "@solana/kit";
import {
getPriceDecoder,
getPriceEncoder,
type Price,
type PriceArgs,
} from ".";
export type DatedPrice = {
price: Price;
lastUpdatedSlot: bigint;
unixTimestamp: bigint;
reserved: Array<bigint>;
reserved2: Array<number>;
index: number;
};
export type DatedPriceArgs = {
price: PriceArgs;
lastUpdatedSlot: number | bigint;
unixTimestamp: number | bigint;
reserved: Array<number | bigint>;
reserved2: Array<number>;
index: number;
};
export function getDatedPriceEncoder(): FixedSizeEncoder<DatedPriceArgs> {
return getStructEncoder([
["price", getPriceEncoder()],
["lastUpdatedSlot", getU64Encoder()],
["unixTimestamp", getU64Encoder()],
["reserved", getArrayEncoder(getU64Encoder(), { size: 2 })],
["reserved2", getArrayEncoder(getU16Encoder(), { size: 3 })],
["index", getU16Encoder()],
]);
}
export function getDatedPriceDecoder(): FixedSizeDecoder<DatedPrice> {
return getStructDecoder([
["price", getPriceDecoder()],
["lastUpdatedSlot", getU64Decoder()],
["unixTimestamp", getU64Decoder()],
["reserved", getArrayDecoder(getU64Decoder(), { size: 2 })],
["reserved2", getArrayDecoder(getU16Decoder(), { size: 3 })],
["index", getU16Decoder()],
]);
}
export function getDatedPriceCodec(): FixedSizeCodec<
DatedPriceArgs,
DatedPrice
> {
return combineCodec(getDatedPriceEncoder(), getDatedPriceDecoder());
}