UNPKG

rubic-sdk

Version:
29 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCelerCrossChainContract = void 0; const errors_1 = require("../../../../../../common/errors"); const celer_cross_chain_contract_data_1 = require("../celer-cross-chain-contract-data"); const celer_cross_chain_contracts_addresses_1 = require("./celer-cross-chain-contracts-addresses"); const cross_chain_trade_providers_data_1 = require("./cross-chain-trade-providers-data"); const celer_cross_chain_supported_blockchain_1 = require("../models/celer-cross-chain-supported-blockchain"); const celerCrossChainContracts = celer_cross_chain_supported_blockchain_1.celerCrossChainSupportedBlockchains.reduce((acc, blockchain) => ({ ...acc, [blockchain]: null }), {}); function getCelerCrossChainContract(blockchain) { const storedContract = celerCrossChainContracts[blockchain]; if (storedContract) { return storedContract; } const pureProvidersData = cross_chain_trade_providers_data_1.crossChainTradeProvidersData[blockchain]; const swapContractAddress = celer_cross_chain_contracts_addresses_1.celerCrossChainContractsAddresses[blockchain]; if (!pureProvidersData) { throw new errors_1.RubicSdkError('Cross-Chain trade providers data has to be defined'); } const providersData = pureProvidersData.map(providerData => ({ // @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); return celerCrossChainContracts[blockchain]; } exports.getCelerCrossChainContract = getCelerCrossChainContract; //# sourceMappingURL=celer-cross-chain-contracts.js.map