UNPKG

moonwalkerswap-v1-sdk

Version:

An SDK for building applications on top of the Moonwalkerswap V1 protocol

114 lines (113 loc) 3.93 kB
import BigNumber from 'bignumber.js'; import { ethers } from 'ethers'; import { SUPPORTED_CHAIN_ID, TRADE_TYPE, TRADE_EXACT, FIXED_UNDERFLOW_BEHAVIOR } from './constants'; export declare type BigNumberish = BigNumber | ethers.utils.BigNumber | string | number; export declare type ChainIdOrProvider = SUPPORTED_CHAIN_ID | ethers.providers.AsyncSendable | ethers.providers.Provider; export declare function isChainId(chainIdOrProvider: ChainIdOrProvider): chainIdOrProvider is SUPPORTED_CHAIN_ID; export declare function isLowLevelProvider(chainIdOrProvider: ChainIdOrProvider): chainIdOrProvider is ethers.providers.AsyncSendable; export interface Token { chainId?: SUPPORTED_CHAIN_ID; address?: string; decimals: number; } export interface TokenAmount { token: Token; amount: BigNumberish; } export interface TokenAmountNormalized { token: Token; amount: BigNumber; } export interface TokenReserves { token: Token; exchange?: Token; avaxReserve: TokenAmount; tokenReserve: TokenAmount; } export interface TokenReservesNormalized { token: Token; exchange?: Token; avaxReserve: TokenAmountNormalized; tokenReserve: TokenAmountNormalized; } export interface AvaxReserves { token: Token; } export declare type OptionalReserves = TokenReserves | AvaxReserves | undefined; export declare function areTokenReserves(reserves: OptionalReserves): reserves is TokenReserves; export declare function areAVAXReserves(reserves: OptionalReserves): reserves is AvaxReserves; export declare type NormalizedReserves = TokenReservesNormalized | AvaxReserves; export declare function areTokenReservesNormalized(reserves: NormalizedReserves): reserves is TokenReservesNormalized; export interface Rate { rate: BigNumber; rateInverted: BigNumber; } export interface MarketDetails { tradeType: TRADE_TYPE; inputReserves: NormalizedReserves; outputReserves: NormalizedReserves; marketRate: Rate; } export interface TradeDetails { marketDetailsPre: MarketDetails; marketDetailsPost: MarketDetails; tradeType: TRADE_TYPE; tradeExact: TRADE_EXACT; inputAmount: TokenAmountNormalized; outputAmount: TokenAmountNormalized; executionRate: Rate; marketRateSlippage: BigNumber; executionRateSlippage: BigNumber; } export declare type MethodArgument = BigNumber | number | string; export interface ExecutionDetails { exchangeAddress: string; methodName: string; methodId: string; value: BigNumber; methodArguments: MethodArgument[]; } export declare type FlexibleFormat = BigNumber.Format | boolean; export declare function isFormat(flexibleFormat: FlexibleFormat): flexibleFormat is BigNumber.Format; export interface FormatSignificantOptions { significantDigits: number; roundingMode: BigNumber.RoundingMode; forceIntegerSignificance: boolean; format: FlexibleFormat; } export interface FormatFixedOptions { decimalPlaces: number; roundingMode: BigNumber.RoundingMode; dropTrailingZeros: boolean; underflowBehavior: FIXED_UNDERFLOW_BEHAVIOR; format: FlexibleFormat; } export interface _ChainIdAndProvider { chainId: number; provider: ethers.providers.Provider; } export interface _ParsedOptionalReserves { tradeType: TRADE_TYPE; inputReserves: NormalizedReserves; outputReserves: NormalizedReserves; } export interface _DecimalRate { numerator: BigNumber; denominator: BigNumber; decimalScalar: BigNumber; decimalScalarInverted: BigNumber; } export declare type _AnyRate = _DecimalRate | Rate; export interface _PartialTradeDetails { transput: BigNumber; inputReservesPost: NormalizedReserves; outputReservesPost: NormalizedReserves; } export interface _SlippageBounds { minimum: BigNumber; maximum: BigNumber; } export interface _PartialExecutionDetails { value: BigNumber; methodArguments: MethodArgument[]; }