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