UNPKG

rubic-sdk

Version:
38 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SquidRouterOnChainTrade = void 0; const squidrouter_api_service_1 = require("../../../../../common/providers/squidrouter/services/squidrouter-api-service"); const squidrouter_contract_address_1 = require("../../../../../cross-chain/calculation-manager/providers/squidrouter-provider/constants/squidrouter-contract-address"); const on_chain_trade_type_1 = require("../../common/models/on-chain-trade-type"); const aggregator_evm_on_chain_trade_abstract_1 = require("../../common/on-chain-aggregator/aggregator-evm-on-chain-trade-abstract"); class SquidRouterOnChainTrade extends aggregator_evm_on_chain_trade_abstract_1.AggregatorEvmOnChainTrade { get dexContractAddress() { const fromBlockchain = this.from.blockchain; return squidrouter_contract_address_1.SquidrouterContractAddress[fromBlockchain].providerRouter; } constructor(tradeStruct, providerAddress, providerGateway) { super(tradeStruct, providerAddress); this.type = on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.SQUIDROUTER; this.requestParams = tradeStruct.transactionRequest; this.providerGateway = providerGateway; } async getTransactionConfigAndAmount(options) { const requestParams = { ...this.requestParams, toAddress: options.receiverAddress || this.walletAddress }; const res = await squidrouter_api_service_1.SquidRouterApiService.getRoute(requestParams); this.squidrouterRequestId = res['x-request-id']; const route = res.route; return { tx: { data: route.transactionRequest.data, value: route.transactionRequest.value, to: route.transactionRequest.target }, toAmount: route.estimate.toAmount }; } } exports.SquidRouterOnChainTrade = SquidRouterOnChainTrade; //# sourceMappingURL=squidrouter-on-chain-trade.js.map