Skip to content
Daedalus - cryptocurrency wallet
JavaScript CSS Haskell Nix Gherkin Python Other
Branch: develop
Clone or download
MarcusHurney and nikolaglumac [DDW-930] Add a Note to the UTXO Screen (#1589)
* [DDW-930] Adds pendingTransactions to messages

* [DDW-930] Adds renderPendingTxns method and JSX styles

* [DDW-930] Updates translations with pendingTxns message

* [DDW-930] Styles note correctly, renders pending txns

* [DDW-930] Adds new pendingTxnsCount prop to utxo story

* [DDW-930] Fixes flow errors

* [DDW-930] Uses FormattedHTMLMessage for rendering UTXO note content

* [DDW-930] Updates translations

* [DDW-930] Adds missing period

* [DDW-930] Moves pendingTxnsCount to the Transactions store instead of in container

* [DDW-930] Renames computed value to follow Transactions Store conventions

* [DDW-930] Adds Japanese translation for UTXO note

* [DDW-930] Adjusts style for centering content

* [DDW-930] Updates CHANGELOG

* [DDW-930] Changes margin-top to 20px. Changes BorderBox padding to 30px.

* [DDW-930] Style classes to CamelCase fix
Latest commit 2825cd6 Oct 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.buildkite [DEVOPS] Only build mac installers with queue=daedalus agents (#1568) Sep 17, 2019
.github [DDW-617] update readme and pr template Apr 8, 2019
ci [DEVOPS-1160] add ci/check-hydra.sh to buildkite Dec 19, 2018
dummy-certs [DEVOPS-970] setup example installer signing Feb 19, 2019
flow/mappers [DDW-765]: Change behavior of system dialogs (#1494) Aug 14, 2019
installers daedalus-bridge: override configuration.yaml (#1587) Oct 11, 2019
logs [DDW-442] ignore logs but not the folder Nov 23, 2018
scripts [DDW-821] Reorganize Test Setup (#1540) Oct 14, 2019
source [DDW-930] Add a Note to the UTXO Screen (#1589) Oct 17, 2019
storybook [DDW-930] Add a Note to the UTXO Screen (#1589) Oct 17, 2019
tests [DDW-820] Reorganize Storybook and add missing stories (#1537) Oct 14, 2019
tls [DDW-324] Improved documentation info section Jun 20, 2018
translations [DDW-169] Fix translation manager issues Mar 16, 2018
utils/windows [DEVOPS-970] allow cross-compiling windows installers Feb 19, 2019
.babelrc [DDW-582] Unit tests Apr 3, 2019
.editorconfig add basic webpack electron setup with react Oct 11, 2016
.eslintignore [DDW-821] Reorganize Test Setup (#1540) Oct 14, 2019
.eslintrc [DDW-752] Fix dependency vulnerabilities (#1467) Jul 15, 2019
.flowconfig [DDW-594] let flow checker ignore cached files Mar 25, 2019
.gitignore [DDW-821] Reorganize Test Setup (#1540) Oct 14, 2019
.nonsense [DEVOPS-13] Dhall configs derived (#806) Apr 14, 2018
.prettierignore [DDW-821] Reorganize Test Setup (#1540) Oct 14, 2019
.prettierrc Merge branch 'develop' into fix/ddw-589-refactor-consolidation-status… Mar 14, 2019
.stylelintrc vNext cards (#1504) Jul 31, 2019
BESTPRACTICES.md [DDW-41] Adds Flow subsection to React section Dec 21, 2018
CHANGELOG.md [DDW-930] Add a Note to the UTXO Screen (#1589) Oct 17, 2019
ConfigMutator.hs [DEVOPS-970] allow cross-compiling windows installers Feb 19, 2019
LICENSE [DDW-753] Licensing update (#1469) Jul 16, 2019
LICENSE NOTICE [DDW-753] Licensing update (#1469) Jul 16, 2019
README.md [DEVOPS] OSX Mojave build fix (#1449) Jul 5, 2019
appveyor.yml [DDW-775] Cardano SL 3.0.3 integration (#1477) Jul 30, 2019
bors.toml Merge release/0.14.0 into develop branch (#1534) Aug 13, 2019
cardano-sl-src.json [DDW-893] Implement wallet recovery phrase verification (#1565) Sep 26, 2019
default.nix daedalus-bridge: override configuration.yaml (#1587) Oct 11, 2019
docker-compose.yml Add `docker-compose.yml` with demo cluster configuration Oct 25, 2018
fastlist.nix copy the provided `fastlist.exe` to the right location before buildin… Jan 16, 2019
gulpfile.js [DDW-821] Reorganize Test Setup (#1540) Oct 14, 2019
installer-clusters.cfg [DEVOPS-814] initial testnet installer May 23, 2018
iohk-nix.json [DEVOPS-1160] iohk-nix implementation Dec 19, 2018
lib.nix [DDW-775] Cardano SL 3.0.3 integration (#1477) Jul 30, 2019
nodemon.json [DDW-590] fixes password validation logic Mar 20, 2019
nsis-inner.nix [DEVOPS-970] allow cross-compiling windows installers Feb 19, 2019
nsis.nix [DEVOPS-970] allow cross-compiling windows installers Feb 19, 2019
package.json [DDW-821] Reorganize Test Setup (#1540) Oct 14, 2019
release-build.nix Merge release/0.14.0 into develop branch (#1534) Aug 13, 2019
release.nix [DDW-775] Cardano SL 3.0.3 integration (#1477) Jul 30, 2019
shell.nix [DDW-775] Cardano SL 3.0.3 integration (#1477) Jul 30, 2019
yarn.lock [DDW-901] Newsfeed (#1570) Sep 27, 2019
yarn2nix.nix [DDW-775] Cardano SL 3.0.3 integration (#1477) Jul 30, 2019

README.md

Document maintainer: Nikola Glumac
Document status: Active

Daedalus

Build status Windows build status Release

Daedalus - cryptocurrency wallet

Automated build

CI/dev build scripts

Platform-specific build scripts facilitate building Daedalus the way it is built by the IOHK CI:

Linux/macOS

This script requires Nix, (optionally) configured with the IOHK binary cache.

scripts/build-installer-unix.sh [OPTIONS..]

The result can be found at installers/csl-daedalus/daedalus-*.pkg.

Pure Nix installer build

This will use nix to build a Linux installer. Using the IOHK binary cache will speed things up.

nix build -f ./release.nix mainnet.installer

The result can be found at ./result/daedalus-*.bin.

Development

shell.nix provides a way to load a shell with all the correct versions of all the required dependencies for development.

Connect to staging cluster:

  1. Start the nix-shell with staging environment yarn nix:staging
  2. Within the nix-shell run any command like yarn dev

Connect to Local Demo Cluster:

Build and Run cardano-sl Demo Cluster

  1. Install nix: curl https://nixos.org/nix/install | sh
  2. Employ the signed IOHK binary cache:
    $ sudo mkdir -p /etc/nix
    $ sudo vi /etc/nix/nix.conf       # ..or any other editor, if you prefer
    and then add the following lines:
    sandbox = true
    extra-sandbox-paths = /System/Library/Frameworks
    substituters = https://hydra.iohk.io https://cache.nixos.org/
    trusted-substituters =
    trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
    max-jobs = 2  # run at most two builds at once
    cores = 0     # the builder will use all available CPU cores
    
  3. Build and run demo cluster: scripts/launch/demo-nix.sh

Start Daedalus Using Demo Cluster

  1. Start local cardano-sl demo cluster (./scripts/launch/demo-nix.sh)
  2. Inspect the terminal output of cardano-sl and copy the timestamp from the message system start: 1537184804
  3. Start the nix-shell with development environment yarn nix:dev 1537184804 (timestamp is different each time you restart the cardano-sl demo cluster)
  4. Within the nix-shell run any command like yarn dev

"Frontend only" mode

The frontendOnlyMode makes it possible to connect to manually started instances of cardano-node for advanced debugging purposes.

How to connect:

  1. Within the cardano-sl repository, build a script for a certain network. E.g. for testnet: nix-build -A connectScripts.testnet.wallet -o launch_testnet
  2. Launch this cluster + node with ./launch_testnet
  3. You should now have a state-wallet-testnet folder inside the cardano-sl repo. Copy the full path to the sub folder tls in there.
  4. Within the Daedalus repo checkout this branch and run: CARDANO_TLS_PATH=/path/to/tls CARDANO_HOST=localhost CARDANO_PORT=8090 nix-shell

Now you should have a pre-configured nix-shell session where you can yarn dev as usual and Daedalus connects itself to the manually started cardano node.

Parameters:

Param Mandatory Default
CARDANO_TLS_PATH Yes
CARDANO_HOST No localhost
CARDANO_PORT No 8090

So if you just start the default cardano node (which runs on localhost:8090) you can also start nix-shell with CARDANO_TLS_PATH=/path/to/tls nix-shell

Notes:

shell.nix also provides a script for updating yarn.lock. Run nix-shell -A fixYarnLock to update yarn.lock file.

Configuring the Network

There are three different network options you can run Daedalus in: mainnet, testnet and development (default). To set desired network option use NETWORK environment variable:

$ export NETWORK=testnet
$ yarn dev

Cardano Wallet API documentation

While running Daedalus in development mode you can access Cardano Wallet API documentation on the following URL: https://localhost:8091/docs/v1/index/.

Testing

You can find more details regarding tests setup within Running Daedalus acceptance tests README file.

Notes: Be aware that only a single Daedalus instance can run per state directory. So you have to exit any development instances before running tests!

Wallet fault injection

General information about wallet fault injection can be found in the Cardano's wallet-new README file.

shell.nix has support for passing the necessary flags:

  • --arg allowFaultInjection true is necessary to enable any processing of faults, and
  • --arg walletExtraArgs '[ "--somefault" ]' can be used for enabling certain fault types at startup.

Windows

This batch file requires Node.js and 7zip.

scripts/build-installer-win64.bat

The result will can be found at .\daedalus-*.exe.

CSS Modules

This boilerplate out of the box is configured to use css-modules.

All .css file extensions will use css-modules unless it has .global.css.

If you need global styles, stylesheets with .global.css will not go through the css-modules loader. e.g. app.global.css

Externals

If you use any 3rd party libraries which can't or won't be built with webpack, you must list them in your webpack.config.base.js

externals: [
  // put your node 3rd party libraries which can't be built with webpack here (mysql, mongodb, and so on..)
]

For a common example, to install Bootstrap, yarn install --save bootstrap and link them in the head of app.html

<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.css" />
<link rel="image/svg+xml" href="../node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.eot" />
...

Make sure to list bootstrap in externals in webpack.config.base.js or the app won't include them in the package:

externals: ['bootstrap']

Packaging

$ yarn run package

To package apps for all platforms:

$ yarn run package:all

To package apps with options:

$ yarn run package -- --[option]

Options

  • --name, -n: Application name (default: ElectronReact)
  • --version, -v: Electron version (default: latest version)
  • --asar, -a: asar support (default: false)
  • --icon, -i: Application icon
  • --all: pack for all platforms

Use electron-packager to pack your app with --all options for darwin (osx), linux and win32 (windows) platform. After build, you will find them in release folder. Otherwise, you will only find one for your os.

You can’t perform that action at this time.