* Adding tools for performing Marshal and MarshalJSON identity tests
* New dependency on data-default
* Renamed some arbitrary (test) functions for clarity
- Shorten all field names ignoring duplicates using DuplicateRecordFields extension.
- Use OverloadedRecordDot language extension and syntax.
- Use explicit context object from secp256k1-haskell library.
- Unify serialization into custom Marhsal and MarshalJSON classes.
- Use bytestring builders for all JSON toEncoding implementations.
- Use ormolu for formatting.
- Simplify module organisation.
- Strongly break backwards compatibility.
* Updates readme and adds pre-commit hook
* Reformats codebase
* Applies some hlint suggestions
Certain suggestions led to worse code IMO, so I skipped them
- Makes serialization agree with bitcoin core
- Fixes bugs in `finalizeTransaction`
- Handle P2SH outputs correctly
- Adds a complex test vector covering more of the PSBT spec
* Add missing BIP32 test vectors
* Add hash test vectors
* Rename stringToAddr to textToAddr
* Add Base58 tests
* Add signature tests
* Add rfc6979 test vectors for bitcoinabc secp256k1 implementation
* Add deterministic signing test in CryptoSpec.hs
* Move ScriptOutput to Standard.hs, fix import loops and add new tests in KeysSpec.hs
* Add additional tests in KeysSpec.hs
* Test the key_io_invalid.json vectors
* Fix the BIP143 tests
* Update the CHANGELOG
* Add better JSON instances and cleanup some code
* Add a changelog entry for 0.13.5
* Give me my fast JSON back
Co-authored-by: Jean-Pierre Rupp <jprupp@protonmail.ch>
The new library adds compatibility with the version of libsecp256k1 provided by
Fedora. The Fedora package is a fork of that library from the Bitcoin ABC
project. It computes signature nonces slightly differently, so all tests that
depend on signatures being exactly the same for a combination of message and
private key have been removed.