Implement bip69 and use in CWallet::CreateTransaction by default

Griffith requested to merge ggriffith/bitcoin-cash-node:implement-bip69 into master

Summary

This implements BIP69 as defined here. The inputs and outputs are sorted just before signing in CWallet::CreateTransaction only if that function is to be doing the signing as BIP69 requires that the transaction be signed with SIGHASH_ALL which can only be guaranteed if CreateTransaction is signing the transaction.

No tx validation or mempool code has been changed.

Test Plan

ninja all check-functional

The only test added for this MR is to check correct input/ouptut ordering in wallet_create_tx.py. If there were a signing issue or tx validation issue a lot of other tests would fail.

Merge request reports