Overview
Program | Platform | Description |
---|---|---|
cardano-wallet | linux-x86_64 | A CLI tool to start and interact with a wallet server. See Key Features below. |
cardano-wallet.sh | linux-x86_64 | Auto-completion script for cardano-wallet
|
cardano-wallet-launcher | linux-x86_64 | A commodity utility to launch a wallet server with a corresponding node backend. |
This release brings full transaction support (on Byron network) to the API and the command-line. It also contains a few minor bug fixes and documentation improvements (as well as much more descriptive and user-friendly errors from the API and the command-line).
Key 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
-
A web server which exposes the following features (see API Documentation below):
cardano-wallet-launcher
- A command-line interface which starts and supervise both a wallet server and a cardano-http-bridge
Known Limitations
-
⚠️ Only one address derivation scheme is supported: sequential scheme (a.k.a. Icarus' address style or, addresses à la BIP-44).
-
⚠️ So far, only one backend is supported: cardano-http-bridge (run on the Byron-OFT era, experimental stability).
-
⚠️ The wallet backend server is shipped with only an in memory storage which is volatile: restarting the server will erase the memory completely.
Bug Fixes
Ticket | Title |
---|---|
#291 | Shuffle statistical tests sometimes fail... |
Known Issues
Ticket | Title |
---|---|
#250 | GET v2/wallets does not list wallets from oldest to newest |
#260 | No additional error message in case of 4xx responses |
#324 | Bech32 occassionally fails when decoding a string with an omitted character |
#326 | Cannot post transaction after updating wallet's passphrase |
#333 | Sending transaction to not-valid address (yet being base58 encoded string) gives HTTP 500 -> "Something went wrong" |
#364 | Transaction with amount 0 on http bridge fails with error HTTP 500 |
#397 | CLI wrongly returns exit code 0 when providing not existing wallet id |
#398 | CLI unnecessarily asks for password when posting transaction from a non-existing wallet |
#403 | API swagger specification isn't a valid swagger file |
Installation Instruction
Please note that currently only Unix\Linux platform is supported.
-
Install cardano-http-bridge.
- Install the rust toolchain.
- In terminal run
cargo install --git https://github.com/input-output-hk/cardano-http-bridge.git
- make sure
$HOME/.cargo/bin
is on your$PATH
-
Download
cardano-wallet
andcardano-wallet-launcher
and put it in the directory that is on your$PATH
, e.g./usr/local/bin
. Make sure to add exec permissions on binary files:chmod u+x cardano-wallet cardano-wallet-launcher
-
Start
cardano-wallet-launcher --help
and see available parameters and follow instructions about how to installcardano-http-bridge
if you haven't done already in point 1.
⚠️ The wallet server & launcher both expect a
NETWORK
ENV var to be available with one of the following value:
- mainnet
- testnet
- staging (not supported)
This variable commands which network the software should connect to and interact with.
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
SQLite implementation for the DB Layer
PR | Description |
---|---|
#246 | Tidy up some of the formatting within Cardano.Wallet.DB.Sqlite. |
#247 | Set up database connection and create tables |
#270 | Relocate properties to DBSpec for further sharing |
#272 | Add functions for serializing keys as text |
#276 | Sqlite: add a test of cascading delete |
#282 | SQLite: Add put/readPrivateKey to DBLayer |
#283 | Sqlite: add checkpoints and transactions to DBLayer |
#288 | Sqlite: implement withLock from DBLayer |
#293 | Add indexes to certain SQLite table columns |
#300 | Sqlite: enable db property tests and fix failures |
Jörmungandr High-Level Integration
PR | Description |
---|---|
#244 | Scaffold lib/jormungandr folder
|
#319 | Include more examples from BIP-173 vectors in tests |
#245 | Jörmungandr block format header decoding |
#248 | Bech32 Library - port of reference implementation |
#266 | Add 'Initial' message-decoder with config parameters |
#271 | Use richer errors for Bech32 encoder and decoder |
#273 | Implement Jörmungandr Transaction-message decoder |
#275 | Docs, polish and config param 16 |
#277 | Further enhancements to the Bech32 library. |
#284 | Build Jörmungandr on CI - another take |
#287 | Make CI faster especially on PR builds |
#290 | Remove redundant job condition in travis (already at top-level) |
#296 | Improve bech32 coveralls |
#297 | Add Jörmungandr integration tests |
#305 | Add genesis.yaml and instructions for how to use it |
#309 | Change jormungandr rest port to 8081 |
#312 | Fix Bech32 decoder + encoder |
Transaction Support
PR | Description |
---|---|
#258 | Enable transaction support in integration tests for cardano-http-bridge |
#263 | Integration test: Polling for wallet fixture & Better error handling |
#269 | Fix references to 'ApiTransaction' in swagger specification |
#274 | Implement ability to list addresses in the wallet layer, API and CLI |
#281 | First end-to-end transaction Integration test (with http-bridge) |
#301 | Transaction integration tests |
#317 | Review Fee Window for Tx scenarios |
Miscellaneous / Technical Debts
PR | Description |
---|---|
#241 | Use more natural English in the CLI usage string. |
#243 | Start reviewing Primitive.Types docs
|
#249 | Wallet Management Remaining Endpoints: update & update passphrase |
#251 | WALLETS_GET,LIST,DELETE integration tests |
#252 | update 4xx responses in API spec |
#253 | Add CLI manual to README |
#254 | Parse name and wallet-id as argument |
#255 | Fix warning about license-file of lib/cli/cardano-wallet-cli.cabal |
#257 | Wallet update integration tests |
#261 | Wallet update passphrase integration tests |
#262 | Add bors.toml |
#264 | Basic integration scenarios for CLI |
#267 | Fix inconsitent response code wallet update |
#278 | More integration tests for CLI (including minor fixes in CLI) |
#279 | Take into account out-of-process executions for code coverage |
#285 | Fix bors config |
#289 | show feature availability in API specification |
#303 | Release deployments tweaks + template |
Bugs - Sprint 19/20
PR | Description |
---|---|
#292 | Fix Change Calculation |
#295 | fix shuffle tests in CoinSelectionSpec once and for all |
#298 | More Descriptive Errors (Part 1/2) |
#299 | More Descriptive Errors (Part 2/2) |
#304 | Remove temporary code from CLI for raw server errors + some small error fixes |
#306 | Fix documentation export |
#307 | When embedding the Swagger API specification, use a path that is relative to the project root |
#308 | Increase the fluency of English language messages for API errors. |
#315 | Update existing tests with expectations for error messages |
#318 | fix pointer reference to 'ApiAddress' in spec + update schema for errors |
Signatures
Name | Role | Approval |
---|---|---|
Matthias Benkort @KtorZ | Technical Team Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Tatyana Valkevych @tatyanavych | Release Manager | ✔️ |