Skip to content

Latest commit

 

History

History
255 lines (143 loc) · 11.9 KB

CHANGELOG.md

File metadata and controls

255 lines (143 loc) · 11.9 KB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

7.1.0 - [TBD]

Message signing (CIP-8)

Added

  • support for message signing (CIP-8, CIP-30)

7.0.1 - [TBD]

Changed

  • using slice instead of Buffer.subarray to avoid a bug (see #37)

7.0.0 - [January 17th 2024]

Support for Conway era

Added

  • export of Conway-era keys (DReps, Constitutional Committee Hot and Cold keys)
  • Conway era transaction body items (new certificates, voting procedures, treasury, donation)
  • optional CBOR tag 258 in CDDL sets
  • support for reduced features on Nano S (since Ledger app v7, due to memory limits)

Changed

  • names of credential types (e.g. StakeCredentialParamsType -> CredentialParamsType)
  • increased max. URL and DNS name length to 128

6.0.0 - [February 16th 2023]

Support for CIP0036 voting

Added

  • export of CIP36 vote keys (1694'/1815'/...)

  • support for CIP36 voting (signing of vote-cast fragments with 1694 vote keys)

  • support for CIP36 features (vote key registration in transaction auxiliary data)

  • support for Ledger Stax (upgraded ledgerhq transport libraries)

  • support for Node v18

Changed

  • API for Catalyst registration (it is still possible to use CIP-0015 in auxiliary data)

Fixed

  • type of requiredCount field in NativeScriptParamsNofK

5.1.0 - [September 9th 2022]

Support for Babbage era

Added

Fixed

  • do not provide an unnecessary witness for stake registration certificate (the path in the certificate is shown to the user, but a witness for the path is no longer asked from the Cardano Ledger app; if you want it, add the path to SignTransactionRequest.additionalWitnessPaths)

5.0.0 - [March 31st 2022]

Support for Alonzo era (Plutus scripts)

Added

  • support for all new Alonzo transaction elements
  • support for stake credentials given by key hash
  • a new transaction signing mode for Plutus transactions
  • compatibility with Cardano Ledger app v4.0.0

Changed

  • KeyStakeCredentialParams type replaced by KeyPathStakeCredentialParams, KeyHashStakeCredentialParams added
  • several items related to hex strings in exported types have been renamed

4.0.0 - [October 27th 2021]

Support for script elements in transactions and addresses.

Added

  • support for address types with script hashes (all Shelley address types are now supported)
  • support for script elements in transactions via a new TransactionSigningMode.MULTISIG_TRANSACTION
  • support for mint field in transaction body
  • native script hash derivation call
  • validation of canonical ordering of cbor map keys compliant with CIP 21 (withdrawals, token policy ids in outputs and mint, asset names within an asset group)

Changed

  • API changes: replacing paths with stake credentials in various address and transaction parameters breaks compatibility

3.2.1 - [June 9th 2021]

Patch update removing the requirement to order token bundle canonically.

Removed

3.2.0 - [May 24th 2021]

Added support for signing pool registration certificates as operator, support for pool retirement certificates within the signTransaction() call and added a new call for operational certificate signing - signOperationalCertificate().

Added

  • TransactionSigningMode.POOL_REGISTRATION_AS_OPERATOR to allow signing pool registration as operator
  • CertificateType.STAKE_POOL_RETIREMENT
  • signOperationalCertificate() call

Changed

  • PoolRegistrationParams.poolKey has been changed from a string to PoolKey in order to support pool operator signing - poolKey can now also be sent as a path
  • PoolRegistrationParams.rewardAccount has been changed from a string to PoolRewardAccount in order to support pool operator signing - rewardAccount can now also be sent as path
  • AssetGroup.tokens and TxOutput.tokenBundle are required to be in CBOR canonical order

3.1.0 - [May 11th 2021]

Added support for Catalyst voting registration metadata creation within the signTransaction() call, introduced in Ledger Cardano app version 2.3.2.

Added

Changed

  • added Catalyst voting registration support: vacuumlabs/ledgerjs-cardano-shelley#99
  • relaxed validation of signTransaction() call ttl and validityIntervalStart parameter to allow zero value
  • AddressParamsReward now requires staking key path as the stakingPath property instead of spendingPath (which was misleading)

Fixed

  • validation of zero numerical values, previously the library was incorrectly failing for any zero value passed

3.0.0 - [April 13th 2021]

Major release. Switched from flow to TypeScript.

Changed

  • All API calls now use single structured argument instead of long list of partial arguments. (For the overview see src/Ada.ts changes in vacuumlabs/ledgerjs-cardano-shelley#61)
  • AddressTypeNibble enum renamed to AddressType
  • derive/showAddress now take network as an explicit parameter instead of networkIdOrProtocolMagic field in AddressParams
  • all 64-bit integers that were previously stored in fields ending with Str (e.g. feeStr) are now without the suffix (i.e. fee) and take a "bigint-like" argument which can be Number (if it is small enough, i.e. <= Number.MAX_SAFE_INTEGER), string, or native BigInt. Non-native bigint implementations are not supported and should be converted to strings)
  • all "tagged enums" now use {type: SomeType.Variant, params: SomeTypeVariantParams} typing. This unified previously mixed tagging with sometimes arbitrarily variant fields into the parent type. As part of this change
    • Relays are now typed properly with variants
    • TxOutput was separated into "amount" part (amount & tokenBundle) & destination specification.
      • Destination is now explicitly of type DestinationType.ThirdParty or DestinationType.DeviceOwned to clarify what the device should sign
      • Device owned destination reuses existing Address param type
    • Address is now tagged enum across different address types (Byron, Base, Enterprise, Pointer, Reward). Reward address still uses spendingPath instead of stakingPath to denote that this key can be used to spend funds
  • All API call types now use *Request/*Response nomenclature
  • GetVersion call now returns {version, compatibility} instead of version where compatibility describes overall set of features we support for the device. It should be responsibility of API users to check compatibility.isCompatible flag and urge users to upgrade device to compatibility.recommendedVersion if the device is not compatible.
  • All (expected) errors thrown by the API are now descendants of ErrorBase from errors sub-package. API now distinguishes between these error types
    • InvalidData - you passed some wrong data to the API. We will not even try to communicate with the device
    • DeviceUnsupported - thrown when trying to use API with unsupported Ledger app version (or when using features not yet available for the app version)
    • DeviceStatusError - thrown when device rejects operation for some reason. Common reasons are found in DeviceStatusCodes mapping.
  • There is new documentation available at (https://vacuumlabs.github.io/ledgerjs-cardano-shelley/index.html)

Removed

  • Compatibility with pre-Mary (<2.2) App versions.

2.2.1 - [February 18th 2021]

Patch release with a minor fix in signTransaction() call's parameters validation

Added

Changed

Fixed

  • relax the tokenBundle feature check to allow an empty array #17

2.2.0 - [February 8th 2021]

Works with Ledger Cardano app 2.2.0 and is backwards compatible with older versions down to 2.0.4/2.0.5*. Older versions of this js library do not support Ledger Cardano app 2.2.0, hence an update to this version of the library is required before Ledger Cardano app 2.2.0 is released.

Added

Changed

Fixed

2.1.0 - [December 11th 2020]

Works with Ledger Cardano app 2.1.0 and is backwards compatible with 2.0.4/2.0.5 as well*. Older versions of this library do not support Ledger Cardano app 2.1.0, therefore an update to this version of the library is required before Ledger Cardano app 2.1.0 is released.

Added

Changed

Fixed

[2.0.1] - [August 20th 2020]

Added

  • Certificate and address type Flow enums, commit

Changed

Fixed

[2.0.0] - [August 18th 2020]

First release with Shelley-era support, works with Ledger Cardano app version 2.0.4 (Nano S) and 2.0.5 (Nano X). Older versions of this library no longer work with the Cardano blockchain.

Added

Changed

Fixed

* backwards compatibility refers only to features supported by the respective app versions, unsupported features result in an error being thrown.