UNPKG

rubic-sdk

Version:
45 lines (44 loc) 2.36 kB
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 {};