Skip to content

Releases: cardano-foundation/ledgerjs-hw-app-cardano

7.0.0

17 Jan 13:38
Compare
Choose a tag to compare

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

20 Feb 13:08
Compare
Choose a tag to compare

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.0.0

31 Mar 10:31
Compare
Choose a tag to compare

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

27 Oct 11:30
Compare
Choose a tag to compare

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

09 Jun 12:12
1cbd888
Compare
Choose a tag to compare

Patch update removing the requirement to order token bundle canonically.

Removed

3.2.0

24 May 09:21
47927d4
Compare
Choose a tag to compare

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 ceritificate 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

11 May 16:53
0722de3
Compare
Choose a tag to compare

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

13 Apr 16:09
e491885
Compare
Choose a tag to compare

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 "bignumber-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 subpackage. 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 unsopported 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

18 Feb 16:52
d006d8a
Compare
Choose a tag to compare

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

Fixed

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

2.2.0

08 Feb 18:33
e59bbf4
Compare
Choose a tag to compare

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

Fixed