airgap-coin-lib
Version:
The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.
52 lines • 4.29 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var AeternityProtocolOptions_1 = require("../protocols/aeternity/AeternityProtocolOptions");
var BitcoinProtocolOptions_1 = require("../protocols/bitcoin/BitcoinProtocolOptions");
var CosmosProtocolOptions_1 = require("../protocols/cosmos/CosmosProtocolOptions");
var EthereumProtocolOptions_1 = require("../protocols/ethereum/EthereumProtocolOptions");
var GroestlcoinProtocolOptions_1 = require("../protocols/groestlcoin/GroestlcoinProtocolOptions");
var KusamaProtocolOptions_1 = require("../protocols/substrate/implementations/KusamaProtocolOptions");
var PolkadotProtocolOptions_1 = require("../protocols/substrate/implementations/PolkadotProtocolOptions");
var TezosFAProtocolOptions_1 = require("../protocols/tezos/fa/TezosFAProtocolOptions");
var TezosProtocolOptions_1 = require("../protocols/tezos/TezosProtocolOptions");
var assert_1 = require("./assert");
var ProtocolSymbols_1 = require("./ProtocolSymbols");
// tslint:disable:cyclomatic-complexity
var getProtocolOptionsByIdentifier = function (identifier, network) {
switch (identifier) {
case ProtocolSymbols_1.MainProtocolSymbols.AE:
return new AeternityProtocolOptions_1.AeternityProtocolOptions(network ? network : new AeternityProtocolOptions_1.AeternityProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.BTC:
return new BitcoinProtocolOptions_1.BitcoinProtocolOptions(network ? network : new BitcoinProtocolOptions_1.BitcoinProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.ETH:
case ProtocolSymbols_1.SubProtocolSymbols.ETH_ERC20_XCHF:
case ProtocolSymbols_1.SubProtocolSymbols.ETH_ERC20:
return new EthereumProtocolOptions_1.EthereumProtocolOptions(network ? network : new EthereumProtocolOptions_1.EthereumProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.GRS:
return new GroestlcoinProtocolOptions_1.GroestlcoinProtocolOptions(network ? network : new GroestlcoinProtocolOptions_1.GroestlcoinProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.COSMOS:
return new CosmosProtocolOptions_1.CosmosProtocolOptions(network ? network : new CosmosProtocolOptions_1.CosmosProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.POLKADOT:
return new PolkadotProtocolOptions_1.PolkadotProtocolOptions(network ? network : new PolkadotProtocolOptions_1.PolkadotProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.KUSAMA:
return new KusamaProtocolOptions_1.KusamaProtocolOptions(network ? network : new KusamaProtocolOptions_1.KusamaProtocolNetwork());
case ProtocolSymbols_1.MainProtocolSymbols.XTZ:
case ProtocolSymbols_1.SubProtocolSymbols.XTZ_KT:
return new TezosProtocolOptions_1.TezosProtocolOptions(network ? network : new TezosProtocolOptions_1.TezosProtocolNetwork());
case ProtocolSymbols_1.SubProtocolSymbols.XTZ_BTC:
return new TezosFAProtocolOptions_1.TezosFAProtocolOptions(network ? network : new TezosProtocolOptions_1.TezosProtocolNetwork(), new TezosFAProtocolOptions_1.TezosBTCProtocolConfig());
case ProtocolSymbols_1.SubProtocolSymbols.XTZ_USD:
return new TezosFAProtocolOptions_1.TezosFAProtocolOptions(network ? network : new TezosProtocolOptions_1.TezosProtocolNetwork(), new TezosFAProtocolOptions_1.TezosUSDProtocolConfig());
case ProtocolSymbols_1.SubProtocolSymbols.XTZ_STKR:
return new TezosFAProtocolOptions_1.TezosFAProtocolOptions(network ? network : new TezosProtocolOptions_1.TezosProtocolNetwork(), new TezosFAProtocolOptions_1.TezosStakerProtocolConfig());
default:
// Maybe we get an identifier of a sub-protocol that is not in the known list. In that case, get the options of the parent
if (identifier.includes('-')) {
return getProtocolOptionsByIdentifier(identifier.split('-')[0]);
}
assert_1.assertNever(identifier);
throw new Error("No protocol options found for " + identifier);
}
};
exports.getProtocolOptionsByIdentifier = getProtocolOptionsByIdentifier;
//# sourceMappingURL=protocolOptionsByIdentifier.js.map