Skip to content

Releases: Emurgo/cardano-serialization-lib

4.0.0

17 Sep 04:12
Compare
Choose a tag to compare

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 to icarus_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

Bug fixes

  • ByronAddress now supports Byron Redeem and Byron Script addresses (previously it throw an error saying invalid address)

3.0.0

01 Sep 13:03
Compare
Choose a tag to compare

Breaking changes

  • Address#to_bech32 now matches CIP5. Previously we always used addr as the bech32 prefix, but now we use addr, 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

29 Aug 02:27
Compare
Choose a tag to compare

Bug fix

  • fixed panic in Bip32PublicKey#chaincode function

2.3.0

29 Aug 01:55
Compare
Choose a tag to compare

New feature

  • Expose attributes in ByronAddress

2.2.0

28 Aug 17:49
Compare
Choose a tag to compare

New features

  • Added conversion from & to 128-byte xprv (#69 )

Breaking changes

  • Removed the BigNum#new and BigNum#unwrap that handled Javascript BigInt directly. These functions caused problems on all build platforms that don't support JS BigInt 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

26 Aug 22:18
35e4ee2
Compare
Choose a tag to compare

New features

  • Added fee_for_output function to TransactionBuilder. 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's build 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

24 Aug 14:27
Compare
Choose a tag to compare

Breaking changes

  • Remove get_fee_or_calc (replaced with get_fee_if_set which returns undefined if the fee is not set)
  • Remove estimate_fee (replaced with min_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 to TransactionBuilder and TransactionBody

1.2.0

24 Aug 14:23
Compare
Choose a tag to compare

New features

  • Adds a keys iterator to MapTransactionMetadatumToTransactionMetadatum, MoveInstantaneousReward, TransactionMetadata and Withdrawals

Bug fixes

  • Fixes typo (stake_ponter -> stake_pointer)

1.1.0

24 Aug 14:19
Compare
Choose a tag to compare

New features

  • Adds missing getters on the Pointer class (slot, tx_index, cert_index)

1.0.2

24 Aug 14:17
Compare
Choose a tag to compare

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)