rubic-sdk
Version:
Simplify dApp creation
68 lines (67 loc) • 3.27 kB
TypeScript
import BigNumber from 'bignumber.js';
import { PriceTokenAmount } from "../../../../../common/tokens";
import { EvmBlockchainName } 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 { ContractParams } from "../../../../common/models/contract-params";
import { SwapTransactionOptions } from "../../../../common/models/swap-transaction-options";
import { CelerContractTrade } from "./celer-contract-trade/celer-contract-trade";
import { EvmCrossChainTrade } from "../common/emv-cross-chain-trade/evm-cross-chain-trade";
import { GasData } from "../common/emv-cross-chain-trade/models/gas-data";
import { FeeInfo } from "../common/models/fee-info";
import { GetContractParamsOptions } from "../common/models/get-contract-params-options";
import { OnChainSubtype } from "../common/models/on-chain-subtype";
import { TradeInfo } from "../common/models/trade-info";
import { TransactionReceipt } from 'web3-eth';
/**
* Calculated Celer cross-chain trade.
*/
export declare class CelerCrossChainTrade extends EvmCrossChainTrade {
private readonly maxSlippage;
/** @internal */
static getGasData(fromTrade: CelerContractTrade, toTrade: CelerContractTrade, cryptoFeeToken: PriceTokenAmount, maxSlippage: number): Promise<GasData | null>;
readonly type: "cbridge";
readonly isAggregator = false;
readonly onChainSubtype: OnChainSubtype;
readonly bridgeType: "cbridge";
readonly feeInPercents: number;
readonly feeInfo: FeeInfo;
readonly transitFeeToken: PriceTokenAmount;
readonly from: PriceTokenAmount<EvmBlockchainName>;
readonly to: PriceTokenAmount;
readonly toTokenAmountMin: BigNumber;
readonly fromTrade: CelerContractTrade;
readonly toTrade: CelerContractTrade;
readonly gasData: GasData | null;
readonly cryptoFeeToken: PriceTokenAmount;
private readonly deflationTokenManager;
isDeflationTokenInTargetNetwork: boolean;
private readonly slippage;
/**
* Gets price impact in source and target blockchains, based on tokens usd prices.
*/
get priceImpactData(): {
priceImpactFrom: number | null;
priceImpactTo: number | null;
};
protected get fromContractAddress(): string;
constructor(crossChainTrade: {
fromTrade: CelerContractTrade;
toTrade: CelerContractTrade;
cryptoFeeToken: PriceTokenAmount;
transitFeeToken: PriceTokenAmount;
gasData: GasData | null;
feeInPercents: number;
feeInfo: FeeInfo;
slippage: number;
}, providerAddress: string, maxSlippage: number);
swap(options?: SwapTransactionOptions): Promise<string | never>;
protected checkTradeErrors(): Promise<void | never>;
private checkContractsState;
private parseSwapErrors;
getContractParams(options: GetContractParamsOptions): Promise<ContractParams>;
private calculateSwapValue;
getTradeAmountRatio(fromUsd: BigNumber): BigNumber;
approve(options: EvmBasicTransactionOptions, checkNeedApprove?: boolean): Promise<TransactionReceipt>;
getUsdPrice(): BigNumber;
getTradeInfo(): TradeInfo;
}