soulswap-rubik-sdk
Version:
Simplify dApp creation
39 lines (38 loc) • 2.12 kB
TypeScript
import { BasicTransactionOptions } from '@core/blockchain/models/basic-transaction-options';
import { PriceTokenAmount } from '@core/blockchain/tokens/price-token-amount';
import { EncodeTransactionOptions } from '@features/instant-trades/models/encode-transaction-options';
import { GasFeeInfo } from '@features/instant-trades/models/gas-fee-info';
import { SwapTransactionOptions } from '@features/instant-trades/models/swap-transaction-options';
import { TradeType } from 'src/features';
import { TransactionConfig } from 'web3-core';
import { TransactionReceipt } from 'web3-eth';
import { Web3Public } from '@core/blockchain/web3-public/web3-public';
import { BLOCKCHAIN_NAME } from '@core/blockchain/models/BLOCKCHAIN_NAME';
import { OptionsGasParams, TransactionGasParams } from '@features/instant-trades/models/gas-params';
export declare abstract class InstantTrade {
abstract readonly from: PriceTokenAmount;
abstract readonly to: PriceTokenAmount;
abstract gasFeeInfo: GasFeeInfo | null;
abstract slippageTolerance: number;
protected abstract contractAddress: string;
protected readonly web3Public: Web3Public;
abstract get type(): TradeType;
get toTokenAmountMin(): PriceTokenAmount;
protected get walletAddress(): string;
protected constructor(blockchain: BLOCKCHAIN_NAME);
needApprove(): Promise<boolean>;
approve(options?: BasicTransactionOptions): Promise<TransactionReceipt>;
protected checkAllowanceAndApprove(options?: Omit<SwapTransactionOptions, 'onConfirm'>): Promise<void>;
abstract swap(options?: SwapTransactionOptions): Promise<TransactionReceipt>;
abstract encode(options?: EncodeTransactionOptions): Promise<TransactionConfig>;
protected checkWalletState(): Promise<void>;
protected checkWalletConnected(): never | void;
private checkBlockchainCorrect;
protected getGasLimit(options?: {
gasLimit?: string;
}): string | undefined;
protected getGasPrice(options?: {
gasPrice?: string;
}): string | undefined;
protected getGasParams(options: OptionsGasParams): TransactionGasParams;
}