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>

83 lines (82 loc) 7.72 kB
import { GearApi, HexString } from '@gear-js/api'; import { KeyringPair } from '@polkadot/keyring/types'; import { ActorId, Signer, TransactionWrapper, InvariantEventCallback } from './utils.js'; import { InvariantContract } from './invariant-contract.js'; import { CalculateSwapResult, FeeTier, Liquidity, Position, Pool, Percentage, PoolKey, SqrtPrice, Tick, TokenAmount, QuoteResult, LiquidityTick, Tickmap, PositionTick, SwapHop } from './schema.js'; export type Page = { index: number; entries: [Position, Pool][]; }; export declare class Invariant { readonly contract: InvariantContract; private readonly gasLimit; eventListenerStarted: boolean; private eventListeners; private constructor(); static deploy(api: GearApi, deployer: KeyringPair, protocolFee: Percentage, gasLimit?: bigint): Promise<Invariant>; static load(api: GearApi, programId: HexString, gasLimit?: bigint): Promise<Invariant>; programId(): HexString; on(callback: InvariantEventCallback): void; private listen; off(callback: InvariantEventCallback): void; feeTierExists(feeTier: FeeTier): Promise<boolean>; getFeeTiers(): Promise<FeeTier[]>; getPool(token0: ActorId, token1: ActorId, feeTier: FeeTier): Promise<Pool>; getPoolKeys(size: bigint, offset: bigint): Promise<[PoolKey[], bigint]>; getAllPoolKeys(): Promise<PoolKey[]>; getAllPoolsForPair(token0: ActorId, token1: ActorId): Promise<[FeeTier, Pool][]>; getPosition(ownerId: ActorId, index: bigint): Promise<Position>; getAllPositions(owner: ActorId, positionsCount?: bigint, skipPages?: number[], positionsPerPage?: bigint): Promise<Page[]>; getPositionWithAssociates(owner: ActorId, index: bigint): Promise<[Position, Pool, Tick, Tick]>; getPositions(ownerId: ActorId, size: bigint, offset: bigint): Promise<[[Position, Pool][], bigint]>; _getAllPositions(ownerId: ActorId): Promise<Position[]>; getProtocolFee(): Promise<Percentage>; getTick(key: PoolKey, index: bigint): Promise<Tick>; getTickmap(key: PoolKey): Promise<Tickmap>; getLiquidityTicks(key: PoolKey, tickmap: bigint[]): Promise<LiquidityTick[]>; getLiquidityTicksAmount(key: PoolKey): Promise<TokenAmount>; getAllLiquidityTicks(key: PoolKey, tickmap: Tickmap): Promise<LiquidityTick[]>; isTickInitialized(key: PoolKey, index: bigint): Promise<boolean>; getUserBalances(user: ActorId): Promise<Map<string, TokenAmount>>; getUserPositionAmount(key: PoolKey, owner: ActorId): Promise<TokenAmount>; getPositionTicks(owner: ActorId, offset: bigint): Promise<PositionTick[]>; quote(poolKey: PoolKey, xToY: boolean, amount: TokenAmount, byAmountIn: boolean): Promise<QuoteResult>; changeProtocolFeeTx(fee: Percentage, gasLimit?: bigint): Promise<TransactionWrapper<Percentage>>; changeProtocolFee(signer: Signer, fee: Percentage, gasLimit?: bigint): Promise<Percentage>; addFeeTierTx(feeTier: FeeTier, gasLimit?: bigint): Promise<TransactionWrapper<FeeTier>>; addFeeTier(signer: Signer, feeTier: FeeTier, gasLimit?: bigint): Promise<FeeTier>; changeFeeReceiverTx(poolKey: PoolKey, feeReceiver: ActorId, gasLimit?: bigint): Promise<TransactionWrapper<null>>; changeFeeReceiver(signer: Signer, poolKey: PoolKey, feeReceiver: ActorId, gasLimit?: bigint): Promise<null>; claimFeeTx(index: bigint, gasLimit?: bigint): Promise<TransactionWrapper<[TokenAmount, TokenAmount]>>; claimFee(signer: Signer, index: bigint, gasLimit?: bigint): Promise<[TokenAmount, TokenAmount]>; createPoolTx(key: PoolKey, initSqrtPrice: bigint, gasLimit?: bigint): Promise<TransactionWrapper<null>>; createPool(signer: Signer, key: PoolKey, initSqrtPrice: bigint, gasLimit?: bigint): Promise<null>; createPositionTx(key: PoolKey, lowerTick: bigint, upperTick: bigint, liquidityDelta: Liquidity, spotSqrtPrice: SqrtPrice, slippageTolerance: SqrtPrice, gasLimit?: bigint): Promise<TransactionWrapper<Position>>; createPosition(signer: Signer, key: PoolKey, lowerTick: bigint, upperTick: bigint, liquidityDelta: Liquidity, spotSqrtPrice: SqrtPrice, slippageTolerance: SqrtPrice, gasLimit?: bigint): Promise<Position>; depositSingleTokenTx(token: ActorId, amount: bigint, gasLimit?: bigint): Promise<TransactionWrapper<TokenAmount>>; depositSingleToken(signer: Signer, token: ActorId, amount: bigint, gasLimit?: bigint): Promise<TokenAmount>; depositTokenPairTx(tokenX: [ActorId, TokenAmount], tokenY: [ActorId, TokenAmount], gasLimit?: bigint): Promise<TransactionWrapper<[TokenAmount, TokenAmount]>>; depositTokenPair(signer: Signer, tokenX: [ActorId, TokenAmount], tokenY: [ActorId, TokenAmount], gasLimit?: bigint): Promise<[TokenAmount, TokenAmount]>; depositVaraTx(amount: bigint, gasLimit?: bigint): Promise<TransactionWrapper<TokenAmount>>; depositVara(account: Signer, amount: bigint, gasLimit?: bigint): Promise<TokenAmount>; removeFeeTierTx(feeTier: FeeTier, gasLimit?: bigint): Promise<TransactionWrapper<FeeTier>>; removeFeeTier(signer: Signer, feeTier: FeeTier, gasLimit?: bigint): Promise<FeeTier>; removePositionTx(index: bigint, gasLimit?: bigint): Promise<TransactionWrapper<[TokenAmount, TokenAmount]>>; removePosition(signer: Signer, index: bigint, gasLimit?: bigint): Promise<[TokenAmount, TokenAmount]>; transferPositionTx(index: bigint, receiver: ActorId, gasLimit?: bigint): Promise<TransactionWrapper<null>>; transferPosition(signer: Signer, index: bigint, receiver: ActorId, gasLimit?: bigint): Promise<null>; swapTx(poolKey: PoolKey, xToY: boolean, amount: TokenAmount, byAmountIn: boolean, sqrtPriceLimit: SqrtPrice, gasLimit?: bigint): Promise<TransactionWrapper<CalculateSwapResult>>; swap(signer: Signer, poolKey: PoolKey, xToY: boolean, amount: TokenAmount, byAmountIn: boolean, sqrtPriceLimit: SqrtPrice, gasLimit?: bigint): Promise<CalculateSwapResult>; swapWithSlippageTx(poolKey: PoolKey, xToY: boolean, amount: TokenAmount, byAmountIn: boolean, estimatedSqrtPrice: SqrtPrice, slippage: Percentage, gasLimit?: bigint): Promise<TransactionWrapper<CalculateSwapResult>>; swapWithSlippage(signer: Signer, poolKey: PoolKey, xToY: boolean, amount: TokenAmount, byAmountIn: boolean, estimatedSqrtPrice: SqrtPrice, slippage: Percentage, gasLimit?: bigint): Promise<CalculateSwapResult>; swapRouteTx(amountIn: TokenAmount, expectedAmountOut: TokenAmount, slippage: Percentage, swaps: SwapHop[], gasLimit?: bigint): Promise<TransactionWrapper<TokenAmount>>; swapRoute(signer: Signer, amountIn: TokenAmount, expectedAmountOut: TokenAmount, slippage: Percentage, swaps: SwapHop[], gasLimit?: bigint): Promise<TokenAmount>; withdrawProtocolFeeTx(poolKey: PoolKey, gasLimit?: bigint): Promise<TransactionWrapper<[TokenAmount, TokenAmount]>>; withdrawProtocolFee(signer: Signer, poolKey: PoolKey, gasLimit?: bigint): Promise<[TokenAmount, TokenAmount]>; withdrawSingleTokenTx(token: ActorId, amount?: TokenAmount | null, gasLimit?: bigint): Promise<TransactionWrapper<TokenAmount>>; withdrawSingleToken(signer: Signer, token: ActorId, amount?: TokenAmount | null, gasLimit?: bigint): Promise<TokenAmount>; withdrawVaraTx(amount: bigint | null, gasLimit?: bigint): Promise<TransactionWrapper<TokenAmount>>; withdrawVara(account: Signer, amount: bigint | null, gasLimit?: bigint): Promise<TokenAmount>; withdrawTokenPairTx(tokenX: [ActorId, TokenAmount | null], tokenY: [ActorId, TokenAmount | null], gasLimit?: bigint): Promise<TransactionWrapper<[TokenAmount, TokenAmount]>>; withdrawTokenPair(signer: Signer, tokenX: [ActorId, TokenAmount | null], tokenY: [ActorId, TokenAmount | null], gasLimit?: bigint): Promise<[TokenAmount, TokenAmount]>; }