Releases: Emurgo/cardano-serialization-lib
Releases · Emurgo/cardano-serialization-lib
4.1.0
New features
- Add support for JSON-style transaction metadata (see documentation for more detail)
- Improved error handling on non-WASM targets
- Remove wasm-bindgen as a dependency for non-WASM targets
- add a
add_input
function that takes an address and figures out how to handle it internally instead of having the user do it - add a
fee_for_input
that says how much the fee would increase by adding an input. This is useful for input selection since you can avoid adding inputs where the value of the input is less than the fee to add it.
4.0.0
Breaking Changes
- All the functions related to metadata have changed. (see below new feature for more)
from_icarus_key
now takes a Byron protocol magic instead of the Shelley network id as the parameter. To make sure users update which parameter is passed in, I changed the function name toicarus_from_key
(ensure it's a static error since the function name changed instead of silently failing at runtime). This was needed for proper Shelley official testnet support
New features
- New
NetworkInfo
struct that contains themainnet
andtestnet
protocol magic & network id - Now support custom transaction metadata libraries
Bug fixes
- ByronAddress now supports Byron Redeem and Byron Script addresses (previously it throw an error saying invalid address)
3.0.0
Breaking changes
Address#to_bech32
now matches CIP5. Previously we always usedaddr
as the bech32 prefix, but now we useaddr
,addr_test
,stake
,stake_test
depending on the situation- (De)serialization order of maps now follows insertion order which also now matches iteration order. This may lead to transactions containing maps (like MIR certificates) to generate a different binary from previous versions of our library. These transactions will still be accepted by the Cardano network (no impact on you unless you relied on a specific ordering of keys in the binary encoding of a map or a specific iteration order). You can learn more here
Bug fix
- VRF key hash deserialization fixed (previously throwed an error)
2.3.1
Bug fix
- fixed panic in
Bip32PublicKey#chaincode
function
2.3.0
New feature
- Expose
attributes
inByronAddress
2.2.0
New features
- Added conversion from & to 128-byte xprv (#69 )
Breaking changes
- Removed the
BigNum#new
andBigNum#unwrap
that handled JavascriptBigInt
directly. These functions caused problems on all build platforms that don't support JSBigInt
yet (which is almost everything)
Chore
- Removed dependency on chain-libs. The code we need from it is instead inlined into the repository.
- Package is now available as an asm.js package for platforms that don't support WebAssembly (old devices mostly)
2.1.0
New features
- Added
fee_for_output
function toTransactionBuilder
. This calculate how much the fee would increase if you added a given output - Added
byron_protocol_magic
to 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
'sbuild
function. 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 transaction
instead 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)
2.0.0
Breaking changes
- Remove
get_fee_or_calc
(replaced withget_fee_if_set
which returns undefined if the fee is not set) - Remove
estimate_fee
(replaced withmin_fee
which always returns the min fee even if a higher fee has been explicitly set) - Address
to_bech32
now takes an optional bech32 prefix as an argument
Bug Fixes
- Fix deposit calculation being wrong for transaction that contained key registration or pool registration certificates
New features
- Add
get_deposit
toTransactionBuilder
andTransactionBody
1.2.0
New features
- Adds a
keys
iterator toMapTransactionMetadatumToTransactionMetadatum
,MoveInstantaneousReward
,TransactionMetadata
andWithdrawals
Bug fixes
- Fixes typo (
stake_ponter
->stake_pointer
)
1.1.0
New features
- Adds missing getters on the
Pointer
class (slot
,tx_index
,cert_index
)