diff --git a/BTCPayServer.Common/Altcoins/BTCPayNetworkProvider.Bitcoin.cs b/BTCPayServer.Common/Altcoins/BTCPayNetworkProvider.Bitcoin.cs deleted file mode 100644 index 26bce2f00..000000000 --- a/BTCPayServer.Common/Altcoins/BTCPayNetworkProvider.Bitcoin.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System.Collections.Generic; -using NBitcoin; -using NBXplorer; - -namespace BTCPayServer -{ - public partial class BTCPayNetworkProvider - { - public void InitBitcoin() - { - var nbxplorerNetwork = NBXplorerNetworkProvider.GetFromCryptoCode("BTC"); - Add(new BTCPayNetwork() - { - CryptoCode = nbxplorerNetwork.CryptoCode, - DisplayName = "Bitcoin", - BlockExplorerLink = NetworkType == NetworkType.Mainnet ? "https://blockstream.info/tx/{0}" : "https://blockstream.info/testnet/tx/{0}", - NBXplorerNetwork = nbxplorerNetwork, - UriScheme = "bitcoin", - CryptoImagePath = "imlegacy/bitcoin.svg", - LightningImagePath = "imlegacy/bitcoin-lightning.svg", - DefaultSettings = BTCPayDefaultSettings.GetDefaultSettings(NetworkType), - CoinType = NetworkType == NetworkType.Mainnet ? new KeyPath("0'") : new KeyPath("1'"), - SupportRBF = true, - SupportPayJoin = true, - //https://github.com/spesmilo/electrum/blob/11733d6bc271646a00b69ff07657119598874da4/electrum/constants.py - ElectrumMapping = NetworkType == NetworkType.Mainnet - ? new Dictionary() - { - {0x0488b21eU, DerivationType.Legacy }, // xpub - {0x049d7cb2U, DerivationType.SegwitP2SH }, // ypub - {0x04b24746U, DerivationType.Segwit }, //zpub - } - : new Dictionary() - { - {0x043587cfU, DerivationType.Legacy}, // tpub - {0x044a5262U, DerivationType.SegwitP2SH}, // upub - {0x045f1cf6U, DerivationType.Segwit} // vpub - } - }); - } - } -} diff --git a/BTCPayServer.Common/Altcoins/BTCPayNetworkProvider.cs b/BTCPayServer.Common/Altcoins/BTCPayNetworkProvider.cs deleted file mode 100644 index 852497a84..000000000 --- a/BTCPayServer.Common/Altcoins/BTCPayNetworkProvider.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NBitcoin; -using NBXplorer; - -namespace BTCPayServer -{ - public partial class BTCPayNetworkProvider - { - readonly Dictionary _Networks = new Dictionary(); - - - private readonly NBXplorerNetworkProvider _NBXplorerNetworkProvider; - public NBXplorerNetworkProvider NBXplorerNetworkProvider - { - get - { - return _NBXplorerNetworkProvider; - } - } - - BTCPayNetworkProvider(BTCPayNetworkProvider unfiltered, string[] cryptoCodes) - { - NetworkType = unfiltered.NetworkType; - _NBXplorerNetworkProvider = new NBXplorerNetworkProvider(unfiltered.NetworkType); - _Networks = new Dictionary(); - cryptoCodes = cryptoCodes.Select(c => c.ToUpperInvariant()).ToArray(); - foreach (var network in unfiltered._Networks) - { - if (cryptoCodes.Contains(network.Key)) - { - _Networks.Add(network.Key, network.Value); - } - } - } - - - public NetworkType NetworkType { get; private set; } - public BTCPayNetworkProvider(NetworkType networkType) - { - _NBXplorerNetworkProvider = new NBXplorerNetworkProvider(networkType); - NetworkType = networkType; - InitBitcoin(); -#if ALTCOINS - InitLiquid(); - InitLiquidAssets(); - InitLitecoin(); - InitBitcore(); - InitDogecoin(); - InitBitcoinGold(); - InitMonacoin(); - InitDash(); - InitFeathercoin(); - InitGroestlcoin(); - InitViacoin(); - InitMonero(); - InitPolis(); - InitChaincoin(); - InitArgoneum(); - - // Assume that electrum mappings are same as BTC if not specified - foreach (var network in _Networks.Values.OfType()) - { - if (network.ElectrumMapping.Count == 0) - { - network.ElectrumMapping = GetNetwork("BTC").ElectrumMapping; - if (!network.NBitcoinNetwork.Consensus.SupportSegwit) - { - network.ElectrumMapping = - network.ElectrumMapping - .Where(kv => kv.Value == DerivationType.Legacy) - .ToDictionary(k => k.Key, k => k.Value); - } - } - } - - // Disabled because of https://twitter.com/Cryptopia_NZ/status/1085084168852291586 - //InitBitcoinplus(); - //InitUfo(); -#endif - } - - /// - /// Keep only the specified crypto - /// - /// Crypto to support - /// - public BTCPayNetworkProvider Filter(string[] cryptoCodes) - { - return new BTCPayNetworkProvider(this, cryptoCodes); - } - - [Obsolete("To use only for legacy stuff")] - public BTCPayNetwork BTC => GetNetwork("BTC"); - - public void Add(BTCPayNetwork network) - { - if (network.NBitcoinNetwork == null) - return; - Add(network as BTCPayNetworkBase); - } - public void Add(BTCPayNetworkBase network) - { - _Networks.Add(network.CryptoCode.ToUpperInvariant(), network); - } - - public IEnumerable GetAll() - { - return _Networks.Values.ToArray(); - } - - public bool Support(string cryptoCode) - { - return _Networks.ContainsKey(cryptoCode.ToUpperInvariant()); - } - public BTCPayNetworkBase GetNetwork(string cryptoCode) - { - return GetNetwork(cryptoCode.ToUpperInvariant()); - } - public T GetNetwork(string cryptoCode) where T : BTCPayNetworkBase - { - if (cryptoCode == null) - throw new ArgumentNullException(nameof(cryptoCode)); - if (!_Networks.TryGetValue(cryptoCode.ToUpperInvariant(), out BTCPayNetworkBase network)) - { - if (cryptoCode == "XBT") - return GetNetwork("BTC"); - } - return network as T; - } - } -} diff --git a/BTCPayServer.Common/BTCPayServer.Common.csproj b/BTCPayServer.Common/BTCPayServer.Common.csproj index 26581c15f..47ca8fd8e 100644 --- a/BTCPayServer.Common/BTCPayServer.Common.csproj +++ b/BTCPayServer.Common/BTCPayServer.Common.csproj @@ -6,4 +6,7 @@ + + +