Releases: cardano-foundation/ledgerjs-hw-app-cardano
7.0.0
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
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
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
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
Patch update removing the requirement to order token bundle canonically.
Removed
- Temporarily remove asset groups canonical ordering validation: vacuumlabs/ledgerjs-cardano-shelley#111
3.2.0
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 operatorCertificateType.STAKE_POOL_RETIREMENT
signOperationalCertificate()
call
Changed
PoolRegistrationParams.poolKey
has been changed from astring
toPoolKey
in order to support pool operator signing -poolKey
can now also be sent as a pathPoolRegistrationParams.rewardAccount
has been changed from astring
toPoolRewardAccount
in order to support pool operator signing -rewardAccount
can now also be sent as pathAssetGroup.tokens
andTxOutput.tokenBundle
are required to be in CBOR canonical order
3.1.0
Added support for Catalyst voting registration metadata creation within the signTransaction()
call, introduced in Ledger Cardano app version 2.3.2.
Added
- automatically generated flow types from typescript source: vacuumlabs/ledgerjs-cardano-shelley#102
Changed
- added Catalyst voting registration support: vacuumlabs/ledgerjs-cardano-shelley#99
- relaxed validation of
signTransaction()
callttl
andvalidityIntervalStart
parameter to allow zero value AddressParamsReward
now requires staking key path as thestakingPath
property instead ofspendingPath
(which was misleading)
Fixed
- validation of zero numerical values, previously the library was incorrectly failing for any zero value passed
3.0.0
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 seesrc/Ada.ts
changes in vacuumlabs/ledgerjs-cardano-shelley#61) AddressTypeNibble
enum renamed toAddressType
derive/showAddress
now takenetwork
as an explicit parameter instead ofnetworkIdOrProtocolMagic
field inAddressParams
- 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 beNumber
(if it is small enough, i.e.<= Number.MAX_SAFE_INTEGER
), string, or nativeBigInt
. 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
orDestinationType.DeviceOwned
to clarify what the device should sign - Device owned destination reuses existing
Address
param type
- Destination is now explicitly of type
Address
is now tagged enum across different address types (Byron, Base, Enterprise, Pointer, Reward). Reward address still usesspendingPath
instead ofstakingPath
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 ofversion
wherecompatibility
describes overall set of features we support for the device. It should be responsibility of API users to checkcompatibility.isCompatible
flag and urge users to upgrade device tocompatibility.recommendedVersion
if the device is not compatible. - All (expected) errors thrown by the API are now descendants of
ErrorBase
fromerrors
subpackage. API now distinguishes between these error typesInvalidData
- you passed some wrong data to the API. We will not even try to communicate with the deviceDeviceUnsupported
- 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 inDeviceStatusCodes
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
2.2.0
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
- Support for Allegra-era transaction min validity property, transaction TTL is now optional: https://github.com/vacuumlabs/ledgerjs-cardano-shelley/pull/27/files
- Support for Mary-era multiasset outputs (no minting yet) https://github.com/vacuumlabs/ledgerjs-cardano-shelley/pull/27/files
- Update docs with a stake pool registration (as an owner) example vacuumlabs/ledgerjs-cardano-shelley#23
Fixed
- Fixed incorrect validation of numerical parameters passed as strings which failed for values over JS max safe integer: vacuumlabs/ledgerjs-cardano-shelley#29