UNPKG

@swaptoshi/dex-module

Version:

Klayr decentralized exchange (dex) on-chain module

91 lines (90 loc) 3.52 kB
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; }