Skip to content

Commit f32d22d

Browse files
committed
Avoid crash in Transaction.ToString if value or scriptpubkey is null
1 parent 5e977cf commit f32d22d

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

NBitcoin.Tests/TaprootAddressTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ public void CanSignUsingTaproot()
119119
}
120120

121121
[Fact]
122+
[Trait("UnitTest", "UnitTest")]
122123
public void CanSignUsingTapscriptAndKeySpend()
123124
{
124125
var ctx = Context.Instance;

NBitcoin.Tests/transaction_tests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using Xunit.Abstractions;
2020
using Encoders = NBitcoin.DataEncoders.Encoders;
2121
using static NBitcoin.Tests.Helpers.PrimitiveUtils;
22+
using NBitcoin.Altcoins;
2223

2324
namespace NBitcoin.Tests
2425
{
@@ -2624,6 +2625,7 @@ public void CanParseElementsStuff()
26242625
tx = (ElementsTransaction)Transaction.Parse(txStr, Altcoins.Liquid.Instance.Mainnet);
26252626
var id = ((ElementsTxIn)tx.Inputs[0]).GetIssuedAssetId();
26262627
Assert.Equal("140ad0392c3aa83f8fa31722ca2ecfcf582499a4dc9e63a8e44c9b405cb148fe", id.ToString());
2628+
tx.ToString();
26272629
}
26282630

26292631
[Fact]
@@ -3136,6 +3138,7 @@ public void CanParseTransaction()
31363138
}
31373139

31383140
[Fact]
3141+
[Trait("UnitTest", "UnitTest")]
31393142
public void DoNotCrashOnRegtest()
31403143
{
31413144
Assert.NotNull(Network.GetNetwork("regtest"));

NBitcoin/RPC/BlockExplorerFormatter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ static internal void WriteTransaction(JsonTextWriter writer, Transaction tx)
7979
foreach (var txout in tx.Outputs)
8080
{
8181
writer.WriteStartObject();
82-
WritePropertyValue(writer, "value", txout.Value.ToString(false, false));
83-
WritePropertyValue(writer, "scriptPubKey", txout.ScriptPubKey.ToString());
82+
WritePropertyValue(writer, "value", txout.Value?.ToString(false, false));
83+
WritePropertyValue(writer, "scriptPubKey", txout.ScriptPubKey?.ToString());
8484
writer.WriteEndObject();
8585
}
8686
writer.WriteEndArray();

0 commit comments

Comments
 (0)