2.1.0
New features
- Added
fee_for_outputfunction toTransactionBuilder. This calculate how much the fee would increase if you added a given output - Added
byron_protocol_magicto ByronAddress which allows to easily extract the Byron protocol magic from a Byron-era address (we previously only supported calculating the Shelley network id) - Added support for creating and parsing update proposals from inside a TransactionBody. This includes adding the following new structs:
- GenesisHash
- Nonce
- ProposedProtocolParameterUpdates
- ProtocolParamUpdate
- ProtocolVersion
- ProtocolVersions
- Update
- Added support for parsing entire blocks. This includes adding the following new structs:
- Block
- BlockHash
- Header
- HeaderBody
- KESSignature
- KESVKey
- MapTransactionIndexToTransactionMetadata
- OperationalCert
- TransactionBodies
- TransactionWitnessSets
- VRFCert
- VRFVKey
Bug fixes
- Fix edge cases in
TransactionBuilder'sbuildfunction. Notably- Transactions where sum(input) == sum(output) were rejected. They are now accepted
- Transactions change calculation required at least 1 lovelace leeway to add change. They can now be exact (an
>changed to an>=) - Transactions that fail only because there isn't enough input to cover the deposit now properly fail with
Insufficient input in transactioninstead of a Rust panic.
- Fix binary encoding of MIR certificates. MIR certificates created by our library had the wrong binary encoding. This shouldn't affect anybody since probably nobody is creating MIR certificates with our library.
- Fix binary encoding of TransactionBody. Transactions containing update proposals would have the update proposal binary dropped by our library. This shouldn't affect anybody since probably nobody is creating update proposals with our library.
Chore
- Began migrating to ReadTheDocs for documentation (still very much a work in progress though)