mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 22:44:29 +01:00
fix coin parser for weird networks
This commit is contained in:
@@ -40,7 +40,7 @@ namespace BTCPayServer
|
|||||||
var standardPrefix = Utils.ToBytes(0x0488b21eU, false);
|
var standardPrefix = Utils.ToBytes(0x0488b21eU, false);
|
||||||
for (int ii = 0; ii < 4; ii++)
|
for (int ii = 0; ii < 4; ii++)
|
||||||
data[ii] = standardPrefix[ii];
|
data[ii] = standardPrefix[ii];
|
||||||
var extPubKey = new BitcoinExtPubKey(Network.GetBase58CheckEncoder().EncodeData(data), Network.NetworkSet.Mainnet).ToNetwork(Network);
|
var extPubKey = GetBitcoinExtPubKeyByNetwork(Network, data);
|
||||||
if (!BtcPayNetwork.ElectrumMapping.TryGetValue(prefix, out var type))
|
if (!BtcPayNetwork.ElectrumMapping.TryGetValue(prefix, out var type))
|
||||||
{
|
{
|
||||||
throw new FormatException();
|
throw new FormatException();
|
||||||
@@ -117,7 +117,8 @@ namespace BTCPayServer
|
|||||||
var standardPrefix = Utils.ToBytes(0x0488b21eU, false);
|
var standardPrefix = Utils.ToBytes(0x0488b21eU, false);
|
||||||
for (int ii = 0; ii < 4; ii++)
|
for (int ii = 0; ii < 4; ii++)
|
||||||
data[ii] = standardPrefix[ii];
|
data[ii] = standardPrefix[ii];
|
||||||
var derivationScheme = new BitcoinExtPubKey(Network.GetBase58CheckEncoder().EncodeData(data), Network.NetworkSet.Mainnet).ToNetwork(Network).ToString();
|
|
||||||
|
var derivationScheme = GetBitcoinExtPubKeyByNetwork(Network, data).ToString();
|
||||||
|
|
||||||
if (BtcPayNetwork.ElectrumMapping.TryGetValue(prefix, out var type))
|
if (BtcPayNetwork.ElectrumMapping.TryGetValue(prefix, out var type))
|
||||||
{
|
{
|
||||||
@@ -154,6 +155,18 @@ namespace BTCPayServer
|
|||||||
return FindMatch(hintedLabels, BtcPayNetwork.NBXplorerNetwork.DerivationStrategyFactory.Parse(str));
|
return FindMatch(hintedLabels, BtcPayNetwork.NBXplorerNetwork.DerivationStrategyFactory.Parse(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static BitcoinExtPubKey GetBitcoinExtPubKeyByNetwork(Network network, byte[] data)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return new BitcoinExtPubKey(network.GetBase58CheckEncoder().EncodeData(data), network.NetworkSet.Mainnet).ToNetwork(network);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return new BitcoinExtPubKey(network.GetBase58CheckEncoder().EncodeData(data), Network.Main).ToNetwork(network);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private DerivationStrategyBase FindMatch(HashSet<string> hintLabels, DerivationStrategyBase result)
|
private DerivationStrategyBase FindMatch(HashSet<string> hintLabels, DerivationStrategyBase result)
|
||||||
{
|
{
|
||||||
var firstKeyPath = new KeyPath("0/0");
|
var firstKeyPath = new KeyPath("0/0");
|
||||||
|
|||||||
Reference in New Issue
Block a user