UNPKG

hector-rubic-sdk

Version:
39 lines (38 loc) 1.94 kB
import BigNumber from 'bignumber.js'; import { PriceTokenAmount } from '../../../../../core/blockchain/tokens/price-token-amount'; import { AbiItem } from 'web3-utils'; import { BlockchainName } from '../../../../../core'; import { ProviderData } from '../../../models/provider-data'; import { CrossChainContractData } from './cross-chain-contract-data'; import { CrossChainSupportedInstantTradeProvider } from './models/cross-chain-supported-instant-trade'; export declare abstract class CrossChainContractTrade { readonly blockchain: BlockchainName; private readonly providerIndex; abstract readonly fromToken: PriceTokenAmount; abstract readonly toToken: PriceTokenAmount; abstract readonly toTokenAmountMin: BigNumber; abstract readonly contract: CrossChainContractData; get provider(): CrossChainSupportedInstantTradeProvider; protected get providerData(): ProviderData; protected constructor(blockchain: BlockchainName, providerIndex: number); abstract getMethodNameAndContractAbi(): { methodName: string; contractAbi: AbiItem[]; }; abstract getMethodArguments(toContractTrade: CrossChainContractTrade, walletAddress: string, providerAddress: string, options?: { swapTokenWithFee?: boolean; maxSlippage?: number; }): Promise<unknown[]>; protected abstract modifyArgumentsForProvider(methodArguments: unknown[][], walletAddress: string, swapTokenWithFee?: boolean): Promise<void>; /** * Returns `first path` method argument, converted from instant-trade data and chosen provider. * Must be called on source contract. */ protected abstract getFirstPath(): string[] | string; /** * Returns `second path` method argument, converted from instant-trade data and chosen provider. * Must be called on target contract. */ abstract getSecondPath(): string[]; abstract getSwapToUserMethodSignature(): string; }