rubic-sdk
Version:
Simplify dApp creation
45 lines (44 loc) • 2.97 kB
TypeScript
import BigNumber from 'bignumber.js';
import { PriceToken } from "../../../../../../../common/tokens";
import { EvmBlockchainName } from "../../../../../../../core/blockchain/models/blockchain-name";
import { MethodData } from "../../../../../../../core/blockchain/web3-public-service/web3-public/models/method-data";
import { EncodeTransactionOptions } from "../../../../../../common/models/encode-transaction-options";
import { OnChainTradeType } from "../../../common/models/on-chain-trade-type";
import { EvmEncodedConfigAndToAmount } from "../../../common/on-chain-aggregator/models/aggregator-on-chain-types";
import { EvmOnChainTrade } from "../../../common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade";
import { Exact } from "../../../common/on-chain-trade/evm-on-chain-trade/models/exact";
import { CreateTradeInstance } from "./models/create-trade-instance";
import { UniswapV3AlgebraRoute } from "./models/uniswap-v3-algebra-route";
import { UniswapV3AlgebraTradeStruct } from "./models/uniswap-v3-algebra-trade-struct";
import { UnwrapWethMethodName } from "./models/unwrapWethMethodName";
import { AbiItem } from 'web3-utils';
interface EstimateGasOptions {
slippageTolerance: number;
deadlineMinutes: number;
}
export declare abstract class UniswapV3AlgebraAbstractTrade extends EvmOnChainTrade {
static get type(): OnChainTradeType;
static estimateGasLimitForRoute(fromToken: PriceToken<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, exact: Exact, weiAmount: BigNumber, options: EstimateGasOptions, route: UniswapV3AlgebraRoute, createTradeInstance: CreateTradeInstance): Promise<BigNumber>;
static estimateGasLimitForRoutes(fromToken: PriceToken<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, exact: Exact, weiAmount: BigNumber, options: EstimateGasOptions, routes: UniswapV3AlgebraRoute[], createTradeInstance: CreateTradeInstance): Promise<BigNumber[]>;
private static getEstimateGasParams;
protected abstract readonly contractAbi: AbiItem[];
protected abstract readonly unwrapWethMethodName: UnwrapWethMethodName;
protected readonly exact: Exact;
deadlineMinutes: number;
get type(): OnChainTradeType;
protected get deadlineMinutesTimestamp(): number;
private get defaultEstimatedGas();
protected constructor(tradeStruct: UniswapV3AlgebraTradeStruct, providerAddress: string);
protected getAmountParams(): [string, string];
/**
* Returns swap `exactInput` method's name and arguments to use in `swap contract`.
*/
protected abstract getSwapRouterExactInputMethodData(walletAddress: string): MethodData;
protected getTransactionConfigAndAmount(options: EncodeTransactionOptions): Promise<EvmEncodedConfigAndToAmount>;
protected getSwapRouterMethodData(receiverAddress?: string): MethodData;
/**
* Returns encoded data of estimated gas function and default estimated gas.
*/
private getEstimateGasParams;
}
export {};