A browser extension wallet for Cardano, Bitcoin and Midnight.
Note:
lace-platform, the code repository for Lace v2 and Lace Midnight Preview, is linked as a git submodule, namedv2, to support the integration of Midnight in v1.
Prerequisite: nvm or fnm node version manager is required.
make setup # Installs dependencies and sets up the projectyarn build:dev # Development build with LMP (Chrome)
yarn build:prod # Production build with LMP (Chrome)
yarn build:dev:v2 # Development build with Lace Extension (V2) (Chrome)
yarn build:prod:v2 # Production build with Lace Extension (V2) (Chrome)Firefox does not current support the bundles
For faster rebuilds when only the extension app code changed (skips v1 packages and v2):
make build-dev-ext # Fast development rebuild (Chrome)
make build-ext # Fast production rebuild (Chrome)The full build command creates three builds:
- The build in the root
/distis the bundle that combines v1 and LMP - The build in
v1/apps/browser-extension-wallet/distfolder only contains Lace v1 without the LMP - The build in
v2/apps/midnight-extension/distfolder only contains LMP
When working on the v2 submodule in a separate IDE/directory, you can symlink it to avoid working inside the nested submodule:
make link-v2 REPO_PATH=~/my-work-dir/lace-platformThis backs up v2 to v2.bak, creates a symlink to your standalone repo, and configures git to ignore the symlink.
To restore the original submodule:
make unlink-v2Workflow:
- Clone lace-platform to a separate directory
- Run
make link-v2 REPO_PATH=~/path/to/lace-platform - Open lace-platform in IDE 1, lace in IDE 2
- Changes in IDE 1 are instantly visible in IDE 2
- Build/test in lace as normal
- When done, push changes from lace-platform first
- Run
make unlink-v2to restore and update the submodule reference
To update the v2 submodule to the latest commit on main branch, run:
git submodule update --remote v2For technical details about the project structure and bundling approach, see ARCHITECTURE.md.