Skip to content

Releases: cardano-foundation/cardano-wallet

v2024-03-01

05 Mar 12:19
v2024-03-01
Compare
Choose a tag to compare

Compatible with [email protected].

Changes

Added

  • Support the Conway era. #4410 #4424

    • Support for Sanchonet in Docker Compose configuration file. #4421

    • Support vote delegation to a decentralised representative (DRep). #4427 #4428 #4432 #4438 #4454

  • Support aarch64-darwin architecture, i.e. macOS machines with M1 chips and later. #4452 #4259

Changed

  • In the Conway era, when using the Join stake pool HTTP endpoint, the wallet will now automatically vote to Abstain. By doing so, the user opts into the governance system and ensures that rewards can be withdrawn after the governance bootstrapping phase has ended. #4468 #4454
  • ⚠️ When starting an updated cardano-wallet with an old database file, this database file will be migrated and can no longer be used with old versions of cardano-wallet. However, before migration, backup copies of your old database file will be created.

  • Error messages

    • If the wallet is asked to create a transaction in a situation where there are no UTxOs available, then the wallet will return a no_utxos_available error instead of a not_enough_money error. #4366

    • Make the not_enough_money API error machine-readable. #4348

Fixed

  • Fix bash instructions to start node and wallet containers in README. #4364

API changes

bump.sh

