UNPKG

@kamino-finance/kliquidity-sdk

Version:

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

38 lines (29 loc) 2.77 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, getU128Decoder, getU128Encoder, getU16Decoder, getU16Encoder, getUnitDecoder, getUnitEncoder, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent } from '@solana/kit'; export type RemoveLiquidityMode = { __kind: "Liquidity", fields: readonly [bigint]; } | { __kind: "Bps", fields: readonly [number]; } | { __kind: "All" }; export type RemoveLiquidityModeArgs = { __kind: "Liquidity", fields: readonly [number | bigint]; } | { __kind: "Bps", fields: readonly [number]; } | { __kind: "All" }; export function getRemoveLiquidityModeEncoder(): Encoder<RemoveLiquidityModeArgs> { return getDiscriminatedUnionEncoder([['Liquidity', getStructEncoder([['fields', getTupleEncoder([getU128Encoder()])]])], ['Bps', getStructEncoder([['fields', getTupleEncoder([getU16Encoder()])]])], ['All', getUnitEncoder()]]); } export function getRemoveLiquidityModeDecoder(): Decoder<RemoveLiquidityMode> { return getDiscriminatedUnionDecoder([['Liquidity', getStructDecoder([['fields', getTupleDecoder([getU128Decoder()])]])], ['Bps', getStructDecoder([['fields', getTupleDecoder([getU16Decoder()])]])], ['All', getUnitDecoder()]]); } export function getRemoveLiquidityModeCodec(): Codec<RemoveLiquidityModeArgs, RemoveLiquidityMode> { return combineCodec(getRemoveLiquidityModeEncoder(), getRemoveLiquidityModeDecoder()); } // Data Enum Helpers. export function removeLiquidityMode(kind: 'Liquidity', data: GetDiscriminatedUnionVariantContent<RemoveLiquidityModeArgs, '__kind', 'Liquidity'>['fields']): GetDiscriminatedUnionVariant<RemoveLiquidityModeArgs, '__kind', 'Liquidity'>; export function removeLiquidityMode(kind: 'Bps', data: GetDiscriminatedUnionVariantContent<RemoveLiquidityModeArgs, '__kind', 'Bps'>['fields']): GetDiscriminatedUnionVariant<RemoveLiquidityModeArgs, '__kind', 'Bps'>; export function removeLiquidityMode(kind: 'All'): GetDiscriminatedUnionVariant<RemoveLiquidityModeArgs, '__kind', 'All'>; export function removeLiquidityMode<K extends RemoveLiquidityModeArgs['__kind'], Data>(kind: K, data?: Data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isRemoveLiquidityMode<K extends RemoveLiquidityMode['__kind']>(kind: K, value: RemoveLiquidityMode): value is RemoveLiquidityMode & { __kind: K } { return value.__kind === kind; };