UNPKG

rubic-sdk

Version:
43 lines 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OdosOnChainTrade = void 0; const errors_1 = require("../../../../../../common/errors"); const rubic_proxy_contract_address_1 = require("../../../../../cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address"); const aggregator_evm_on_chain_trade_abstract_1 = require("../../common/on-chain-aggregator/aggregator-evm-on-chain-trade-abstract"); const on_chain_trade_type_1 = require("../../common/models/on-chain-trade-type"); const odos_on_chain_api_service_1 = require("./services/odos-on-chain-api-service"); class OdosOnChainTrade extends aggregator_evm_on_chain_trade_abstract_1.AggregatorEvmOnChainTrade { get dexContractAddress() { throw new errors_1.RubicSdkError('Dex address is unknown before swap is started'); } get spenderAddress() { return this.useProxy ? rubic_proxy_contract_address_1.rubicProxyContractAddress[this.from.blockchain].gateway : this.providerGateway; } constructor(tradeStruct, providerAddress, providerGateway) { super(tradeStruct, providerAddress); this.type = on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ODOS; this.bestRouteRequestBody = tradeStruct.bestRouteRequestBody; this.providerGateway = providerGateway; } async getTransactionConfigAndAmount(options) { const { pathId } = await odos_on_chain_api_service_1.OdosOnChainApiService.getBestRoute(this.bestRouteRequestBody); const { transaction, outputTokens } = await odos_on_chain_api_service_1.OdosOnChainApiService.getSwapTx({ userAddr: this.walletAddress, receiver: options.receiverAddress, pathId }); const toAmount = outputTokens[0].amount; return { tx: { data: transaction.data, to: transaction.to, value: transaction.value }, toAmount }; } } exports.OdosOnChainTrade = OdosOnChainTrade; //# sourceMappingURL=odos-on-chain-trade.js.map