UNPKG

hector-rubic-sdk

Version:
44 lines 2.52 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCelerCrossChainContract = void 0; var cross_chain_trade_providers_data_1 = require("../../../constants/cross-chain-trade-providers-data"); var celer_cross_chain_supported_blockchain_1 = require("./celer-cross-chain-supported-blockchain"); var celer_cross_chain_contracts_addresses_1 = require("./celer-cross-chain-contracts-addresses"); var celer_cross_chain_contract_data_1 = require("../celer-cross-chain-contract-data"); var rubic_cross_chain_contracts_addresses_1 = require("../../rubic-trade-provider/constants/rubic-cross-chain-contracts-addresses"); var celerCrossChainContracts = celer_cross_chain_supported_blockchain_1.celerCrossChainSupportedBlockchains.reduce(function (acc, blockchain) { var _a; return (__assign(__assign({}, acc), (_a = {}, _a[blockchain] = null, _a))); }, {}); function getCelerCrossChainContract(blockchain) { var storedContract = celerCrossChainContracts[blockchain]; if (storedContract) { return storedContract; } var pureProvidersData = cross_chain_trade_providers_data_1.crossChainTradeProvidersData[blockchain]; var swapContractAddress = celer_cross_chain_contracts_addresses_1.celerCrossChainContractsAddresses[blockchain]; var mainContractAddress = rubic_cross_chain_contracts_addresses_1.rubicCrossChainContractsAddresses[blockchain]; if (!pureProvidersData) { throw new Error('[RUBIC SDK] Cross-Chain trade providers data has to be defined.'); } var providersData = pureProvidersData.map(function (providerData) { return ({ // @ts-ignore Can't create instance of abstract class. provider: new providerData.ProviderClass(), methodSuffix: providerData.methodSuffix }); }); celerCrossChainContracts[blockchain] = new celer_cross_chain_contract_data_1.CelerCrossChainContractData(blockchain, swapContractAddress, providersData, mainContractAddress); return celerCrossChainContracts[blockchain]; } exports.getCelerCrossChainContract = getCelerCrossChainContract; //# sourceMappingURL=celer-cross-chain-contracts.js.map