Liquid & Liquid Assets Support (#1118)

This commit is contained in:
Andrew Camilleri
2019-12-24 08:20:44 +01:00
committed by Nicolas Dorier
parent 0485a9178d
commit 4d7480db15
51 changed files with 546 additions and 111 deletions

View File

@@ -52,7 +52,7 @@ namespace BTCPayServer
if (type == DerivationType.Legacy)
return new DirectDerivationStrategy(extPubKey) { Segwit = false };
if (type == DerivationType.SegwitP2SH)
return new DerivationStrategyFactory(Network).Parse(extPubKey.ToString() + "-[p2sh]");
return BtcPayNetwork.NBXplorerNetwork.DerivationStrategyFactory.Parse(extPubKey.ToString() + "-[p2sh]");
throw new FormatException();
}
@@ -83,7 +83,7 @@ namespace BTCPayServer
try
{
var result = new DerivationStrategyFactory(Network).Parse(str);
var result = BtcPayNetwork.NBXplorerNetwork.DerivationStrategyFactory.Parse(str);
return FindMatch(hintedLabels, result);
}
catch
@@ -150,12 +150,11 @@ namespace BTCPayServer
str = $"{str}-[{label}]";
}
return FindMatch(hintedLabels, new DerivationStrategyFactory(Network).Parse(str));
return FindMatch(hintedLabels, BtcPayNetwork.NBXplorerNetwork.DerivationStrategyFactory.Parse(str));
}
private DerivationStrategyBase FindMatch(HashSet<string> hintLabels, DerivationStrategyBase result)
{
var facto = new DerivationStrategyFactory(Network);
var firstKeyPath = new KeyPath("0/0");
if (HintScriptPubKey == null)
return result;
@@ -169,7 +168,7 @@ namespace BTCPayServer
resultNoLabels = string.Join('-', resultNoLabels.Split('-').Where(p => !IsLabel(p)));
foreach (var labels in ItemCombinations(hintLabels.ToList()))
{
var hinted = facto.Parse(resultNoLabels + '-' + string.Join('-', labels.Select(l => $"[{l}]").ToArray()));
var hinted = BtcPayNetwork.NBXplorerNetwork.DerivationStrategyFactory.Parse(resultNoLabels + '-' + string.Join('-', labels.Select(l => $"[{l}]").ToArray()));
if (HintScriptPubKey == hinted.GetDerivation(firstKeyPath).ScriptPubKey)
return hinted;
}