UNPKG

rubic-sdk-next

Version:
56 lines (55 loc) 2.27 kB
import { PriceToken, PriceTokenAmount, Token } from '../../../common/tokens'; import { BlockchainName } from '../../../core/blockchain/models/blockchain-name'; import { ProviderAddress } from '../../../core/sdk/models/provider-address'; import { EvmOnChainTrade } from './common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade'; import { OnChainManagerCalculationOptions } from './models/on-chain-manager-calculation-options'; import { WrappedOnChainTradeOrNull } from './models/wrapped-on-chain-trade-or-null'; /** * Contains methods to calculate on-chain trades. */ export declare class OnChainManager { private readonly providerAddress; private static readonly defaultCalculationTimeout; private readonly deflationTokenManager; constructor(providerAddress: ProviderAddress); /** * Calculates on-chain trades, sorted by output amount. * * @example * ```ts * const blockchain = BLOCKCHAIN_NAME.ETHEREUM; * // ETH * const fromTokenAddress = '0x0000000000000000000000000000000000000000'; * const fromAmount = 1; * // USDT * const toTokenAddress = '0xdac17f958d2ee523a2206206994597c13d831ec7'; * * const trades = await sdk.onChainManager.calculateTrade( * { blockchain, address: fromTokenAddress }, * fromAmount, * toTokenAddress * ); * const bestTrade = trades[0]; * * trades.forEach(trade => { * if (trade instanceof OnChainTrade) { * console.log(trade.type, `to amount: ${trade.to.tokenAmount.toFormat(3)}`) * } * }) * ``` * * @param fromToken Token to sell. * @param fromAmount Amount to sell. * @param toToken Token to get. * @param options Additional options. * @returns List of calculated on-chain trades. */ calculateTrade(fromToken: Token | { address: string; blockchain: BlockchainName; } | PriceToken, fromAmount: string | number, toToken: Token | string | PriceToken, options?: OnChainManagerCalculationOptions): Promise<WrappedOnChainTradeOrNull[]>; private getFullOptions; private isDeflationToken; static getWrapTrade(from: PriceTokenAmount, to: PriceToken): EvmOnChainTrade; private getWrappedWrapTrade; }