rubic-sdk
Version:
Simplify dApp creation
45 lines (44 loc) • 2.36 kB
TypeScript
import BigNumber from 'bignumber.js';
import { PriceToken, PriceTokenAmount } from "../../../../../common/tokens";
import { BlockchainName, EvmBlockchainName } from "../../../../../core/blockchain/models/blockchain-name";
import { RequiredCrossChainOptions } from "../../models/cross-chain-options";
import { CelerCrossChainContractData } from "./celer-cross-chain-contract-data";
import { getCelerCrossChainContract } from "./constants/celer-cross-chain-contracts";
import { CelerCrossChainSupportedBlockchain } from "./models/celer-cross-chain-supported-blockchain";
import { CrossChainProvider } from "../common/cross-chain-provider";
import { CalculationResult } from "../common/models/calculation-result";
interface CelerCrossChainOptions extends RequiredCrossChainOptions {
isUniV2?: boolean;
}
export declare class CelerCrossChainProvider extends CrossChainProvider {
readonly type: "cbridge";
protected contracts: typeof getCelerCrossChainContract;
isSupportedBlockchain(blockchain: BlockchainName): blockchain is CelerCrossChainSupportedBlockchain;
calculate(from: PriceTokenAmount<EvmBlockchainName>, to: PriceToken<EvmBlockchainName>, options: CelerCrossChainOptions): Promise<CalculationResult>;
protected checkContractsState(fromContract: CelerCrossChainContractData, toContract: CelerCrossChainContractData): Promise<void>;
/**
* Calculates celer bridge slippage.
* @param fromBlockchain Source blockchain.
* @param toBlockchain Target blockchain.
* @param amount Trade amount.
* @param transitToken Swap transit token.
* @returns Celer bridge slippage.
*/
private fetchCelerSlippage;
private fetchCelerAmount;
private fetchCelerEstimate;
private calculateBestTrade;
protected getToTransitTokenAmount(toBlockchain: CelerCrossChainSupportedBlockchain, transitToken: PriceTokenAmount, transitTokenMinAmount: BigNumber): Promise<{
toTransitTokenAmount: BigNumber;
transitFeeToken: PriceTokenAmount;
feeInPercents: number;
}>;
private getItCalculatedTrade;
private getBestItContractTrade;
private getCelerFeeInfo;
private checkMinMaxAmountsErrors;
private getMinMaxTransitTokenAmounts;
private getTokenAmountForExactTransitTokenAmount;
private getTokenAmountForExactTransitTokenAmountByProvider;
}
export {};