Add txn size limit to hardfork
I also snuck some encoding optimizations in. Mostly just calling MarshalSia
methods directly where we weren't before.
Regrettably, MarshalSiaSize
had a bug; it was 8 bytes short for each TransactionSignature
. This was fixed on my local txn-size
branch but was not pushed before that PR was merged. Good call on adding the sanity check during debug mode, otherwise I wouldn't have caught this.