@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
69 lines (68 loc) • 1.76 kB
TypeScript
import { PublicKey } from "@solana/web3.js";
import BN from "bn.js";
import Decimal from "decimal.js";
/*** Pool ***/
export declare type PoolData = {
address: PublicKey;
tokenMintA: PublicKey;
tokenMintB: PublicKey;
tickSpacing: number;
feeRate: number;
protocolFeeRate: number;
liquidity: BN;
sqrtPrice: BN;
tickCurrentIndex: number;
protocolFeeOwedA: BN;
protocolFeeOwedB: BN;
tokenVaultAmountA: BN;
tokenVaultAmountB: BN;
rewards: PoolRewardInfo[];
feeGrowthGlobalAX64: BN;
feeGrowthGlobalBX64: BN;
feePercentage: Decimal;
protocolFeePercentage: Decimal;
price: Decimal;
decimalProtocolFeeOwedA: Decimal;
decimalProtocolFeeOwedB: Decimal;
decimalTokenVaultAmountA: Decimal;
decimalTokenVaultAmountB: Decimal;
tokenDecimalsA: number;
tokenDecimalsB: number;
};
export declare type PoolRewardInfo = {
mint: PublicKey;
vault: PublicKey;
vaultAmount?: BN;
emissionsPerSecondX64: BN;
growthGlobalX64: BN;
decimalVaultAmount?: Decimal;
emissionsPerSecond?: Decimal;
};
/*** Position ***/
export declare type UserPositionData = {
address: PublicKey;
poolAddress: PublicKey;
positionMint: PublicKey;
liquidity: BN;
tickLowerIndex: number;
tickUpperIndex: number;
feeOwedA: BN;
feeOwedB: BN;
rewards: UserPositionRewardInfo[];
priceLower: Decimal;
priceUpper: Decimal;
decimalFeeOwedA: Decimal;
decimalFeeOwedB: Decimal;
};
export declare type UserPositionRewardInfo = {
mint: PublicKey;
amountOwed?: BN;
decimalAmountOwed?: Decimal;
};
/*** Misc ***/
export declare type UserToken = {
address: PublicKey;
amount?: string;
decimals?: number;
mint?: string;
};