rubic-sdk-next
Version:
Simplify dApp creation
58 lines • 2.67 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SymbiosisEvmCcrTrade = void 0;
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
const injector_1 = require("../../../../../../core/injector/injector");
const cross_chain_trade_type_1 = require("../../../models/cross-chain-trade-type");
const evm_cross_chain_trade_1 = require("../../common/evm-cross-chain-trade/evm-cross-chain-trade");
const bridge_type_1 = require("../../common/models/bridge-type");
const symbiosis_utils_1 = require("../symbiosis-utils");
/**
* Calculated Symbiosis cross-chain trade.
*/
class SymbiosisEvmCcrTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
get fromBlockchain() {
return this.from.blockchain;
}
get fromContractAddress() {
return this.contractAddresses.providerGateway;
}
get methodName() {
return 'startBridgeTokensViaGenericCrossChain';
}
get tronWeb3Public() {
return injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.TRON);
}
constructor(crossChainTrade, providerAddress, routePath, apiQuote, apiResponse) {
super(providerAddress, routePath, apiQuote, apiResponse);
this.type = cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.SYMBIOSIS;
this.isAggregator = false;
this.bridgeType = bridge_type_1.BRIDGE_TYPE.SYMBIOSIS;
this.from = crossChainTrade.from;
this.to = crossChainTrade.to;
this.swappingParams = crossChainTrade.swapParams;
this.gasData = crossChainTrade.gasData;
this.priceImpact = crossChainTrade.priceImpact;
this.toTokenAmountMin = this.to.tokenAmount.multipliedBy(1 - crossChainTrade.slippage);
this.feeInfo = crossChainTrade.feeInfo;
this.slippage = crossChainTrade.slippage;
this.transitAmount = crossChainTrade.transitAmount;
this.onChainSubtype = symbiosis_utils_1.SymbiosisUtils.getSubtype(crossChainTrade.tradeType, crossChainTrade.to.blockchain);
this.contractAddresses = crossChainTrade.contractAddresses;
this.promotions = crossChainTrade?.promotions || [];
}
getTradeAmountRatio(fromUsd) {
return fromUsd.dividedBy(this.to.tokenAmount);
}
getTradeInfo() {
return {
estimatedGas: this.estimatedGas,
feeInfo: this.feeInfo,
priceImpact: this.priceImpact ?? null,
slippage: this.slippage * 100,
routePath: this.routePath
};
}
}
exports.SymbiosisEvmCcrTrade = SymbiosisEvmCcrTrade;
//# sourceMappingURL=symbiosis-ccr-evm-trade.js.map