import BigNumber from 'bignumber.js'; import { PriceTokenAmount, Token } from "../../../../../../../common/tokens"; import { SuiBlockchainName } from "../../../../../../../core/blockchain/models/blockchain-name"; import { EvmBasicTransactionOptions } from "../../../../../../../core/blockchain/web3-private-service/web3-private/evm-web3-private/models/evm-basic-transaction-options"; import { EvmTransactionOptions } from "../../../../../../../core/blockchain/web3-private-service/web3-private/evm-web3-private/models/evm-transaction-options"; import { SuiWeb3Private } from "../../../../../../../core/blockchain/web3-private-service/web3-private/sui-web3-private/sui-web3-private"; import { SuiWeb3Public } from "../../../../../../../core/blockchain/web3-public-service/web3-public/sui-web3-public/sui-web3-public"; import { SuiEncodeConfig } from "../../../../../../../core/blockchain/web3-pure/typed-web3-pure/sui-web3-pure/sui-encode-config"; import { EncodeTransactionOptions } from "../../../../../../common/models/encode-transaction-options"; import { SwapTransactionOptions } from "../../../../../../common/models/swap-transaction-options"; import { FeeInfo } from "../../../../../../cross-chain/calculation-manager/providers/common/models/fee-info"; import { IsDeflationToken } from "../../../../../../deflation-token-manager/models/is-deflation-token"; import { GasFeeInfo } from "../evm-on-chain-trade/models/gas-fee-info"; import { OnChainTrade } from "../on-chain-trade"; import { TransactionConfig } from 'web3-core'; import { TransactionReceipt } from 'web3-eth'; import { SuiOnChainTradeStruct } from './models/sui-on-chain-trade-struct'; export declare abstract class SuiOnChainTrade extends OnChainTrade { readonly from: PriceTokenAmount; readonly to: PriceTokenAmount; readonly slippageTolerance: number; readonly path: ReadonlyArray; /** * Gas fee info, including gas limit and gas price. */ readonly gasFeeInfo: GasFeeInfo | null; readonly feeInfo: FeeInfo; /** * True, if trade must be swapped through on-chain proxy contract. */ readonly useProxy: boolean; /** * Contains from amount, from which proxy fees were subtracted. * If proxy is not used, then amount is equal to from amount. */ protected readonly fromWithoutFee: PriceTokenAmount; protected readonly withDeflation: { from: IsDeflationToken; to: IsDeflationToken; }; protected get spenderAddress(): string; abstract readonly dexContractAddress: string; protected get web3Public(): SuiWeb3Public; protected get web3Private(): SuiWeb3Private; protected constructor(tradeStruct: SuiOnChainTradeStruct, providerAddress: string); approve(_options: EvmBasicTransactionOptions, _checkNeedApprove?: boolean, _amount?: BigNumber | 'infinity'): Promise; encodeApprove(_tokenAddress: string, _spenderAddress: string, _value: BigNumber | 'infinity', _options?: EvmTransactionOptions): Promise; protected checkAllowanceAndApprove(): Promise; swap(options?: SwapTransactionOptions): Promise; encode(options: EncodeTransactionOptions): Promise; /** * Encodes trade to swap it directly through dex contract. */ abstract encodeDirect(options: EncodeTransactionOptions): Promise; }