@kamino-finance/kliquidity-sdk
Version:
Typescript SDK for interacting with the Kamino Liquidity (kliquidity) protocol
37 lines (28 loc) • 2.24 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, getDiscriminatedUnionDecoder, getDiscriminatedUnionEncoder, getI32Decoder, getI32Encoder, getStructDecoder, getStructEncoder, getTupleDecoder, getTupleEncoder, getUnitDecoder, getUnitEncoder, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent } from '@solana/kit';
export type RebalanceEffects = { __kind: "NewRange", fields: readonly [number, number]; } | { __kind: "WithdrawAndFreeze" };
export type RebalanceEffectsArgs = RebalanceEffects;
export function getRebalanceEffectsEncoder(): Encoder<RebalanceEffectsArgs> {
return getDiscriminatedUnionEncoder([['NewRange', getStructEncoder([['fields', getTupleEncoder([getI32Encoder(), getI32Encoder()])]])], ['WithdrawAndFreeze', getUnitEncoder()]]);
}
export function getRebalanceEffectsDecoder(): Decoder<RebalanceEffects> {
return getDiscriminatedUnionDecoder([['NewRange', getStructDecoder([['fields', getTupleDecoder([getI32Decoder(), getI32Decoder()])]])], ['WithdrawAndFreeze', getUnitDecoder()]]);
}
export function getRebalanceEffectsCodec(): Codec<RebalanceEffectsArgs, RebalanceEffects> {
return combineCodec(getRebalanceEffectsEncoder(), getRebalanceEffectsDecoder());
}
// Data Enum Helpers.
export function rebalanceEffects(kind: 'NewRange', data: GetDiscriminatedUnionVariantContent<RebalanceEffectsArgs, '__kind', 'NewRange'>['fields']): GetDiscriminatedUnionVariant<RebalanceEffectsArgs, '__kind', 'NewRange'>;
export function rebalanceEffects(kind: 'WithdrawAndFreeze'): GetDiscriminatedUnionVariant<RebalanceEffectsArgs, '__kind', 'WithdrawAndFreeze'>;
export function rebalanceEffects<K extends RebalanceEffectsArgs['__kind'], Data>(kind: K, data?: Data) {
return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) };
}
export function isRebalanceEffects<K extends RebalanceEffects['__kind']>(kind: K, value: RebalanceEffects): value is RebalanceEffects & { __kind: K } {
return value.__kind === kind;
};