rubic-sdk
Version:
Simplify dApp creation
46 lines (45 loc) • 3.18 kB
TypeScript
import BigNumber from 'bignumber.js';
import { PriceTokenAmount } from "../../../../../../common/tokens";
import { BlockchainName, EvmBlockchainName } from "../../../../../../core/blockchain/models/blockchain-name";
import { EvmWeb3Private } from "../../../../../../core/blockchain/web3-private-service/web3-private/evm-web3-private/evm-web3-private";
import { EvmEncodeConfig } from "../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config";
import { ContractParams } from "../../../../../common/models/contract-params";
import { EncodeTransactionOptions } from "../../../../../common/models/encode-transaction-options";
import { SwapTransactionOptions } from "../../../../../common/models/swap-transaction-options";
import { EvmOnChainTrade } from "../../../../../on-chain/calculation-manager/providers/common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade";
import { MarkRequired } from 'ts-essentials';
import { TransactionConfig } from 'web3-core';
import { EvmCrossChainTrade } from '../evm-cross-chain-trade/evm-cross-chain-trade';
import { GasData } from '../evm-cross-chain-trade/models/gas-data';
import { FeeInfo } from '../models/fee-info';
import { GetContractParamsOptions } from '../models/get-contract-params-options';
import { CrossChainPaymentInfo, CrossChainTransferData } from './models/cross-chain-payment-info';
import { CrossChainTransferTradeParams } from './models/cross-chain-transfer-trade-params';
export declare abstract class CrossChainTransferTrade extends EvmCrossChainTrade {
static getGasData(from: PriceTokenAmount): Promise<GasData | null>;
protected paymentInfo: CrossChainTransferData | null;
readonly onChainTrade: EvmOnChainTrade | null;
protected get methodName(): string;
readonly isAggregator = false;
readonly from: PriceTokenAmount<EvmBlockchainName>;
readonly to: PriceTokenAmount<BlockchainName>;
readonly toTokenAmountMin: BigNumber;
readonly gasData: GasData;
readonly feeInfo: FeeInfo;
readonly priceImpact: number | null;
protected actualTokenAmount: BigNumber;
protected get web3Private(): EvmWeb3Private;
constructor(crossChainTrade: CrossChainTransferTradeParams);
getTransferTrade(receiverAddress: string, refundAddress?: string): Promise<CrossChainPaymentInfo>;
protected getTransactionConfigAndAmount(receiverAddress?: string, refundAddress?: string): Promise<{
config: EvmEncodeConfig;
amount: string;
}>;
protected abstract getPaymentInfo(receiverAddress: string, refundAddress?: string): Promise<CrossChainTransferData>;
encode(options: EncodeTransactionOptions): Promise<EvmEncodeConfig>;
protected getContractParams(options: MarkRequired<GetContractParamsOptions, 'receiverAddress'>, skipAmountChangeCheck?: boolean): Promise<ContractParams>;
encodeApprove(): Promise<TransactionConfig>;
needApprove(): Promise<boolean>;
swapDirect(options?: SwapTransactionOptions): Promise<string | never>;
protected setTransactionConfig(skipAmountChangeCheck: boolean, useCacheData: boolean, receiverAddress?: string, refundAddress?: string): Promise<EvmEncodeConfig>;
}