Overview
This release introduces a new target chain producer for the wallet backend: Jörmungandr@v0.2.3. The software therefore comes in two different flavours though users are expected to pick only one and stick to it for the underlying networks behind cardano-http-bridge and Jörmungandr aren't compatible. The support for cardano-http-bridge is indeed provisional and will soon become legacy. New users should favor cardano-wallet-jormungandr for a better experience.
| Program | Platform | Description |
|---|---|---|
cardano-wallet-jormungandr.tar.gz | linux-x86_64 | A CLI tool to start and interact with a wallet server using Jörmungandr as a chain producer. See Main Features below.
|
cardano-wallet-jormungandr.sha256 | N/A | Checksum for the executable in cardano-wallet-jormungandr.tar.gz
|
cardano-wallet-http-bridge.tar.gz | linux-x86_64 | A CLI tool to start and interact with a wallet server using cardano-http-bridge as a chain producer. See Main Features below.
|
cardano-wallet-http-bridge.sha256 | N/A | Checksum for the executable in cardano-wallet-http-bridge.tar.gz
|
cardano-wallet.sh | linux-x86_64 | Auto-completion script for cardano-wallet (works for all flavours)
|
Main Features
cardano-wallet
-
A command-line interface which exposes the following features (see CLI manual below):
- Create and Delete wallet
- Get details of a particular wallet
- List all known wallets
- Generate BIP-39 mnemonic sentence (english) of various sizes
- Update wallet metadata
- Create and submit transactions from a single wallet
- List known (used or unused) addresses of a wallet
- Serve wallet against
cardano-http-bridge - Launch wallet against
cardano-http-bridge
Serve wallet against Jörmungandr
Launch wallet against Jörmungandr
Estimate transaction fee
Visualize wallet's UTxO distribution
Update wallet encryption passphrase
-
A web server which exposes the following features (see API Documentation below):
- Create and delete wallet
- Get details of a particular wallet
- List all known wallets
- Update wallet metadata & wallet encryption passphrase
- Create and submit transactions from a single wallet
- List known (used or unused) addresses of a wallet
- API and server logs
Estimate transaction fee
Visualize wallet's UTxO distribution
-
Node.js-compatible IPC server with custom protocol
-
Data-persistence to disk via SQLite
Known Limitations
- ⚠️ Only one address derivation scheme is supported: sequential scheme (a.k.a. Icarus' address style or, addresses à la BIP-44).
- ⚠️ Only Jörmungandr BFT node is currently supported
Bug Fixes
| Ticket | Title |
|---|---|
| #409 | cardano-wallet server fails with unpleasant error when does not connect to http-bridge within a few seconds |
| #423 | Starting mainnet server on testnet bridge results in unfriendly error message.
|
| #551 | Unstable order when reading transaction history |
Known Issues
∅
Installation Instructions
Please note that currently only Unix\Linux platform is supported.
with Jörmungandr@v0.2.3
-
Install jormungandr@v0.2.3 from the official repository.
-
Download
cardano-wallet-jormungandr.tar.gzand uncompress it in a directory that is on your$PATH, e.g./usr/local/bin.
$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet-jormungandr.tar.gz | tar xz -C $HOME/.local/bin
- (optional) Download and install bash/zsh auto-completion script:
$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet.sh > /etc/bash_completion.d
$ source /etc/bash_completion.d/cardano-wallet.sh
- Start
cardano-wallet --helpand see available parameters.
with cardano-http-bridge
-
Install cardano-http-bridge from our fork.
- Install the rust toolchain.
- In terminal run
cargo install --git https://github.com/KtorZ/cardano-http-bridge.git --branch cardano-wallet-integration - make sure
$HOME/.cargo/binis on your$PATH
-
Download
cardano-wallet-http-bridge.tar.gzand uncompress it in a directory that is on your$PATH, e.g./usr/local/bin.
$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet-http-bridge.tar.gz | tar xz -C $HOME/.local/bin
- (optional) Download and install bash/zsh auto-completion script:
$ curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2019-07-24/cardano-wallet.sh > /etc/bash_completion.d
$ source /etc/bash_completion.d/cardano-wallet.sh
- Start
cardano-wallet --helpand see available parameters.
Documentation
| Link | Audience |
|---|---|
| API Documentation | Users of the Cardano Wallet API |
| Haddock Documentation | Haskell Developers using the cardano-wallet as a library
|
| CLI Manual | Users of the Cardano Wallet API |
Changelog
Jörmungandr Integration Testing
| PR | Description |
|---|---|
| #476 | Jörmungandr binary roundtrips |
| #496 | Enable Integration Tests for Jörmungandr (Part III: Command-Line tests) |
| #503 | Review deployment script to include both jormungandr and http-bridge |
| #504 | Preliminary integration tests cleanup before turning on remaining ones on Jörmungandr |
| #506 | PORT_ tests for Jörmungandr |
| #508 | Create Jormungandr Config from command-line options |
| #509 | Enable launcher specs on Jörmungandr, |
| #517 | Better errors for --genesis-block and --bft-leaders
|
| #520 | Pass --quiet and --verbose options down to Jörmungandr |
| #523 | Fix coin selection max number of inputs not diminishing as expected |
| #525 | Jormungandr.NetworkSpec: Add more error path tests |
| #528 | Timeout test for serve for jormungandr and http-bridge |
| #530 | Jormungandr test coverage |
| #537 | CLI golden tests for common command usage |
| #540 | add unknown input unit tests in Jormungandr |
| #570 | add tooBigTransaction Jormungandr unit tests |
Review Coin Selection
| PR | Description |
|---|---|
| #536 | Use tx max size & estimator to figure out the right input upper-bound in coin selection |
Finalize 'Transactions' API endpoints
| PR | Description |
|---|---|
| #495 | Transaction estimateMaxNumberOfInputs |
| #497 | Add listTransactions in WalletLayer |
| #500 | Integration tests covering ErrInputsDepleted case |
| #507 | Add estimate fee endpoint |
| #511 | ValidateSelection extension, errors and new estimate fee endpoint test cases |
| #516 | add estimate fee CLI support |
| #524 | DBLayer readTxHistory now returns a sorted list |
| #526 | Introduce Iso8601Time type to support translation list CLI command.
|
| #527 | slot length based sleep duration |
| #532 | Add transaction list CLI command.
|
| #533 | Tests for fee estimation and post tx when tx max size is reached for single and multi output tx |
| #541 | Move Iso8601Range from Cardano.Wallet.Api to Cardano.Wallet.Api.Types
|
| #543 | Move splitAtLastOccurrence from bech32 to text-class.
|
| #544 | Add {From,To}HttpApiData instances for Iso8601Range.
|
| #548 | Extract out time formatting and parsing functions into separate module. |
| #556 | Extend BlockchainParameters with slotsPerEpoch and block0Date
|
| #565 | add utxo statistics endpoint |
| #569 | Rename SlotsPerEpoch to EpochLength
|
| #574 | Property-based tests for UTxO statistics |
| #518 | Add ListTransactions to Api with stub handler (returning [])
|
Bugs & Debts - Sprint 27-28
| PR | Description |
|---|---|
| #419 | nix: Add script for auto-regenerating and fix the build |
| #474 | Basic logging tests for cardano-wallet serve and launch |
| #490 | optparse-applicative for the command-line |
| #491 | Windows build |
| #498 | Introduce type MnemonicSize with accompanying tests.
|
| #505 | show default size for mnemonic --size using 'ToText' instance |
| #513 | Sqlite: close database on exit |
| #514 | Add tests for Show instances in network and transaction layers.
|
| #515 | Fall back to supportedCrossSystems |
| #519 | Add wallet update passphrase CLI command.
|
| #531 | Buildkite: Run DB bench in the nightly pipeline, |
| #534 | Make sure process is terminated on failure in Launcher specs |
| #535 | More tests for update passphrase via CLI |
| #538 | Network.HttpBridge: Add ErrNetworkInvalid |
| #539 | SQLite: fix numerous DELETE requests when inserting checkpoint |
| #545 | Sqlite: Remove \Table\ from Persistent field names |
| #546 | Integration test to test case when connecting to the wrong network (http-bridge) |
| #547 | Fix integration tests 'fixtureWalletWith' function |
| #550 | disable flaky 'Launcher' specs in CI merges... |
| #552 | fix hard-to-satisfy pre-condition in property test |
| #566 | Better structure for the internal organization of our state directory |
| #568 | additional info in help for --network argument |
| #576 | SqliteSpec: Fix occasional failure in QSM tests |
Signatures
| Name | Role | Approval |
|---|---|---|
| Matthias Benkort @KtorZ | Technical Team Lead | ✔️ |
| Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
| Tatyana Valkevych @tatyanavych | Release Manager | ✔️ |