Daedalus - cryptocurrency wallet
Platform-specific build scripts facilitate building Daedalus the way it is built by the IOHK CI:
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.
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.
This batch file requires Node.js and 7zip.
scripts/build-installer-win64.bat
The result will can be found at .\daedalus-*.exe.
$ npm installRun with:
$ npm run devNote: requires a node version >= 8 and an npm version >= 5. This project defaults to 8.x
Build and run Cardano SL
Build with:
$ brew install haskell-stack # OR curl -ssl https://get.haskellstack.org/ | sh
$ stack setup
$ stack install cpphs
$ brew install xz # OR sudo apt-get install xz-utils
$ brew install rocksdb # OR sudo apt-get install librocksdb-dev
$ git clone git@github.com:input-output-hk/cardano-sl.git
$ cd cardano-sl/
$ ./scripts/build/cardano-sl.shRun with:
$ tmux new-session -s cardano
$ ./scripts/launch/demo-with-wallet-api.shStop with:
$ tmux kill-session -t cardanoThere are three different network options you can run Daedalus in: mainnet, testnet and development (default).
To set desired network option use NETWORK environment variable:
$ NETWORK=testnet npm run devYou can run the test suite in two different modes:
One-time run: For running tests once using the application in production mode:
$ npm run testWatch & Rerun on file changes: For development purposes run the tests continuously in watch mode which will re-run tests when source code changes:
$ npm run test-watchYou can find more details regarding tests setup within Running Daedalus acceptance tests README file.
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
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, npm i --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']$ npm run packageTo package apps for all platforms:
$ npm run package-allTo package apps with options:
$ npm run package -- --[option]- --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.