From 281dc5b0c865f7c67a1bee0c2b8fe8e6b376c01a Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Fri, 22 Feb 2019 22:16:56 +0000 Subject: [PATCH] Only generate valueBalance and bindingSig for v4+ transactions Reverts a change to the ZIP 143 test vectors caused by #9. --- transaction.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/transaction.py b/transaction.py index 39ab9b4..7a2582b 100644 --- a/transaction.py +++ b/transaction.py @@ -221,7 +221,8 @@ class Transaction(object): self.nLockTime = rand.u32() self.nExpiryHeight = rand.u32() % TX_EXPIRY_HEIGHT_THRESHOLD - self.valueBalance = rand.u64() % (MAX_MONEY + 1) + if self.nVersion >= SAPLING_TX_VERSION: + self.valueBalance = rand.u64() % (MAX_MONEY + 1) self.vShieldedSpends = [] self.vShieldedOutputs = [] @@ -239,7 +240,8 @@ class Transaction(object): self.joinSplitPubKey = rand.b(32) # Potentially invalid self.joinSplitSig = rand.b(64) # Invalid - self.bindingSig = rand.b(64) # Invalid + if self.nVersion >= SAPLING_TX_VERSION: + self.bindingSig = rand.b(64) # Invalid def header(self): return self.nVersion | (1 << 31 if self.fOverwintered else 0)