UNPKG

rubic-sdk

Version:
52 lines 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PiteasTrade = 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 piteas_router_address_1 = require("./constants/piteas-router-address"); const piteas_api_service_1 = require("./piteas-api-service"); 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 PiteasTrade extends aggregator_evm_on_chain_trade_abstract_1.AggregatorEvmOnChainTrade { get spenderAddress() { return this.useProxy ? rubic_proxy_contract_address_1.rubicProxyContractAddress[this.from.blockchain].gateway : this.providerGateway; } get dexContractAddress() { return piteas_router_address_1.piteasRouterAddress; } constructor(tradeStruct, providerAddress, quoteRequestParams) { super(tradeStruct, providerAddress); this.type = on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.PITEAS; this.providerGateway = piteas_router_address_1.piteasRouterAddress; this.quoteRequestParams = quoteRequestParams; } async getTransactionConfigAndAmount(options) { const account = options.receiverAddress || options.fromAddress; try { const { destAmount, gasUseEstimate, methodParameters } = await piteas_api_service_1.PiteasApiService.fetchQuote({ ...this.quoteRequestParams, account }); const tx = { to: piteas_router_address_1.piteasRouterAddress, data: methodParameters.calldata, value: methodParameters.value, gas: gasUseEstimate.toString() }; return { tx, toAmount: destAmount }; } catch (error) { if ('statusCode' in error && 'message' in error) { throw new errors_1.RubicSdkError(error.message); } throw error; } } } exports.PiteasTrade = PiteasTrade; //# sourceMappingURL=piteas-trade.js.map