UNPKG

rubic-sdk

Version:
42 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenOceanSuiTrade = void 0; const errors_1 = require("../../../../../../../common/errors"); const updated_rates_error_1 = require("../../../../../../../common/errors/cross-chain/updated-rates-error"); const open_ocean_api_service_1 = require("../services/open-ocean-api-service"); const on_chain_trade_type_1 = require("../../../common/models/on-chain-trade-type"); const aggregator_sui_on_chain_trade_abstract_1 = require("../../../common/on-chain-aggregator/aggregator-sui-on-chain-trade-abstract"); class OpenOceanSuiTrade extends aggregator_sui_on_chain_trade_abstract_1.AggregatorSuiOnChainTrade { get spenderAddress() { throw new Error('Not implemented'); } get dexContractAddress() { throw new errors_1.RubicSdkError('Dex address is unknown before swap is started'); } constructor(tradeStruct, providerAddress) { super(tradeStruct, providerAddress); this.type = on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.OPEN_OCEAN; } async encodeDirect(options) { await this.checkFromAddress(options.fromAddress, true); try { const transactionData = await this.getTxConfigAndCheckAmount(options.receiverAddress, options.fromAddress, options.skipAmountCheck); return { transaction: transactionData.transaction }; } catch (err) { if (err instanceof updated_rates_error_1.UpdatedRatesError || err instanceof errors_1.RubicSdkError) { throw err; } throw new errors_1.RubicSdkError('Can not encode trade'); } } async getToAmountAndTxData(receiverAddress, fromAddress) { const swapQuoteResponse = await open_ocean_api_service_1.OpenOceanApiService.fetchSuiSwapData(this.fromWithoutFee, this.to, receiverAddress || fromAddress || this.walletAddress, this.slippageTolerance, this.walletAddress); const tx = swapQuoteResponse.data; return { tx: { transaction: tx.data }, toAmount: tx.outAmount }; } } exports.OpenOceanSuiTrade = OpenOceanSuiTrade; //# sourceMappingURL=open-ocean-sui-trade.js.map