Fix: Newline during import of multisig xpub results in different addresses for wallet (#6328) (#6386)

This commit is contained in:
Nicolas Dorier 2024-11-12 12:15:42 +09:00 committed by nicolas.dorier
parent e9ba0fa6f2
commit d61b558544
No known key found for this signature in database
GPG key ID: 6618763EF09186FE
2 changed files with 5 additions and 0 deletions

View file

@ -871,6 +871,10 @@ namespace BTCPayServer.Tests
Assert.IsType<MultisigDerivationStrategy>(((P2WSHDerivationStrategy)strategyBase).Inner); Assert.IsType<MultisigDerivationStrategy>(((P2WSHDerivationStrategy)strategyBase).Inner);
Assert.Equal(expected, strategyBase.ToString()); Assert.Equal(expected, strategyBase.ToString());
var expectedWithNewLines = "2-of-tpubDDXgATYzdQkHHhZZCMcNJj8BGDENvzMVou5v9NdxiP4rxDLj33nS233dGFW4htpVZSJ6zds9eVqAV9RyRHHiKtwQKX8eR4n4KN3Dwmj7A3h-\r\ntpubDC8a54NFtQtMQAZ97VhoU9V6jVTvi9w4Y5SaAXJSBYETKg3AoX5CCKndznhPWxJUBToPCpT44s86QbKdGpKAnSjcMTGW4kE6UQ8vpBjcybW-tpubDChjnP9LXNrJp43biqjY7FH93wgRRNrNxB4Q8pH7PPRy8UPcH2S6V46WGVJ47zVGF7SyBJNCpnaogsFbsybVQckGtVhCkng3EtFn8qmxptS";
strategyBase = parser.Parse(expectedWithNewLines);
Assert.Equal(expected, strategyBase.ToString());
var inner = (MultisigDerivationStrategy)((P2WSHDerivationStrategy)strategyBase).Inner; var inner = (MultisigDerivationStrategy)((P2WSHDerivationStrategy)strategyBase).Inner;
Assert.False(inner.IsLegacy); Assert.False(inner.IsLegacy);
Assert.Equal(3, inner.Keys.Count); Assert.Equal(3, inner.Keys.Count);

View file

@ -100,6 +100,7 @@ namespace BTCPayServer
{ {
ArgumentNullException.ThrowIfNull(str); ArgumentNullException.ThrowIfNull(str);
str = str.Trim(); str = str.Trim();
str = str.Replace("\r\n","").Replace("\n", "");
HashSet<string> hintedLabels = new HashSet<string>(); HashSet<string> hintedLabels = new HashSet<string>();
if (!Network.Consensus.SupportSegwit) if (!Network.Consensus.SupportSegwit)
{ {