Overview
This release upgrades the Jörmungandr integration to work with Jörmungandr@v0.3.3. It also offers a more complete HTTP API with new capabilities like accessing wallets' transaction history. Many changes introduced in the Haskell core library to prepare the support of legacy wallets aren't visible to the end-user but are available for Haskell developers.
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):
- 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
- Estimate transaction fee
- Visualize wallet's UTxO distribution
- Update wallet encryption passphrase
List transaction history
Submit already signed transactions
- Serve wallet against
cardano-http-bridge
- Launch wallet against
cardano-http-bridge
- Serve wallet against
Jörmungandr
- Launch wallet against
Jörmungandr
-
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
List transaction history
Submit already signed transactions
-
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
- ⚠️ Submitting already signed transactions works only on Jörmungandr backend
Bug Fixes
∅
Known Issues
∅
Installation Instructions
Please note that currently only Unix\Linux platform is supported.
with Jörmungandr@v0.3.3
-
Install jormungandr@v0.3.3 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-09-13/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-09-13/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-09-13/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-09-13/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 |
Weekly Reports
- Week 30 - 2019-07-26
- Week 31 - 2019-08-02
- Week 32 - 2019-08-09
- Week 33 - 2019-08-16
- Week 34 - 2019-08-23
- Week 35 - 2019-08-30
- Week 35 - 2019-09-06
Changelog
List Stake Pools
PR | Description |
---|---|
#701 | Correct proof-length of praos/genesis blocks |
Support Rollbacks
PR | Description |
---|---|
#660 | Cardano.Wallet.DB.Model |
#662 | Track block height in Wallet checkpoints,
|
#667 | Improve documentation for function invariant .,
|
#668 | Make applyBlocks return a list of incrementally-updated wallet states.,
|
#669 | Make restoreBlocks safer by requiring non-empty list of blocks.,
|
#670 | ModelSpec: add applyBlocks blockHeight property, |
#672 | SQLite: Prepare schema for rollback, |
#673 | Always call applyBlock, even if block is empty, |
#674 | Create a checkpoint for every block applied within restoreBlocks .,
|
#684 | Only create checkpoints for unstable blocks, |
Signed Transaction Submission
PR | Description |
---|---|
#706 | update API spec fpr external-tx (error codes), |
#681 | More integration tests for external tx, |
#664 | add cli cmd for externally-signed tx, |
#663 | Add descriptions and update statuses on Transaction endpoints in spec, |
#661 | Add in the genesis.yaml (for integration tests) a transaction with 10 outputs, to have it along transactions with one output each, |
#638 | submit external tx endpoint in API |
Primitives for random derivation support
PR | Description |
---|---|
#579 | Move modules to make room for \random\ AD scheme |
#581 | Move properties common to both AD schemes to AddressDerivationSpec, |
#582 | Add key generation for random address scheme, |
#587 | Random address derivation path encoder/decoder, |
#593 | Implement CompareDiscovery for random AD scheme, |
#597 | Address derivation scheme as type parameter to WalletLayer, |
#604 | add dummy address to extended p2p, |
#611 | Housekeeping / Review location for binary-related code for the random scheme, |
#612 | HD random scheme key (de)serialization, |
#614 | relocate CBOR binary codecs to core ,
|
#616 | isOurs for random scheme - after refactoring, |
#620 | isOwned random derivation - after refactoring, |
#622 | Implement instance PersistState RndState, |
#625 | genChange impl for random scheme, |
#654 | Make DBLayer state machine tests polymorphic on AD state, |
#655 | Random AD: Change to hdPassphrase :: XPub -> Passphrase, |
#657 | AddressDiscovery.RandomSpec: Add properties of knownAddresses, |
Finalize 'Transactions' API endpoints
PR | Description |
---|---|
#580 | Use start , end , and order query parameters to specify range in listTransactions .
|
#586 | Raise an error if start > end in listTransactions API/CLI call.,
|
#588 | Let DB.readTxHistory take SortOrder and Range SlotId ,
|
#592 | Remove defaultTxSortOrder, |
#594 | Provide improved generation of arbitrary UTCTime values.,
|
#595 | Finalize filtering in listTransactions by converting Range UTCTime to Range SlotId ,
|
#603 | Specify start and end in transaction list is in ISO 8601 date-and-time format, |
#605 | Document the default sort order for listTransactions in the API specification.,
|
#606 | Document that start must not be later than end in listTransactions .,
|
#607 | fix start lower-bound for transaction filtering, |
#608 | Transaction list tests, |
#613 | Fix range boundary filtering for listTransactions .,
|
#617 | Protect against construction of invalid arbitrary UTCTime values.,
|
#618 | Fix List Range, |
#626 | Add clarity to slot arithmetic functions., |
#629 | Make slotPred safe for all values of SlotId .,
|
#635 | Add basic property tests for Range data type.,
|
#652 | Test that slotStartTime . slotRange is idempotent.,
|
#653 | Provide isSubrangeOf function for values of type Range .,
|
Bugs & Debts - Sprint 31-32
PR | Description |
---|---|
#596 | Replace hard-coded start time with named constant from Compatibility in benchmarks |
Miscellaneous
PR | Description |
---|---|
#510 | Update iohk-monitoring and try again testing bracketObserveIO |
#578 | Attempt to test against jormungandr v0.3.1 in CI, |
#584 | Use shared libraries instead of symbolic links for code sharing., |
#589 | Provisional network layer for integration with new Haskell nodes., |
#590 | Update http-bridge testnet to new genesis, |
#599 | Launcher: use getExecutablePath to restart self, |
#600 | Remove unused dependency on quickcheck-instances .,
|
#601 | disable flaky integration tests temporarily, |
#609 | Test against Jormungandr 0.3.2 in CI, |
#610 | KeyToAddress instances for RndKey, |
#615 | Nix updates, |
#619 | Enable Travis Notifications in Slack, |
#624 | change license to Apache 2.0, |
#632 | Fix account address decoder, |
#633 | Add block0 golden tests from jormungandr-lib, |
#636 | Rename slotStartingAtOrJust{After,Before} to slot{Ceiling,Floor} .,
|
#637 | Safer slot arithmetic., |
#649 | Extract http-bridge integration tests to separate travis job to overcome 50min time limit for a job, |
#656 | Add property for slotRangeFromTimeRange .,
|
#659 | Test against Jormungandr 0.3.3 in CI, |
#665 | Update iohk-nix rev, |
#705 | Bump version to v2019-09-13, |
Recovery Week - Week 37
PR | Description |
---|---|
#671 | Fix a selection of comments within cardano-wallet-core .
|
#676 | Use safe library function tailSafe instead of locally-defined tailOrEmpty .,
|
#677 | hercules-ci: disable tests until they are fixed, |
#678 | Review CI job execution and bors settings, |
#679 | Improve docs, |
#680 | Fix documentation comments in Cardano.Wallet .,
|
#682 | remove provisional prototypical code for new haskell nodes, |
#683 | Allow more iterations for tests of isSubrangeOf with preconditions.,
|
#687 | nix: Add jcli to the shell, |
#688 | Buildkite Stack build, |
#689 | Jormungandr: Prevent integration tests from clobbering each other, |
#690 | Add missing descriptions for CLI commands, |
#691 | display call stack for unsuccessful unsafe calls, |
#692 | review documentation for Primitive.Mnemonic, |
#694 | Increase Bors timeout from 1 hour (3600 secs) to 1 hour 30 mins., |
#695 | rework code coverage step in buildkite, |
#696 | Reuse minimum slot and block definitions., |
#697 | Remove inconsistent insertedAtTime lens.,
|
#699 | Enable buildkite for bors, and remove checks & tests from Travis, |
#700 | Buildkite: Only run integration tests on Bors, |
#702 | Buildkite: Fix nightly stack cache clean step, |
Signatures
Name | Role | Approval |
---|---|---|
Matthias Benkort @KtorZ | Technical Team Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Tatyana Valkevych @tatyanavych | Release Manager | ✔️ |