UNPKG

@kamino-finance/kliquidity-sdk

Version:

Typescript SDK for interacting with the Kamino Liquidity (kliquidity) protocol

37 lines (28 loc) 2.11 kB
/** * 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, getStructDecoder, getStructEncoder, getTupleDecoder, getTupleEncoder, getU16Decoder, getU16Encoder, getUnitDecoder, getUnitEncoder, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent } from '@solana/kit'; export type ExpanderStep = { __kind: "ExpandOrContract", fields: readonly [number]; } | { __kind: "Recenter" }; export type ExpanderStepArgs = ExpanderStep; export function getExpanderStepEncoder(): Encoder<ExpanderStepArgs> { return getDiscriminatedUnionEncoder([['ExpandOrContract', getStructEncoder([['fields', getTupleEncoder([getU16Encoder()])]])], ['Recenter', getUnitEncoder()]]); } export function getExpanderStepDecoder(): Decoder<ExpanderStep> { return getDiscriminatedUnionDecoder([['ExpandOrContract', getStructDecoder([['fields', getTupleDecoder([getU16Decoder()])]])], ['Recenter', getUnitDecoder()]]); } export function getExpanderStepCodec(): Codec<ExpanderStepArgs, ExpanderStep> { return combineCodec(getExpanderStepEncoder(), getExpanderStepDecoder()); } // Data Enum Helpers. export function expanderStep(kind: 'ExpandOrContract', data: GetDiscriminatedUnionVariantContent<ExpanderStepArgs, '__kind', 'ExpandOrContract'>['fields']): GetDiscriminatedUnionVariant<ExpanderStepArgs, '__kind', 'ExpandOrContract'>; export function expanderStep(kind: 'Recenter'): GetDiscriminatedUnionVariant<ExpanderStepArgs, '__kind', 'Recenter'>; export function expanderStep<K extends ExpanderStepArgs['__kind'], Data>(kind: K, data?: Data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isExpanderStep<K extends ExpanderStep['__kind']>(kind: K, value: ExpanderStep): value is ExpanderStep & { __kind: K } { return value.__kind === kind; };