UNPKG

rubic-sdk-next

Version:
65 lines (64 loc) 4.16 kB
import BigNumber from 'bignumber.js'; import { PriceTokenAmount } from '../../../../../../common/tokens'; import { SolanaBlockchainName } 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 { SolanaWeb3Private } from '../../../../../../core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private'; import { SolanaWeb3Public } from '../../../../../../core/blockchain/web3-public-service/web3-public/solana-web3-public/solana-web3-public'; import { EvmEncodeConfig } from '../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-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 { RubicStep } from '../../../../../cross-chain/calculation-manager/providers/common/models/rubicStep'; 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 { EvmEncodedConfigAndToAmount } from '../../../models/aggregator-on-chain-types'; import { TransactionConfig } from 'web3-core'; import { TransactionReceipt } from 'web3-eth'; import { SolanaOnChainTradeStruct } from './models/solana-on-chain-trade-struct'; export declare abstract class SolanaOnChainTrade extends OnChainTrade { protected lastTransactionConfig: EvmEncodeConfig | null; readonly from: PriceTokenAmount<SolanaBlockchainName>; readonly to: PriceTokenAmount<SolanaBlockchainName>; readonly slippageTolerance: number; readonly path: RubicStep[]; /** * 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<SolanaBlockchainName>; protected readonly withDeflation: { from: IsDeflationToken; to: IsDeflationToken; }; protected get spenderAddress(): string; abstract readonly dexContractAddress: string; protected get web3Public(): SolanaWeb3Public; protected get web3Private(): SolanaWeb3Private; private readonly apiQuote; private readonly apiResponse; private readonly shouldCalculateConsumedParams; protected constructor(tradeStruct: SolanaOnChainTradeStruct, providerAddress: string, shouldCalculateConsumedParams: boolean); approve(_options: EvmBasicTransactionOptions, _checkNeedApprove?: boolean, _amount?: BigNumber | 'infinity'): Promise<TransactionReceipt>; encodeApprove(_tokenAddress: string, _spenderAddress: string, _value: BigNumber | 'infinity', _options?: EvmTransactionOptions): Promise<TransactionConfig>; protected checkAllowanceAndApprove(): Promise<void>; /** * Calculates value for swap transaction. * @param providerValue Value, returned from cross-chain provider. */ protected getSwapValue(providerValue?: BigNumber | string | number | null): string; swap(options?: SwapTransactionOptions): Promise<string | never>; encode(options: EncodeTransactionOptions): Promise<EvmEncodeConfig>; protected getTransactionConfigAndAmount(options?: EncodeTransactionOptions): Promise<EvmEncodedConfigAndToAmount>; protected setTransactionConfig(options: EncodeTransactionOptions): Promise<EvmEncodeConfig>; }