Show API changes
DELETE /stake-pools/*/wallets/{walletId}
  • Response
  • 403 response Modified
    • application/json content type Modified
      • no_utxos_available alternative Added
GET /shared-wallets
  • Response
  • 200 response Modified
    • application/json content type Modified
      • Active shared wallet (account public keys for each co-signers is collected) alternative Modified
GET /shared-wallets/{walletId}
  • Response
  • 200 response Modified
    • application/json content type Modified
      • Active shared wallet (account public keys for each co-signers is collected) alternative Modified
GET /wallets
  • Response
  • 200 response Modified
    • application/json content type Modified
GET /wallets/{walletId}
  • Response
  • 200 response Modified
    • application/json content type Modified
      • delegation attribute Modified
GET /wallets/{walletId}/stake-keys
  • Response
  • 200 response Modified
    • application/json content type Modified
      • ours attribute Modified
PATCH /shared-wallets/{walletId}/delegation-script-template
  • Response
  • 200 response Modified
    • application/json content type Modified
      • Active shared wallet (account public keys for each co-signers is collected) alternative Modified
PATCH /shared-wallets/{walletId}/payment-script-template
  • Response
  • 200 response Modified
    • application/json content type Modified
      • Active shared wallet (account public keys for each co-signers is collected) alternative Modified
POST /byron-wallets/{walletId}/coin-selections/random
  • Response
  • 403 response Modified
    • application/json content type Modified
      • not_enough_money alternative Modified
      • no_utxos_available alternative Added
POST /byron-wallets/{walletId}/payment-fees
  • Response
  • 403 response Modified
    • application/json content type Modified
      • not_enough_money alternativ...
Read more

v2023-12-18

20 Dec 12:31
v2023-12-18
6130be7
Compare
Choose a tag to compare

Compatible with [email protected].

Changes

Added

  • One change address mode to reduce resource consumption of Shelley- and Shared-style wallets #4129
  • Ability to filter transactions by address in GET /wallet/{wid}/transactions #4004
  • Ability to mint/burn assets using scripts from reference inputs #4074 #4086 #4114
  • 🏗️ HTTP API extensions in preparation for Voltaire support #4236
  • 🏗️ HTTP API extensions in preparation for metadata encryption #4176

Changed

Deprecated

  • The recovery-phrase, address and key CLI utilities previously re-exported from cardano-addresses. Please use cardano-addressees instead.

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes#event-change-1e3bb3d5-e168-4a12-ba28-c9b0cf31ef96

Show API changes
Modified: GET /byron-wallets/{walletId}/transactions
  Query parameter added: address
Modified: GET /byron-wallets/{walletId}/utxo
  Response modified: 200
    Content type modified: application/json
      Attribute modified: entries
Modified: GET /shared-wallets/{walletId}/transactions
  Query parameter added: address
Modified: GET /shared-wallets/{walletId}/utxo
  Response modified: 200
    Content type modified: application/json
      Attribute modified: entries
Modified: GET /wallets/{walletId}/transactions
  Query parameter added: address
Modified: GET /wallets/{walletId}/utxo
  Response modified: 200
    Content type modified: application/json
      Attribute modified: entries
Modified: POST /shared-wallets
  Content type modified: application/json
    Alternative modified: Create shared wallet from mnemonics
      Attribute added: one_change_address_mode
Modified: POST /shared-wallets/{walletId}/transactions-construct
  Content type modified: application/json
    Attribute modified: mint_burn
      Alternative added: minting via script reference
    Attributes added: encrypt_metadata, vote, reference_policy_script_template
Modified: POST /shared-wallets/{walletId}/transactions-decode
  Content type modified: application/json
    Attribute added: decrypt_metadata
Modified: POST /wallets
  Content type modified: application/json
    Alternative modified: shelley
      Attribute added: one_change_address_mode
Modified: POST /wallets/{walletId}/transactions-construct
  Content type modified: application/json
    Attribute modified: mint_burn
      Alternative added: minting via script reference
    Attributes added: encrypt_metadata, vote, reference_policy_script_template
Modified: POST /wallets/{walletId}/transactions-decode
  Content type modified: application/json
    Attribute added: decrypt_metadata
Modified: PUT /wallets/{walletId}
  Content type modified: application/json
    Attribute added: one_change_address_mode
Added: PUT /shared-wallets/{walletId}

Known Issues

  • (ADP-2953) Revision of cardano-node is not reported within version in release bundle binary for Windows.
  • (ADP-2635) Database connections do not seem to gracefully terminate on stopping the wallet.
  • (ADP-2298) Deposit_returned is falsely reported on some incoming transactions (intermittently).
  • (ADP-1831) cardano-wallet version from docker image does not report revision.

Installation Instructions

  1. Install [email protected].

  2. Download the provided cardano-wallet for your platform, and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin. Or %PATH% on Windows.

  3. Start cardano-wallet --help and see available parameters.

Docker

Pull from DockerHub and verify the version matches 2023.12.18.

$ docker pull cardanofoundation/cardano-wallet:2023.12.18
$ docker run --rm cardanofoundation/cardano-wallet:2023.12.18 version

Signatures

Name Role Approval
Heinrich Apfelmus @HeinrichApfelmus Software Engineer ✔️
Paolo Veronelli @paolino Software Engineer ✔️
Yura Lazaryev @Unisay Software Engineer ✔️

v2023-07-18

21 Jul 10:31
v2023-07-18
3f0d2f3
Compare
Choose a tag to compare

Compatible with [email protected].

Changes

Fixed

  • Update links in Readme after repository moved to cardano-foundation. (PR 3999)

Changed

  • Change organization from inputouput to cardanofoundation for Docker image. (PR 4026 and ADP-3085)
  • Remove the input selection limit from coin selection. (PR 3921 and ADP-3029)
  • When starting an updated cardano-wallet with an old database file, the tables containing delegation certificates will be migrated to a new format. (PR 3967 and ADP-3054)

Added

  • Enabled delegation action for multisig wallets. Delegation is supported for construct, decode, sign and submit. (PR 3830 and ADP-2602)
  • Enabled discovery and withdrawing of rewards for multisig wallets. (PR 3872, PR 3925  and ADP-2604, ADP-2603)
  • ⚠️When starting an updated cardano-wallet with an old database file, this database file will be migrated and can no longer be used with old versions of cardano-wallet. However, before migration, a backup copy of your old database file will now be created. (PR 3993, PR 3985 and ADP-3058)

Removed

  • Dropped support for creating transactions in Alonzo or older eras across all endpoints. (PR 3889 and ADP-2913)

    • The error balance_tx_era_not_supported has been replaced by node_not_yet_in_recent_era.
  • Drop support for balancing transactions in eras more recent than the node tip. (PR 3923 and ADP-2990)

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes#event-change-1bf4ed8f-909a-4084-baf7-113879d74334

Show API changes
  • Modified: GET /network/parameters
    • 200 response was modified
      • execution_unit_prices attribute was modified
  • Modified: POST /shared-wallets
    • 500 response was added
  • Modified: POST /shared-wallets/{walletId}/transactions-construct
    • 403 response was modified
      • staking_invalid alternative was added
  • Modified: POST /wallets/{walletId}/transactions-balance
    • 400 response was modified
      • inline_scripts_not_supported_in_alonzo, inline_datums_not_supported_in_alonzo alternatives were removed
        Breaking
    • 403 response was modified
      • node_not_yet_in_recent_era, tx_not_in_node_era alternatives were added
        Breaking
      • balance_tx_era_not_supported, balance_tx_max_size_limit_exceeded alternatives were removed
        Breaking
  • Modified: POST /wallets/{walletId}/transactions-construct
    • 403 response was modified
      • staking_invalid alternative was added

Known Issues

  • (ADP-2953) Revision of cardano-node is not reported within version in release bundle binary for Windows.
  • (ADP-2635) Database connections does not seem to be gracefully terminated on stopping the wallet.
  • (ADP-2298) Deposit_returned is falsely reported on some incoming transactions (intermittently).
  • (ADP-1831) cardano-wallet version from docker image does not report revision.
  • (ADP-1148) error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup.
  • (ADP-1052) Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets.
  • (ADP-776) High memory usage observed in SPO testnet wallet.
  • (ADP-773) Rare SQLite3 constraint errors when making transactions.
  • (ADP-772) On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big.
  • (ADP-571) Multi-addresses transactions sometimes result in an internal server error.

Documentation

📕 💻 🐳
API Documentation CLI Manual Docker Manual

Installation Instructions

  1. Install [email protected].

  2. Download the provided cardano-wallet for your platform, and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin. Or %PATH% on Windows.

  3. Start cardano-wallet --help and see available parameters.

Docker

Pull from DockerHub and verify the version matches 2023.7.18.

$ docker pull inputoutput/cardano-wallet:2023.7.18
$ docker run --rm inputoutput/cardano-wallet:2023.7.18 version

Signatures

Name Role Approval
Yura Lazarev @Unisay Software Engineer ✔️
Heinrich Apfelmus @HeinrichApfelmus Software Engineer ✔️
Paolo Veronelli @paolino Software Engineer ✔️

v2023-04-14

17 Apr 09:09
3f90553
Compare
Choose a tag to compare

Compatible with [email protected].

Changes

Fixed

  • The listStakePools endpoint no longer returns null values for the metadata and retirement fields if no data is available. Instead, if no data is available, these fields are simply omitted from the JSON response. This fixes a regression introduced in the v2022-12-14 release. (ADP-2523, PR 3675)
  • When the wallet decodes a transaction that includes native scripts (that act as witnesses and contain key hashes):
    • If the key hash belongs to the wallet (i.e., it is an "internal" hash), the wallet will mark these as belonging to the wallet and use an appropriate bech32 prefix in the JSON representation:
      • policy_vkh
      • addr_shared_vkh
      • stake_shared_vkh
    • If the key hash does not belong to the wallet (i.e., it is an "external" hash), the wallet will represent these hashes with hexadecimal values, and not include a bech32 prefix in the JSON representation.

This brings the wallet into compliance with CIP-0005 and CIP-1855.

The following endpoints are affected:

(ADP-2312, PR 3605)

  • Incomplete shared wallet is no longer silently syncing in background (ADP-2432, PR 3676)
  • Tx history not available after receiving token from minting transaction made using reference script (ADP-2666)
  • Unexpected "balance_tx_underestimated_fee" on the preprod Shelley/Shared wallet (ADP-2646)

Changed

  • ⚠️ When starting an updated cardano-wallet with an old database file, all transactions that had Pending or Expired status will be forgotten about, so that the wallet will not attempt to re-submit these transactions. (Note that these transactions can still reappear with InLedger status). This is due to an internal database migration. While inconvenient, user impact should be small, as:
    • this database migration will be performed only once (during the first startup of the updated wallet); and
    • most Pending transactions will have expired naturally before the user opens their wallet again.

(ADP-2367, PR 3717)

  • ⚠️ When starting an updated cardano-wallet with an old database file, this database file will be migrated and can no longer be used with old versions of cardano-wallet. If you wish to revert to an old version of the software, please make a backup of the database file, or you will have to restore your wallets from scratch. (ADP-2367, PR 3717)
  • The transaction history is now stored on-disk again, reducing RAM usage at the expense of query time. (ADP-2780, PR 3763; ADP-2871, PR 3828)
  • Fees are now reported for all transactions, both incoming and outgoing, in the transaction history. Previously, fees were only reported on outgoing transactions. However, please note that for transactions made during the Byron era, the fee will still be reported as 0. (ADP-2840)

Added

Removed

  • Removed all references to the stack build tool from user documentation, replacing these references with equivalent instructions to build with cabal (and nix) instead. (ADP-2102, PR 3671)
  • Removed Blockfrost-related CLI options from the cardano-wallet executable, and all support for Blockfrost from Cardano Wallet. (ADP-2272, PR 3668)

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes#event-change-95213dc1-6199-451f-80d8-b9898e7bb0d7

Known Issues

  • error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
  • Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
  • High memory usage observed in SPO testnet wallet (ADP-776)
  • Rare SQLite3 constraint errors when making transactions (ADP-773)
  • On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
  • Multi-addresses transactions sometimes result in an internal server error. (ADP-571)

Documentation

📕 💻 🐳
API Documentation CLI Manual Docker Manual

Installation Instructions

  1. Install [email protected].

  2. Download the provided cardano-wallet for your platform, and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin. Or %PATH% on Windows.

  3. Start cardano-wallet --help and see available parameters.

Docker

Pull from DockerHub and verify the version matches 2023.4.14.

$ docker pull inputoutput/cardano-wallet:2023.4.14
$ docker run --rm inputoutput/cardano-wallet:2023.4.14 version

Signatures

Name Role Approval
Yura Lazarev @Unisay Software Engineer ✔️
Piotr Stachyra @piotr-iohk QA Engineer ✔️
Laurence Jenkins @LaurenceIO Release Manager ✔️

v2022-12-14

15 Dec 13:20
Compare
Choose a tag to compare

Compatible with [email protected].

Changes

Fixed

  • When estimating sizes of transactions with native scripts, fee estimation is now correct. (PR 3502)

  • Documentation has been updated to remove references to testnet, which is now deprecated. (PR 3540)

Changed

  • When using the Cardano Wallet REST API to construct a transaction, if a user-specified output has a quantity of lovelace that is greater than zero, but less than the minimum required by the ledger, Cardano Wallet will now return a machine-readable JSON error object with the minimum required quantity encoded as a separate info field. Previously, the minimum required quantity was embedded within the message field string, which made it hard to parse. (PR 3557, ADP-2299)

    • The following endpoints are affected:
    • Example of updated error schema:
        { "code": "utxo_too_small"
        , "message": "..."
      + , "info":
      +     { "tx_output_index": 0
      +     , "tx_output_lovelace_specified":
      +         { "quantity": 1000000
      +         , "unit": "lovelace"
      +         }
      +     , "tx_output_lovelace_required_minimum":
      +         { "quantity": 1234567
      +         , "unit": "lovelace"
      +         }
      +     }
      }
  • The API error withdrawal_not_worth has been renamed to withdrawal_not_beneficial. (PR 3583)

  • The balanceTransaction endpoint will now increase 0-ada outputs (outputs without any ada quantities) to the minimum ada quantity required by the ledger. This behaviour is now consistent with other wallet transaction creation endpoints. Consequently, the API error balance_tx_zero_ada_output has been removed. (ADP-2347)

  • The constructTransaction endpoint can now succeed in a greater range of situations:

    • By default, constructTransaction will first attempt to use the pre-existing optimal coin selection strategy. When using the optimal strategy, the wallet’s coin selection algorithm will attempt to select around twice the minimum possible amount of each asset from the available UTxO set, making it possible to generate change outputs that are roughly the same sizes and shapes as user-specified outputs.
    • If using the optimal strategy results in a transaction that is too large or too costly, constructTransaction will now automatically fall back to the minimal coin selection strategy. When using the minimal strategy, the wallet’s coin selection algorithm will only select just enough of each asset from the available UTxO set to meet the minimum amount. The selection process will terminate as soon as the minimum amount of each asset is covered.
    • This enhancement has been made possible by an internal restructuring of the wallet’s transaction construction logic: internally, constructTransaction now reuses balanceTransaction, which can now automatically fall back to the minimal coin selection strategy in some situations.

Added

  • When listing or fetching transactions through the HTTP REST API, pool delegation certificates, pool registration certificates, pool de-registration certificates, mint and burn values, script integrity hashes, validity intervals, and required extra signatures are now included. (ADP-1963, PRs)

  • Multi-party signing for multi-signature wallets. Support for this is currently functional, but experimental.

  • The ApiDecodedTransaction object now has a witnessCount field, which enumerates all the witnesses present in a given transaction, including verification keys and script witnesses. (PR 3529)

  • Added new endpoints getSharedTransaction and listSharedTransactions for multisig wallets. (PR 3577, ADP-2224)

  • Introduced standard bech32 prefixes (acct_shared_xvk) for extended account public keys over the whole shared wallet cycle (POST/PATCH/GET). Previously these keys were hex-encoded, but now these keys conform to the CIP-5 specification. (PR 3599, ADP-2332)

Removed

  • We’ve dropped support for balancing transactions in old eras. We now only support balancing transactions in the two latest eras: Alonzo and Babbage. Support for Shelley, Allegra, and Mary has been dropped. (PR 3525)

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes/4f97ece4-282f-421a-9268-fd1705546b49

Show API changes
Read more

v2022-10-06

06 Oct 15:20
v2022-10-06
2130fe0
Compare
Choose a tag to compare

This release is compatible with the Babbage Era of the Cardano network. It is ready to be deployed, tested, and implemented in your products.

However, some features that are specific to the Babbage Era are still under construction, see 🏗 below.

Compatible with [email protected].

Changes

Fixed

  • Creating a Byron address no longer fails intermittently. If an address was not created explicitly by the user, the wallet would sometimes create it implicitly as a change address, leading to misattribution of funds in some exchange use cases. (ADP-2211, ADP-2283, PR 3528)

  • Fee calculation performance deterioration. (ADP-2144 / PR 3456)

  • Patched shared wallets have the correct address gap and address pool.
    (ADP-2219, PR-3500).

Changed

  • All REST API endpoints involving transaction construction now have additional documentation to explain how the wallet handles minimum UTxO values for user-specified transaction outputs. (ADP-2250 / PR 3524)

  • Improved validation and resolution of user-provided inputs in POST /wallet/{wid}/transactions-balance. Two new errors were added: unresolved_inputs and input_resolution_conflicts. These replace behaviour that was previously undefined. (ADP-1662 / PR 3475)

  • Reintroduced database blocking in light-mode, preventing concurrent API calls. (PR 3528)

Added

  • Preliminary sign, decode, and submit endpoints for shared wallets. (ADP-1850, PR-2425, PR-3499).

  • Support for new transaction workflow that makes it possible for construction, signing and submission to be performed in separate steps. This process also includes support for balancing and decoding.
    (ADP-2083, PR-3449).

  • Support for using scripts and non-extended keys when constructing addresses. This is in addition to the existing support for script hashes, extended keys and key hashes.
    (ADP-2114, PR-3435).

Removed

  • The minimum_utxo_value field has been removed from the REST API. (ADP-2250 / PR 3159)

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes/a36a1baa-66a6-42df-a4e3-c6627d6b7a57 ⚠️ Breaking ⚠️

Show API changes

Known Issues

  • Light-mode currently does not work. (ADP-2285)
  • Database benchmarks are failing. (ADP-2202)
  • FeeTooSmallUTxO error when submitting transaction from shared wallet. (ADP-2221)
  • Problem with stake-pool.sqlite/pools-engine sync after upgrading to cardano-wallet v2022-08-16 and large memory usage. (ADP-2227)
  • 🏗 balanceTransaction does not yet support balancing transactions with total collateral or collateral return set, but will fail gracefully. (ADP-1684, ADP-1685)
  • 🏗 balanceTransaction does not yet fully support balancing transactions with reference inputs or inline datums. (ADP-1655)
  • Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets. (ADP-1052)
  • High memory usage observed in SPO testnet wallet. (ADP-776)
  • Rare SQLite3 constraint errors when making transactions. (ADP-773)
  • On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big. (ADP-772)
  • Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm). (ADP-702)
  • Wallet restoration time deteriorated 2x in v2021-01-28. (ADP-690)
  • Wallet disappears after migration from `v202...
Read more

v2022-08-16

18 Aug 15:05
v2022-08-16
afe5756
Compare
Choose a tag to compare

This release is compatible with the Babbage Era / Vasil HF of the Cardano network, ready to be deployed, tested, and implemented in your products.

However, some features that are specific to the Babbage Era are still under construction, see 🏗 below.

Compatible with [email protected].

Changes

Added

Changed

  • The wallet now uses the Cardano API calculateMinimumUTxO function for all minimum UTxO calculations. This ensures that as we transition from the Alonzo era to the Babbage era, the wallet and ledger minimum UTxO validation rules will continue to be consistent with one another. (See: ADP-1978, ADP-2039, PR 3368, PR 3388, PR 3416, PR 3422, PR 3423, PR 3426)

    Details:

    • When using the wallet to build or balance a transaction, any user-specified payment outputs will be subject to the same minimum UTxO validation rule as the ledger.
    • The minimum UTxO validation rule is era-dependent:
      • In the Alonzo era:
      • In the Babbage era:
    • The wallet will only reject an ada quantity that is too low if the ledger would also reject that ada quantity.
    • As with previous versions of the wallet, if validation fails, then the wallet will return an HTTP 403 Forbidden utxo_too_small error.
    • This validation rule is used in the following end points:
    • The definition of the field minimum_utxo_value in GET /network/parameters has been revised — it now reports the absolute minimum; any actual UTxO value will likely need to be higher in order to be accepted by the Cardano ledger.
  • Transactions which are valid in both Alonzo an Babbage are now signed, balanced and submitted in the current node era, instead of always in Alonzo (PR 3391).

Fixed

  • Current slotting parameters now are reported correctly in light-mode (PR 3415).
  • Reduce database blocking in light-mode, allowing concurrent API requests again (PR 3399).

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes/bb984355-1995-46a0-8343-a8440baa5eaf

Show API changes

Known Issues

  • Fee calculation performance deterioration (ADP-2144)
  • 🏗 balanceTransaction does not yet support balancing transactions with total collateral or collateral return set, but will fail gracefully (ADP-1684, ADP-1685)
  • 🏗 balanceTransaction does not yet fully support balancing transactions with reference inputs or inline datums (ADP-1655)
  • Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
  • High memory usage observed in SPO testnet wallet (ADP-776)
  • Rare SQLite3 constraint errors when making transactions (ADP-773)
  • On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
  • Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm) (ADP-702)
  • Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)
  • Wallet disappears after migration from v2021-09-09 to v2021-09-29 when there are pending transaction (ADP-1224)
  • Error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
  • Icarus wallets restoration is ~3x slower than random/shelley (ADP-785)
  • Multi-addresses transactions sometimes result in an internal server error. (ADP-571)

Documentation

📕 💻 🐳
[API Docu...
Read more

v2022-07-01

01 Jul 16:19
c0ece6a
Compare
Choose a tag to compare

This release captures a first compatible version of cardano-wallet ready to be deployed, tested, and implemented in your products on the newly forked Babbage Era of the Cardano Testnet. While cardano-wallet’s feature set will continue performing as expected in most cases, we do know of some exceptions (see ⚠️ below).

This release will be followed by a release(s) addressing these known issues. If you find there are other issues please create a GitHub Issue in this repository.

Compatible with [email protected].

Changes

Added

  • Support for cardano-node 1.35.0 (#3293 #3280 #3340 #3349 #3357, #3347, #3354)
  • 🏗 Partial support for Babbage era / Vasil HF (#3308, #3311, #3362, #3360, #3326)
    • The wallet should continue working in Babbage, with some exceptions:
      1. ⚠️ The minimum UTxO calculation could be incorrect for Babbage in some cases. This calculation is used:
      2. ⚠️ New transaction workflow endpoints are currently biased towards deserialising and submitting transactions binaries as Alonzo transactions even in Babbage. The implications of this should be minor, as these transactions are still acceptable by the node.
    • balanceTransaction does not yet support balancing transactions with total collateral or collateral return set, but will fail gracefully. #3343
    • Wallets are able to discover collateral return outputs in transactions. #3251 #3346 #3367

Fixed

  • For Babbage (and possibly Alonzo) era transactions, the API does not correctly reflect the script validity (ADP-1970, #3365)

API Changes

https://bump.sh/doc/cardano-wallet-diff/changes/f1ff267d-448f-4d65-b988-eb4df3f6356f

Show API changes
  • Modified: GET /network/parameters
    • 200 response was modified
      • eras body attribute was modified
  • Known Issues

    • Potential regression in wallet restoration (ADP-1371)
    • Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
    • High memory usage observed in SPO testnet wallet (ADP-776)
    • Rare SQLite3 constraint errors when making transactions (ADP-773)
    • On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
    • Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm) (ADP-702)
    • Listing transaction time deteriorated (even up to 3x) (ADP-691)
    • Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)
    • Wallet disappears after migration from v2021-09-09 to v2021-09-29 when there are pending transaction (ADP-1224)
    • Error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
    • Icarus wallets restoration is ~3x slower than random/shelley (ADP-785)
    • Multi-addresses transactions sometimes result in an internal server error. (ADP-571)

    Documentation

    📕 💻 🐳
    API Documentation CLI Manual Docker Manual

    Installation Instructions

    1. Install [email protected].

    2. Download the provided cardano-wallet for your platform, and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin. Or %PATH% on Windows.

    3. Start cardano-wallet --help and see available parameters.

    Docker

    Pull from DockerHub and verify the version matches 2022.7.1.

    $ docker pull inputoutput/cardano-wallet:2022.7.1
    $ docker run --rm inputoutput/cardano-wallet:2022.7.1 version
    

    Signatures

    Name Role Approval
    Heinrich Apfelmus @HeinrichApfelmus Haskell Engineering Lead ✔️
    Piotr Stachyra @piotr-iohk QA Engineer ✔️
    Laurence Jenkins @LaurenceIO Release Manager ✔️

    v2022-05-27

    27 May 12:23
    27600f5
    Compare
    Choose a tag to compare

    Compatible with [email protected].

    Changes

    Added

    • The constructTransaction endpoint now supports minting and burning of tokens (ADP-1191). See how to mint an NFT for more information.

    • It's now possible to use a simpler metadata format in various endpoints that relate to transactions. (ADP-1596, PR-3253)

    • Transactions returned by the getTransaction and listTransactions API endpoints now have a collateral_outputs field. For the moment, this field is always empty, but after the Vasil hard fork we will use this field to list any collateral return outputs that are associated with transactions.
      (PR 3251, ADP-1715, ADP-1716, ADP-1717)

    • It's now possible to change a Shelley wallet passphrase by specifying the wallet's mnemonic. Previously, it was only possible to do this by specifying the old passphrase. (ADP-1658, PR-3279)

    Changed

    • The method of calculating wallet IDs for shared wallets has changed. This affects both cardano-wallet and cardano-addresses. The wallet ID is now determined by the extended public account key, the payment script template, and the delegation script template if present.
      (ADP-1621, PR-3275).

    • Restoring a wallet now has a smaller memory footprint. (ADP-1765, PR-3274)

    Fixed

    • Certain validity intervals that were mistakenly rejected are now accepted when calling constructTransaction. (ADP-1738, PR-3269)

    • Certain API inconsistencies relating to validity and timelocks are now fixed: (PR 3249, ADP-1193)

      • It’s now forbidden to pass negative values in validity_interval.
      • It’s now required to pass invalid_before or invalid_hereafter or both.

    API Changes

    https://bump.sh/doc/cardano-wallet-diff/changes/215a1771-fce0-4d7d-a7b1-198272f8337c

    Show API changes
    Read more

    v2022-04-27

    28 Apr 15:06
    v2022-04-27
    Compare
    Choose a tag to compare

    This release contains:

    • Improved support for minting and burning.
    • Continued development of a light mode.
    • Improved transaction balancing reliability.
    • Refactoring of the database and coin-selection modules.
    • A host of testing improvements and miscellaneous fixes.

    Compatible with [email protected].

    API Changes

    https://bump.sh/doc/cardano-wallet-diff/changes/c11ebb1b-39c1-40b6-96b9-610705c62cb8

    Community Contributions 💞

    New Features

    Light mode (🚧 under development 🚧)

    See more: How to start wallet server in light mode.

    • Specification of light-mode #3118
    • Fix diagram rendering in light-mode specification #3131
    • Add BlockSummary type and related changes #3143
    • Docs: Improve address discovery diagram for the light mode spec #3144
    • Add a --light --blockfost-token-file CLI options #3148
    • Light NetworkLayer: watchNodeTip/currentNodeTip #3169
    • Change applyBlocks to also accept BlockSummary #3172
    • Light NetworkLayer: lightSync #3175
    • Cardano.Wallet.Shelley.Launch.BlockfrostSpec #3176
    • Fix BlockfrostSpec on Windows #3182
    • Rework CLI error reporting for the --blockfrost-token-file #3184
    • Light Mode: Node tip and Protocol Parameters #3189
    • Update docs for --light mode #3191
    • Light Mode: currentCardanoEra #3209
    • E2E tests for light mode #3213
    • Light Mode: Time Interpreter #3221
    • Light mode: hardcode epoch/era conversion for the Testnet #3222
    • Light mode: fetch reward account balances #3231
    • Enable network info ep test in light mode suite #3234

    Minting and Burning (🚧 under development 🚧)

    • Add minting/burning to constructTransaction and decodeTransaction #3152
    • Make decodeTx not so strict when policy key is missing #3194
    • Impl signing for minting/burning in new tx flow #3199
    • Minting edge cases and additional testing #3226
    • Get policy id endpoint #3239

    Improvements

    Transaction Balancing Reliability

    • Add estimateSignedTxSize based off ledger's evaluateTransactionFee #3166
    • Prepare for rewriting balanceTransaction #3150
    • Re-write balanceTransaction using Node.evaluateTransactionBalance #3100
    • Implement sizeOfCoin and costOfIncreasingCoin #3215
    • Implement distributeSurplus and use in balanceTransaction #3223
    • Suggestions for PR #3215 #3224
    • Generalize distributeSurplus. #3238
    • Add more property tests for distributeSurplus. #3243
    • Add extraCoin{In,Out} to SelectionParams #3093
    • Factor out guards into helpers in balanceTransaction #3092

    Coin Selection Refactoring

    • Provide a wallet-specific interface for coin selection. #3109
    • Fork the Selection type. #3111
    • Make wallet responsible for determining collateral suitability #3116
    • Remove use of TxOut from Selection.{inputs,outputs} #3128
    • Use (TxIn, Address) as a unique input identifier within coin selection modules. #3149
    • Generalize UTxO identifier type within UTxOIndex. #3154
    • Generalize UTxO identifier type within UTxOSelection. #3155
    • Parameterize UTxO identifier type in internal coin selection modules. #3157
    • Remove all remaining usages of TxOut from coin selection implementation. #3158
    • Add the SelectionStrategy type. #3161
    • Add support for minimal coin selections #3164
    • Provide shared context for common coin selection types. #3165
    • Remove the need for Proxy when generating a dummy address. #3168
    • Generalize UTxO identifiers and addresses in coin selection Gen modules. #3174
    • Add property tests for conversion functions in Wallet.CoinSelection. #3177
    • Remove hard-coded dependency on txOutMax{Coin,TokenQuantity} within coin selection modules #3197
    • Remove wallet types from coin selection test suite. #3204
    • Make UTxOIndex agnostic to the distinction between ada and non-ada assets. #3217
    • Generalize SelectionFilter tests within UTxOIndexSpec. #3220

    DB Refactoring

    • database_schema_version table stores current database schema version. #3105
    • Use modifyDBVar instead of putCheckpoint in Cardano.Wallet #3108
    • Introduce types DeltaUTxO and DeltaWallet #3156

    Miscellaneous

    • Select witnesses only for unique inps #3110
    • Undelegate with existing rewards #3119
    • Don't require a localhost dns entry #3185
    • (Not yet used) Implement new Stake Pool Ranking formulas #3190
    • Adjust e2e tests for minting/burning edge cases #3236

    Documentation

    • Docs: Revise and clean up user guide and concepts sections #3106
    • Docs: Add more info about restarting hydra jobs #3126
    • Docs: Add delegation use-case and clean up existing use-cases #3138
    • Docs: Fix ordering of use-cases #3139
    • Docs: Managing assets #3140
    • Docs: Rendering fix #3141

    Testing

    • Server: Update windows error codes list #3125
    • Add --markdown-output and unclassified failures count to scripts/bors-stats.rb #3127
    • Remove assertions for pending tx after doing submit tx (it's flaky) #3129
    • Fix link to hydra in e2e tests #3133
    • Timeout restoration benchmark after 20h #3134
    • Prepare for rewriting balanceTransaction #3150
    • E2e tests: Fix expression getting supported node tag from README #3163
    • E2e test against pr #3167
    • E2e tests against cached wallet db #3171
    • Adjust e2e tests #3178
    • E2e tests: minor test and workflow updates #3188
    • E2e tests: Fix docker wallet db cache #3198
    • Fix shrinker for ProtocolParameters. #3205
    • E2e testing: Minting/burning #3207
    • Speed up TransactionSpec.signTransaction. #3211
    • Attempt to fix "Gave up!" problem in prop_balanceTransactionUnresolvedInputs #3212
    • Get node db from aws in Windows e2e flow #3216
    • Fix for fingerprint in e2e test #3227
    • Fix typo in test #3228
    • Fix JSON encoding warnings in golden tests. #3247

    Resolved Issues

    Bug Fixes

    • Fix for the listAssets API which shows assets unrelated to a wallet #3132
    • Fix decode tx in plutus minting #3218
    • ValueNotConservedUTxO: Transaction seems balanced incorrectly in case when less than minUtxOValue is left on the wallet #3100

    Miscellaneous Build Fixes

    • nixpkgs: 21.05 -> 21.11 #3130
    • nix: Fix source filtering on latency benchmark #3135
    • Better CI badge for Hydra #3137
    • Bump cardano-node to 1.34.1 #3160
    • Drop support for stack build #3170
    • Quick fix: Constrain hedgehog < 1.1 #3192
    • Fix cardano-wallet nightly build #3200
    • Replace stack invocations in documentation with cabal #3201
    • Update haskell.nix version now that we can cross-compile secp256k1 #3203
    • GitHub Actions: Upgrade to windows-2022 #3208
    • Ensure nightly test advances to the correct commit #3210
    • Ensure 1.34.1 node bump is reflected in cabal.project #3229
    • Use a patched openapi3 lib #3244

    Known Issues

    • Potential regression in wallet restoration (ADP-1371)
    • Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
    • High memory usage observed in SPO testnet wallet (ADP-776)
    • Rare SQLite3 constraint errors when making transactions (ADP-773)
    • On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
    • Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm) (ADP-702)
    • Listing transaction time deteriorated (even up to 3x) (ADP-691)
    • Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)
    • Wallet disappears after migration from v2021-09-09 to v2021-09-29 when there are pending transaction (ADP-1224)
    • Error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
    • Icarus wallets restoration is ~3x slower than random/shelley (ADP-785)
    • Multi-addresses transactions sometimes result in an internal server error. (ADP-571)

    Documentation

    📕 💻 🐳
    API Documentation CLI Manual Docker Manual

    Installation Instructions

    1. Install [email protected].

    2. Download the provided cardano-wallet for your platform, and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin. Or %PATH% on Windows.

    3. Start cardano-wallet --help and see available parameters.

    Docker

    Pull from DockerHub and verify the version matches 2022.4.27.

    $ docker pull inputoutput/cardano-wallet:2022.4.27
    $ docker run --rm inputoutput/cardano-wallet:2022.4.27 version
    

    Signatures

    Name Role Approval
    Rodney Lorrimar @rvl Technical Team Lead ✔️
    Piotr Stachyra @piotr-iohk QA Engineer ✔️
    Laurence Jenkins @LaurenceIO Release Manager ✔️