rubic-sdk
Version:
Simplify dApp creation
52 lines • 2.37 kB
JavaScript
;
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