Releases: cardano-foundation/cardano-wallet
Cardano Wallet Backend - Jörmungandr
Overview
This release introduces a new target chain producer for the wallet backend: Jö[email protected]. 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
- ![][new] Serve wallet against
Jörmungandr
- ![][new] Launch wallet against
Jörmungandr
- ![][new] Estimate transaction fee
- ![][new] Visualize wallet's UTxO distribution
- ![][new] 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
- ![][new] Estimate transaction fee
- ![][new] 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ö[email protected]
-
Install [email protected] from the official repository.
-
Download
cardano-wallet-jormungandr.tar.gz
and 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 --help
and 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/bin
is on your$PATH
-
Download
cardano-wallet-http-bridge.tar.gz
and 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 --help
and 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 |
Cardano Wallet Backend - Logging & SQLite (hotfix)
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 |
This release is a hotfix for v2019-06-24 which had a flaw regarding the wallet restoration: restoration workers wouldn't be restarted with restarts of the wallet server.
Main Features
See v2019-06-24
Bug Fixes
Ticket | Title |
---|---|
#484 | Restoration workers aren't restarted with the server |
Known Issues
Ticket | Title |
---|---|
#409 | cardano-wallet server fails with an unfriendly error when it does not connect to http-bridge within a few seconds |
#423 | Starting mainnet server on testnet bridge results in unfriendly error message. |
Installation Instruction
See v2019-06-24
Documentation
See v2019-06-24
Changelog
Bugs Sprint 25-26
PR | Description |
---|---|
#458 | Scenarios for 0 amount tx for multi and single output for CLI and API |
#486 | re-start restoration workers when restarting the application, |
Jörmungandr Integration
PR | Description |
---|---|
#463 | Implement Jörmungandr NetworkLayer postTx |
#464 | fix Jörmungandr witness calculation |
#470 | Turn on integration tests for Jörmungandr (Part I: Addresses & Wallets scenarios), |
#471 | Make faucet with 10 available UTxO for Jörmungandr, |
#473 | Get initial fee policy from the network (Jörmungandr), |
#475 | Turn on integration tests for Jörmungandr (Part II: Transactions scenarios), |
#480 | Move generic CLI functionality into cardano-wallet-cli library., |
#483 | Integrate Jörmungandr backend with CLI., |
#487 | Stricter jörmungandr binary encoders regarding integer overflow, |
Logging
PR | Description |
---|---|
#492 | Sqlite: Use the structured logging approach, |
#485 | Review logging in API layer, |
#449 | tests: Add a small test of Sqlite logging |
Miscellaneous / Technical Debts
PR | Description |
---|---|
#489 | Test invalid cli args and params, |
#482 | Provide ToText and FromText instances for Hash \Genesis\ , |
#479 | Add development flag for cardano-wallet target., |
#478 | Add ToText /FromText instances for String ., |
#477 | Use arbitraryBoundedEnum instead of genericArbitrary where possible., |
#468 | Add missing roundtrip ToText /FromText tests for Cardano.Wallet.Primitive data types., |
#459 | update 'listWallets' status in API specifications, |
#457 | Fixed wrong timeout in test expectations + update API specification with latest feature availability, |
#456 | bump revision for iohk-monitoring-framework, |
#455 | bump version to 2019.6.24, preparing next release, |
#454 | Integration Test Scenarios on top of Jörmungandr (Initial Setup), |
#453 | another attempt trying to cope with 500 when fetching network tip shortly after init (bridge), |
#452 | Review transaction ids golden tests (only new addresses), |
#451 | Parameterize Tx data-type over the wallet core engine (allowing to work with different representations), |
#450 | Replace CLI --min-log-severity argument with --quiet and --verbose switches. |
Signatures
Name | Role | Approval |
---|---|---|
Matthias Benkort @KtorZ | Technical Team Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Tatyana Valkevych @tatyanavych | Release Manager | ✔️ |
Cardano Wallet Backend - Logging & SQLite
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 |
This release tries to close the gap for allowing Daedalus to start integrating with the wallet backend. It also comes bundled with an SQLite persistence layer to allow saving to disk the wallet state. On the way to testnet
and mainnet
releases, we have also introduced better structured logging in this release, with some degrees of control regarding the verbosity of the software.
We have simplified a bit the software organization and merged together cardano-wallet
and cardano-wallet-launcher
in a single binary cardano-wallet
. The launcher is now available as a launch
command.
⚠️ This release contains a critical issue regarding wallet restoration (see #484).This issue is fixed in v2019-07-02.
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
- ![][new]
--state
option forcardano-wallet address list
- ![][new]
serve
command (replacesserver
⚠️ breaking-change⚠️ ) - ![][new]
launch
command (replacescardano-wallet-launcher
⚠️ breaking-change⚠️ ) - ![][new]
--state-dir
option forcardano-wallet launch
- ![][new]
--database
option forcardano-wallet serve
- ![][new]
--random-port
option forcardano-wallet launch
andcardano-wallet serve
- ![][new]
--quiet
and--verbose
options forcardano-wallet launch
andcardano-wallet serve
-
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
- ![][new] Filter addresses by state (used or unused)
- ![][new] SQLite backend to persist the wallet state to disk!
- ![][new] API request / response logging
- ![][new] Database debug logs
- ![][new] (Partial) application-level logs
-
![][new] Node.js-compatible IPC server with custom protocol
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).
Bug Fixes
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 |
Known Issues
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. |
#484 | Restoration workers aren't restarted with the server |
Installation Instruction
Please note that currently only Unix\Linux platform is supported.
-
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/bin
is on your$PATH
-
Download
cardano-wallet
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
-
Start
cardano-wallet --help
and 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
SQLite implementation for the DB Layer
PR | Description |
---|---|
#259 | Generate DBLayer tests with quickcheck-state-machine |
#337 | Sqlite: add more locking to DBLayer methods |
#341 | Sqlite: Initial benchmark for putTxHistory |
#347 | Sqlite: use repsertMany instead of deleteMany+putMany |
#348 | Sqlite benchmark: Use a file-based DB |
#349 | Some small fixes to DB.StateMachine module. |
#360 | Sqlite: Fix deletion for larger numbers of checkpoints/transactions |
#367 | Make DB QSM tests fail if one or more tags are not covered. |
#370 | Recreate passing tests and file-based and in-memory runQuery |
#377 | cli: Add "local" network to launcher, and --state-dir for the database |
#378 | Clean ups of Sqlite test code |
#379 | Use SQLite in restoration benchmark (instead of MVar implementation) |
#406 | Use SQLite in integration tests scenarios (instead of MVar) |
#413 | Additional tests checking if files exists when using --database and --state-dir options |
Jörmungandr Integration
PR | Description |
---|---|
#310 | Add Jörmungandr Servant Api Type |
#313 | Address Format in Shelley Era (Part 1: abstract over the address encoding) |
#321 | Jormungandr m with getTipId implementation |
#322 | Simplify folder structure, e.g. s/Binary.HttpBridge/HttpBridge.Binary/ |
#323 | Miscellaneous Bech32 library fixes and improvements. |
#325 | Add Cardano.Wallet.Jormungandr.Network.Api |
#327 | Add extra debugging information to Bech32 decoding corruption tests. |
#328 | Add known-to-fail counterexamples to Bech32 string corruption tests. |
#329 | move Cardano.Environment.{HttpBridge,Jormungandr} to Cardano.Wallet.{HttpBridge,Jormungandr}.Environment |
#332 | Fix the Bech32 character mutation test. |
#336 | Address Format in Shelley (Part 2: implementing address encoder and decoders + tests) |
#338 | Fix index limits in Bech32 mutation tests |
#340 | Strengthen the precondition for the Bech32 mixed-case mutation test. |
#362 | Add initial support for serializing signed transaction |
#369 | Implement Jörmungandr getBlock and getDescendants |
#382 | review & fix jormungandr configuration to enable block production in BFT mode |
#383 | Jörmungandr: mkNetworkLayer with networkTip |
#384 | Change wallet currentTip from SlotId to BlockHeader |
#385 | Add labels to binary decoders for improved debugging |
#394 | Handle getBlockHeader special cases for proofs |
#396 | Relocate reusable integration tests components to core |
#400 | Preliminary integration tests between Jormungandr <-> Network Layer (networkTip ) |
#405 | Implement NetworkLayer getNext for Jörmungandr |
#417 | Jörmungandr: Separate concern between keyToAddress and get/putAddress |
#424 | Cr... |
Cardano Wallet Backend - Transaction Support
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
- ![][new] Update wallet metadata
- ![][new] Create and submit transactions from a single wallet
- ![][new] List known (used or unused) addresses of a wallet
-
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
- ![][new] Update wallet metadata & wallet encryption passphrase
- ![][new] Create and submit transactions from a single wallet
- ![][new] List known (used or unused) addresses of a wallet
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 aNETWORK
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 |
Cardano Wallet Backend - Wallet Management
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-launcher |
linux-x86_64 |
A commodity utility to launch a wallet server with a corresponding node backend. |
Key Features
This release contains support for basic wallet management features via web
server (JSON through HTTP) or a command-line interface.
cardano-wallet
-
A command-line interface which exposes the following features (see CLI manual below):
- ![][new] Create and Delete wallet
- ![][new] Get details of a particular wallet
- ![][new] List all known wallets
- ![][new] generate mnemonic sentence (english) of various sizes
-
A web server which exposes the following features (see API Documentation below):
- ![][new] Create and Delete wallet
- ![][new] Get details of a particular wallet
- ![][new] List all known wallets
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.
Known Issues
Ticket | Title |
---|---|
#250 | GET v2/wallets does not list wallets from oldest to newest |
#291 | Shuffle statistical tests sometimes fail... |
Bug Fixes
- N/A
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.
NOTE:
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
Wallet Layer Integration (with cardano-http-bridge)
PR | Description |
---|---|
#88 | Add property tests for the database layer |
#97 | Fix typo in http-bridge tests |
#98 | Increase test coverage for http-bridge integration |
#115 | Technical debt: add unit tests for network and wallet layer |
#132 | Http-bridge with a local cluster in integration tests |
#134 | Move test data archives |
#135 | Get cardano-node-simple available in CI & allow manipulating stream output when launching commands |
#149 | Prevent network layer to "die" when node backend fails |
#153 | Better test coverage for 'Network.listen' |
#179 | Runtime network configuration as ENV var |
#193 | Provide clearer failure reason when wallet is not syncing |
#202 | Redirect launcher, wallet & bridge output to temporary files during integration tests |
#205 | Review high-level interfaces ('IsOurs', 'IsOwned', 'GenChange') to be more granular |
#207 | Parameterize wallet core over the 'TxId' format |
#210 | Parameterize wallet core over the 'Address' format |
#212 | Code re-organization: Extract Http-bridge specifics into a dedicated package |
#226 | Make integration tests failing with a clear message on mainnet and staging |
Restore Historical Data
PR | Description |
---|---|
#137 | Add tracking of known transactions to the wallet model |
#150 | Store transaction history outside of the wallet state |
#156 | Wallet Id deterministic calculation from root public key |
#158 | Extend DB layer & wallet to support wallet metadata |
#172 | Unify 'watchWallet', 'listen', 'processWallet', 'tick' etc.. into one 'restoreWallet' |
#180 | Implement some missing API handlers for the wallets endpoints |
#234 | Fix 'slotRatio' case where the numerator is further than the denominator |
Benchmarking & Nightly Builds
PR | Description |
---|---|
#120 | Remove unused semigroup instance for address pools |
#157 | Add restore benchmarks |
#160 | Add new "special" address discovery scheme (proportional ownership) for testing and benchmarking |
#169 | Fix benchmarks on Buildkite after last refactor |
#187 | Add buildkite nightly build badge (and link) to README |
#190 | Move ENV var export from buildkite script to buildkite pipeline settings |
Coin Selection, transaction creation & submission
PR | Description |
---|---|
[#114](https://github.com/input-output-hk/cardano-wallet... |
Cardano Wallet Backend - Foundations
Overview
This initial release of Cardano Wallet Backend includes two binaries:
- cardano-wallet-server
- cardano-wallet-launcher
The cardano-wallet-server in future will serve API and CLI interfaces for the
wallet backend. In this release it is just a stub.
The cardano-wallet-launcher is responsible for starting (and terminating when
closed) the cardano-wallet-server and cardano-http-bridge which is an interface
that Cardano Wallet Backend uses to interact with the blockchain. The
cardano-http-bridge is therefore a prerequisite that needs to be installed
before running the cardano-wallet-launcher.
Key Features
- N/A
Bug Fixes
- N/A
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-server
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-server 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.
Documentation
Link | Audience |
---|---|
API Documentation | Users of the Cardano Wallet API |
Haddock Documentation | Haskell Developers using the cardano-wallet as a library |
Changelog
Setup new cardano-wallet
repository & CI
PR | Description |
---|---|
#9 | Stylish, hlint |
#10 | Version specification documents (api & formal specs) |
#13 | Add .gitignore |
#15 | Initial stack project and Travis CI |
#17 | Add .editorconfig |
#18 | Rename README to README.md (in specifications/api) |
#19 | Add Coveralls & Stylish Haskell to CI |
#24 | Re-introduce 'Acceptance Criteria' as part of the issue template |
#31 | Review .travis.yaml to allow multiple jobs & haddock export |
#45 | Fix 406 to be correct 410 error code in API specification |
#65 | Add build instructions for the http bridge in CI |
#66 | Update Wallet API specification draft document |
#70 | Add cardano-http-bridge to environment of stack --nix |
#85 | Review deploy pipeline for Travis for executables |
#86 | Add mising target to stack haskell coverage reports |
Receive & Process Blocks (from cardano-http-bridge)
PR | Description |
---|---|
#28 | Add block decoder |
#32 | Pack file decoder |
#35 | Adding ticking functionality for block polling |
#37 | Review folder structure, file documentation and pragmas |
#40 | Add a basic API client for the Rust Cardano HTTP Bridge |
#41 | Add nextBlocks function |
#44 | Review BlockSyncer Tests: Separate IO from pure code |
#48 | tests: Add a couple negative tests for block decoding |
#49 | Apply miscellaneous coding style fixes |
#50 | Tweak Blocks Generator + Moar Tests + Better Coverage |
#54 | Add startBlockSyncer |
#57 | Review style of ChainProducer modules + add license header |
#60 | Review Network Layer |
#66 | Merge BlockSyncer with NetworkLayer |
#71 | Allow BlockSyncer.listen to catch up with the node |
#80 | Integration Tests Http Bridge |
Basic Launcher
PR | Description |
---|---|
#27 | Docopt for CLI parsing |
#38 | Launch http bridge and wallet together |
#75 | launcher: When terminated, ensure child processes are cleaned up |
#77 | Add manual steps describing how to check launcher behavior regarding POSIX signals |
#78 | Make it possible to connect wallet to staging |
#84 | remove temporary dummy wallet server to avoid confusion |
#87 | QA review of #8 |
Support Wallet Creation
PR | Description |
---|---|
#25 | Wallet Primitive Types |
#29 | Add additional wallet primitives and wallet layer primitives |
#34 | Compute TxId |
#42 | Implement txId hash using CBOR encoders |
#43 | Minimal Viable Wallet Layer |
#46 | Address Derivation (Sequential) |
#47 | Port Mnemonic Module |
#51 | Address Discovery (Sequential) |
#58 | Few more unit tests for mnemonics + adjusting wallet API spec |
#59 | Review Slotting as Primitive |
#61 | Add an extra bit of documentation to the 'AddressDerivation' module |
#82 | Add createWallet and getWallet tests |