/** * 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, getU128Decoder, getU128Encoder, getUnitDecoder, getUnitEncoder, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent, } from "@solana/kit"; export type SimulationPrice = | { __kind: "PoolPrice" } | { __kind: "SqrtPrice"; fields: readonly [bigint] } | { __kind: "TickIndex"; fields: readonly [number] }; export type SimulationPriceArgs = | { __kind: "PoolPrice" } | { __kind: "SqrtPrice"; fields: readonly [number | bigint] } | { __kind: "TickIndex"; fields: readonly [number] }; export function getSimulationPriceEncoder(): Encoder { return getDiscriminatedUnionEncoder([ ["PoolPrice", getUnitEncoder()], [ "SqrtPrice", getStructEncoder([["fields", getTupleEncoder([getU128Encoder()])]]), ], [ "TickIndex", getStructEncoder([["fields", getTupleEncoder([getI32Encoder()])]]), ], ]); } export function getSimulationPriceDecoder(): Decoder { return getDiscriminatedUnionDecoder([ ["PoolPrice", getUnitDecoder()], [ "SqrtPrice", getStructDecoder([["fields", getTupleDecoder([getU128Decoder()])]]), ], [ "TickIndex", getStructDecoder([["fields", getTupleDecoder([getI32Decoder()])]]), ], ]); } export function getSimulationPriceCodec(): Codec< SimulationPriceArgs, SimulationPrice > { return combineCodec(getSimulationPriceEncoder(), getSimulationPriceDecoder()); } // Data Enum Helpers. export function simulationPrice( kind: "PoolPrice", ): GetDiscriminatedUnionVariant; export function simulationPrice( kind: "SqrtPrice", data: GetDiscriminatedUnionVariantContent< SimulationPriceArgs, "__kind", "SqrtPrice" >["fields"], ): GetDiscriminatedUnionVariant; export function simulationPrice( kind: "TickIndex", data: GetDiscriminatedUnionVariantContent< SimulationPriceArgs, "__kind", "TickIndex" >["fields"], ): GetDiscriminatedUnionVariant; export function simulationPrice( kind: K, data?: Data, ) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isSimulationPrice( kind: K, value: SimulationPrice, ): value is SimulationPrice & { __kind: K } { return value.__kind === kind; }