UNPKG

@subwallet/invariant-vara-sdk

Version:

<div align="center"> <h1>⚡Invariant protocol⚡</h1> <p> <a href="https://invariant.app/math-spec-vara.pdf">MATH SPEC 📄</a> | <a href="https://discord.gg/VzS3C9wR">DISCORD 🌐</a> | </p> </div>

127 lines (126 loc) 9.29 kB
import { UserMessageSent, GearApi, HexString, ProgramMetadata } from '@gear-js/api'; import { ISubmittableResult, IKeyringPair } from '@polkadot/types/types'; import { SignerOptions, SubmittableExtrinsic } from '@polkadot/api/types'; import { SimulateSwapResult } from '@subwallet/invariant-vara-sdk-wasm'; import { TypeRegistry } from '@polkadot/types'; import { TokenAmount, Price, QuoteResult, SqrtPrice, CrossTickEvent, InvariantEvent, SwapEvent, PositionCreatedEvent, PositionRemovedEvent, CalculateSwapResult, FeeTier, Percentage, Pool, PoolKey, Position, Tick, LiquidityTick, PositionTick, Tickmap, _calculateAmountDeltaResult, LiquidityBreakpoint, Liquidity } from './schema.js'; import { Network } from './network.js'; export { HexString } from '@gear-js/api'; export type Signer = string | IKeyringPair; export type ActorId = Uint8Array | HexString; export declare const initGearApi: (network: Network) => Promise<GearApi>; export declare const subscribeToNewHeads: (api: GearApi) => Promise<VoidFunction>; export declare const getWasm: (contractName: string) => Promise<any>; export declare const createTypeByName: (meta: ProgramMetadata, type: string, payload: any) => import("@polkadot/types/types").Codec; export declare const integerSafeCast: (value: bigint) => number; export type Result<T> = { ok: T; } | { err: string; }; export declare const unwrapResult: <T>(result: Result<T>) => T; export declare const convertTick: (tick: any) => Tick; export declare const convertLiquidityTick: (tick: any) => LiquidityTick; export declare const convertPositionTick: (tick: any) => PositionTick; export declare const convertFeeTier: (feeTier: any) => FeeTier; export declare const convertPoolKey: (poolKey: any) => PoolKey; export declare const convertPool: (pool: any) => Pool; export declare const convertPosition: (position: any) => Position; export declare const convertPositions: (positions: any) => [Pool, [Position, number][]][]; export declare const convertPositionCreatedEvent: (positionEvent: any) => PositionCreatedEvent; export declare const convertPositionRemovedEvent: (positionEvent: any) => PositionRemovedEvent; export declare const convertSwapEvent: (swapEvent: any) => SwapEvent; export declare const convertCrossTickEvent: (crossTickEvent: any) => CrossTickEvent; export declare const convertCalculateSwapResult: (calculateSwapResult: any) => CalculateSwapResult; export declare const convertQuoteResult: (quoteResult: any) => QuoteResult; export interface IMethodReturnType<T> { msgId: HexString; blockHash: HexString; txHash: HexString; response: () => Promise<T>; } export interface ITransactionBuilder { signAndSend(): Promise<IMethodReturnType<any>>; withAccount(signer: Signer): this; } export declare class TransactionWrapper<U> { private txBuilder; private decodeCallback; private validateCallback; constructor(txBuilder: ITransactionBuilder); signAndSend(): Promise<U>; withAccount(signer: Signer): this; withDecode(decodeFn: (t: any) => U): this; withValidate(validateFn: (t: UserMessageSent) => string | null): this; get extrinsic(): SubmittableExtrinsic<'promise', ISubmittableResult>; get validation(): ((t: UserMessageSent) => string | null) | null; } export declare const validateFungibleTokenResponse: (message: UserMessageSent) => "Token response invalid" | null; export declare const validateInvariantSingleDeposit: (message: UserMessageSent) => "Deposit response invalid" | null; export declare const validateInvariantSingleWithdraw: (message: UserMessageSent) => "Deposit response invalid" | null; export declare const validateInvariantVaraDeposit: (message: UserMessageSent) => "Deposit response invalid" | null; export declare const validateInvariantVaraWithdraw: (message: UserMessageSent) => "Deposit response invalid" | null; export declare const validateInvariantPairDeposit: (message: UserMessageSent) => "Deposit response invalid" | null; export declare const validateInvariantPairWithdraw: (message: UserMessageSent) => "Deposit response invalid" | null; export type SwapEventCallback = { ident: InvariantEvent.SwapEvent; callback: (event: SwapEvent) => void | Promise<void>; }; export type CrossTickEventCallback = { ident: InvariantEvent.CrossTickEvent; callback: (event: CrossTickEvent) => void | Promise<void>; }; export type PositionRemovedEventCallback = { ident: InvariantEvent.PositionRemovedEvent; callback: (event: PositionRemovedEvent) => void | Promise<void>; }; export type PositionCreatedEventCallback = { ident: InvariantEvent.PositionCreatedEvent; callback: (event: PositionCreatedEvent) => void | Promise<void>; }; export type InvariantEventCallback = SwapEventCallback | CrossTickEventCallback | PositionRemovedEventCallback | PositionCreatedEventCallback; export declare const decodeEvent: (registry: TypeRegistry, payload: HexString, prefix: string) => any; export declare const calculatePriceImpact: (startingSqrtPrice: SqrtPrice, endingSqrtPrice: SqrtPrice) => Percentage; export declare const sqrtPriceToPrice: (sqrtPrice: SqrtPrice) => Price; export declare const priceToSqrtPrice: (price: Price) => SqrtPrice; export declare const calculateLiquidityBreakpoints: (ticks: (Tick | LiquidityTick)[]) => LiquidityBreakpoint[]; export declare const calculateSqrtPriceAfterSlippage: (sqrtPrice: SqrtPrice, slippage: Percentage, up: boolean) => SqrtPrice; export declare function filterTicks<T extends Tick | LiquidityTick>(ticks: T[], tickIndex: bigint, xToY: boolean): T[]; export declare function filterTickmap(tickmap: Tickmap, tickSpacing: bigint, index: bigint, xToY: boolean): Tickmap; export declare const delay: (delayMs: number) => Promise<unknown>; export declare const calculateTokenAmounts: (pool: Pool, position: Position) => _calculateAmountDeltaResult; export declare const _calculateTokenAmounts: (pool: Pool, position: Position, sign: boolean) => _calculateAmountDeltaResult; export declare const newFeeTier: (fee: Percentage, tickSpacing: bigint) => FeeTier; export declare const newPoolKey: (token0: HexString, token1: HexString, feeTier: FeeTier) => PoolKey; export declare const calculateFee: (pool: Pool, position: Position, lowerTick: Tick, upperTick: Tick) => [TokenAmount, TokenAmount]; export declare const getLiquidityByX: (amountX: TokenAmount, lowerTick: bigint, upperTick: bigint, sqrtPrice: SqrtPrice, roundingUp: boolean) => any; export declare const getLiquidityByY: (amountY: TokenAmount, lowerTick: bigint, upperTick: bigint, sqrtPrice: SqrtPrice, roundingUp: boolean) => any; export declare const calculateTick: (sqrtPrice: SqrtPrice, tickSpacing: bigint) => bigint; export declare const isTokenX: (token0: HexString, token1: HexString) => boolean; export declare const getMinSqrtPrice: (tickSpacing: bigint) => SqrtPrice; export declare const getMaxSqrtPrice: (tickSpacing: bigint) => SqrtPrice; export declare const getMaxChunk: (tickSpacing: bigint) => bigint; export declare const getMaxTick: (tickSpacing: bigint) => bigint; export declare const getMinTick: (tickSpacing: bigint) => bigint; export declare const toFeeGrowth: (val: bigint, scale: bigint) => bigint; export declare const toLiquidity: (val: bigint, scale: bigint) => bigint; export declare const toFixedPoint: (val: bigint, scale: bigint) => bigint; export declare const toPercentage: (val: bigint, scale: bigint) => bigint; export declare const toPrice: (val: bigint, scale: bigint) => bigint; export declare const toSecondsPerLiquidity: (val: bigint, scale: bigint) => bigint; export declare const toSqrtPrice: (val: bigint, scale: bigint) => bigint; export declare const toTokenAmount: (val: bigint, scale: bigint) => bigint; export declare const positionToTick: (chunk: bigint, bit: bigint, tickSpacing: bigint) => bigint; export declare const calculateSqrtPrice: (tickIndex: bigint) => bigint; export declare const simulateInvariantSwap: (tickmap: Tickmap, feeTier: FeeTier, pool: Pool, liquidityTicks: LiquidityTick[], xToY: boolean, amount: bigint, byAmountIn: boolean, sqrtPriceLimit: bigint) => SimulateSwapResult; export declare const calculateFeeTierWithLinearRatio: (tickCount: bigint) => FeeTier; export declare const calculateConcentration: (tickSpacing: number, minimumRange: number, n: number) => number; export declare const calculateTickDelta: (tickSpacing: number, minimumRange: number, concentration: number) => number; export declare const getConcentrationArray: (tickSpacing: number, minimumRange: number, currentTick: number) => number[]; export declare const calculateAmountDelta: (currentTickIndex: bigint, currentSqrtPrice: bigint, liquidity: bigint, roundingUp: boolean, upperTickIndex: bigint, lowerTickIndex: bigint) => bigint[]; export declare const calculateTokenAmountsWithSlippage: (tickSpacing: bigint, currentSqrtPrice: SqrtPrice, liquidity: Liquidity, lowerTickIndex: bigint, upperTickIndex: bigint, slippage: Percentage, roundingUp: boolean) => [bigint, bigint]; export declare class BatchError extends Error { failedTxs: Map<number, string>; constructor(failedTxs: Map<number, string>); } export declare const batchTxs: (api: GearApi, account: Signer, transactions: TransactionWrapper<any>[], options?: Partial<SignerOptions>) => Promise<UserMessageSent[]>;