v2022-04-27
github-actions
released this
28 Apr 15:06
·
7242 commits
to master
since this release
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 💞
- Export
ApiValidityBound
constructors #3114- Thanks @runeksvendsen
- Fix typos in comments and function names. #3153
- Thanks @rex4539
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 acceptBlockSummary
#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'sevaluateTransactionFee
#3166 - Prepare for rewriting balanceTransaction #3150
- Re-write balanceTransaction using Node.evaluateTransactionBalance #3100
- Implement
sizeOfCoin
andcostOfIncreasingCoin
#3215 - Implement
distributeSurplus
and use inbalanceTransaction
#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
fromSelection.{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 withinUTxOIndexSpec
. #3220
DB Refactoring
database_schema_version
table stores current database schema version. #3105- Use
modifyDBVar
instead ofputCheckpoint
inCardano.Wallet
#3108 - Introduce types
DeltaUTxO
andDeltaWallet
#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
-
Install
[email protected]
. -
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. -
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 | ✔️ |