Skip to content

v2022-04-27

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Apr 15:06
· 7414 commits to master since this release
v2022-04-27

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 cardano-node@1.34.1.

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 cardano-node@1.34.1.

  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 ✔️