From 61b99f6630dbd9c1ae6b3742ffe66bb11c93f418 Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Tue, 21 Jan 2020 05:19:55 +0100 Subject: [PATCH] Add support for ETB liquid asset (#1295) --- .../Liquid/BTCPayNetworkProvider.Liquid.cs | 16 +------- .../BTCPayNetworkProvider.LiquidAssets.cs | 38 +++++++++++------- BTCPayServer/wwwroot/imlegacy/etb.png | Bin 0 -> 31990 bytes 3 files changed, 24 insertions(+), 30 deletions(-) create mode 100644 BTCPayServer/wwwroot/imlegacy/etb.png diff --git a/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.Liquid.cs b/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.Liquid.cs index d87f191af..cacea5c59 100644 --- a/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.Liquid.cs +++ b/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.Liquid.cs @@ -31,21 +31,7 @@ namespace BTCPayServer CryptoImagePath = "imlegacy/liquid.png", DefaultSettings = BTCPayDefaultSettings.GetDefaultSettings(NetworkType), CoinType = NetworkType == NetworkType.Mainnet ? new KeyPath("1776'") : new KeyPath("1'"), - SupportRBF = 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 - {0x4b24746U, DerivationType.Segwit }, //zpub - } - : new Dictionary() - { - {0x043587cfU, DerivationType.Legacy}, - {0x044a5262U, DerivationType.SegwitP2SH}, - {0x045f1cf6U, DerivationType.Segwit} - }, + SupportRBF = true }); } } diff --git a/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs b/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs index 4b9d14ca5..231af2278 100644 --- a/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs +++ b/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs @@ -30,21 +30,29 @@ namespace BTCPayServer CryptoImagePath = "imlegacy/liquid-tether.svg", DefaultSettings = BTCPayDefaultSettings.GetDefaultSettings(NetworkType), CoinType = NetworkType == NetworkType.Mainnet ? new KeyPath("1776'") : new KeyPath("1'"), - SupportRBF = 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 - {0x4b24746U, DerivationType.Segwit }, //zpub - } - : new Dictionary() - { - {0x043587cfU, DerivationType.Legacy}, - {0x044a5262U, DerivationType.SegwitP2SH}, - {0x045f1cf6U, DerivationType.Segwit} - } + SupportRBF = true + }); + + Add(new ElementsBTCPayNetwork() + { + CryptoCode = "ETB", + NetworkCryptoCode = "LBTC", + DefaultRateRules = new[] + { + + "ETB_X = ETB_BTC * BTC_X", + "ETB_BTC = bitpay(ETB_BTC)" + }, + Divisibility = 2, + AssetId = new uint256("ce091c998b83c78bb71a632313ba3760f1763d9cfcffae02258ffa9865a37bd2"), + DisplayName = "Ethiopian Birr", + BlockExplorerLink = NetworkType == NetworkType.Mainnet ? "https://blockstream.info/liquid/tx/{0}" : "https://blockstream.info/testnet/liquid/tx/{0}", + NBXplorerNetwork = nbxplorerNetwork, + UriScheme = "liquidnetwork", + CryptoImagePath = "imlegacy/etb.png", + DefaultSettings = BTCPayDefaultSettings.GetDefaultSettings(NetworkType), + CoinType = NetworkType == NetworkType.Mainnet ? new KeyPath("1776'") : new KeyPath("1'"), + SupportRBF = true }); } } diff --git a/BTCPayServer/wwwroot/imlegacy/etb.png b/BTCPayServer/wwwroot/imlegacy/etb.png new file mode 100644 index 0000000000000000000000000000000000000000..363cff51c752022817f0ce7f8c9cae5d301ad9fa GIT binary patch literal 31990 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