From 841cf61c92f7322db657e13378d989cc021ab019 Mon Sep 17 00:00:00 2001 From: Francis Pouliot Date: Fri, 10 Apr 2020 02:59:02 -0400 Subject: [PATCH] Add L-CAD support (new Liquid Asset) (#1448) * Add Liquid CAD support Adds the Liquid CAD asset ID from Bull Bitcoin * Add the Liquid CAD logo * Fix image asset Co-authored-by: Andrew Camilleri --- .../BTCPayNetworkProvider.LiquidAssets.cs | 22 ++++++++++++++++++ BTCPayServer/wwwroot/imlegacy/LCAD.png | Bin 0 -> 17578 bytes 2 files changed, 22 insertions(+) create mode 100644 BTCPayServer/wwwroot/imlegacy/LCAD.png diff --git a/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs b/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs index b5fde6acc..fe841235d 100644 --- a/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs +++ b/BTCPayServer.Common/Altcoins/Liquid/BTCPayNetworkProvider.LiquidAssets.cs @@ -51,6 +51,28 @@ namespace BTCPayServer CoinType = NetworkType == NetworkType.Mainnet ? new KeyPath("1776'") : new KeyPath("1'"), SupportRBF = true }); + + Add(new ElementsBTCPayNetwork() + { + CryptoCode = "LCAD", + NetworkCryptoCode = "LBTC", + ShowSyncSummary = false, + DefaultRateRules = new[] + { + "LCAD_CAD = 1", + "LCAD_X = CAD_BTC * BTC_X", + "LCAD_BTC = bylls(CAD_BTC)", + }, + AssetId = new uint256("0e99c1a6da379d1f4151fb9df90449d40d0608f6cb33a5bcbfc8c265f42bab0a"), + DisplayName = "Liquid CAD", + BlockExplorerLink = NetworkType == NetworkType.Mainnet ? "https://blockstream.info/liquid/tx/{0}" : "https://blockstream.info/testnet/liquid/tx/{0}", + NBXplorerNetwork = nbxplorerNetwork, + UriScheme = "liquidnetwork", + CryptoImagePath = "imlegacy/lcad.png", + DefaultSettings = BTCPayDefaultSettings.GetDefaultSettings(NetworkType), + CoinType = NetworkType == NetworkType.Mainnet ? new KeyPath("1776'") : new KeyPath("1'"), + SupportRBF = true + }); } } diff --git a/BTCPayServer/wwwroot/imlegacy/LCAD.png b/BTCPayServer/wwwroot/imlegacy/LCAD.png new file mode 100644 index 0000000000000000000000000000000000000000..41b11d142f4619d6bb949746e8b63f463535b358 GIT binary patch literal 17578 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