@swaptoshi/dex-module
Version:
Klayr decentralized exchange (dex) on-chain module
91 lines (90 loc) • 3.52 kB
TypeScript
import { Modules } from 'klayr-framework';
import { DEXPoolData, Slot0, ImmutableSwapContext, MutableSwapContext, MutableContext, TreasurifyParams, TokenMethod } from '../types';
import { Uint24String } from './library/int';
import { DEXPool } from './factory';
import { DexGovernableConfig } from '../config';
export declare const defaultSlot0: Slot0;
export declare class PoolStore extends Modules.BaseStore<DEXPoolData> {
constructor(moduleName: string, index: number, stores: Modules.NamedRegistry, events: Modules.NamedRegistry);
addDependencies(tokenMethod: TokenMethod): void;
init(config: DexGovernableConfig): void;
getKey(tokenA: Buffer, tokenB: Buffer, fee: Uint24String): Buffer<ArrayBufferLike>;
getMutableRouter(ctx: MutableSwapContext): Promise<import("./factory").SwapRouter>;
getImmutablePool(ctx: ImmutableSwapContext, tokenA: Buffer, tokenB: Buffer, fee: Uint24String): Promise<DEXPool>;
getMutablePool(ctx: MutableSwapContext, tokenA: Buffer, tokenB: Buffer, fee: Uint24String): Promise<DEXPool>;
createPool(ctx: MutableSwapContext, tokenA: Buffer, tokenASymbol: string, tokenADecimal: number, tokenB: Buffer, tokenBSymbol: string, tokenBDecimal: number, fee: Uint24String): Promise<DEXPool>;
releaseTokenToProtocolTreasury(context: MutableContext, params: TreasurifyParams): Promise<void>;
private _checkDependencies;
schema: {
$id: string;
type: string;
required: string[];
properties: {
token0: {
dataType: string;
fieldNumber: number;
};
token1: {
dataType: string;
fieldNumber: number;
};
fee: {
dataType: string;
fieldNumber: number;
};
tickSpacing: {
dataType: string;
fieldNumber: number;
};
maxLiquidityPerTick: {
dataType: string;
fieldNumber: number;
};
feeGrowthGlobal0X128: {
dataType: string;
fieldNumber: number;
};
feeGrowthGlobal1X128: {
dataType: string;
fieldNumber: number;
};
liquidity: {
dataType: string;
fieldNumber: number;
};
slot0: {
type: string;
fieldNumber: number;
required: string[];
properties: {
sqrtPriceX96: {
dataType: string;
fieldNumber: number;
};
tick: {
dataType: string;
fieldNumber: number;
};
observationIndex: {
dataType: string;
fieldNumber: number;
};
observationCardinality: {
dataType: string;
fieldNumber: number;
};
observationCardinalityNext: {
dataType: string;
fieldNumber: number;
};
};
};
};
};
private readonly events;
private readonly stores;
private readonly moduleName;
private tokenMethod;
private config;
private dependencyReady;
}