/**
* 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,
getAddressDecoder,
getAddressEncoder,
getArrayDecoder,
getArrayEncoder,
getMapDecoder,
getMapEncoder,
getStructDecoder,
getStructEncoder,
getU64Decoder,
getU64Encoder,
type Address,
type Codec,
type Decoder,
type Encoder,
} from '@solana/kit';
import {
getMakerInfoDecoder,
getMakerInfoEncoder,
getOrderInfoDecoder,
getOrderInfoEncoder,
type MakerInfo,
type MakerInfoArgs,
type OrderInfo,
type OrderInfoArgs,
} from '.';
export type OrderBookSide = {
/** An incrememnting counter for each order id. The first bit is set to 1 for asks. */
idCounter: bigint;
makers: Map
;
orders: Array;
};
export type OrderBookSideArgs = {
/** An incrememnting counter for each order id. The first bit is set to 1 for asks. */
idCounter: number | bigint;
makers: Map;
orders: Array;
};
export function getOrderBookSideEncoder(): Encoder {
return getStructEncoder([
['idCounter', getU64Encoder()],
['makers', getMapEncoder(getAddressEncoder(), getMakerInfoEncoder())],
['orders', getArrayEncoder(getOrderInfoEncoder())],
]);
}
export function getOrderBookSideDecoder(): Decoder {
return getStructDecoder([
['idCounter', getU64Decoder()],
['makers', getMapDecoder(getAddressDecoder(), getMakerInfoDecoder())],
['orders', getArrayDecoder(getOrderInfoDecoder())],
]);
}
export function getOrderBookSideCodec(): Codec<
OrderBookSideArgs,
OrderBookSide
> {
return combineCodec(getOrderBookSideEncoder(), getOrderBookSideDecoder());
}