@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
TypeScript
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]>;
}