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