Releases: Emurgo/cardano-serialization-lib
Releases · Emurgo/cardano-serialization-lib
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
)
1.0.2
Bug fixes
- Deposit calculation was looking for the wrong certificate type in a transaction
- Add some missing
clone
(caused memory to be unexpectedly free'd when using WASM)