bitmask-core v0.7.0-rc.18
BitMask Core
Core functionality for the BitMask wallet - https://bitmask.app
BitMask is a Bitcoin-only web wallet and browser extension for accessing decentralized web applications on the Bitcoin timechain. It is designed to support UTXO-based smart contracting protocols such as RGB, in addition to Lightning payments.
Uses
- bdk - Bitcoin Dev Kit
- rgb-wallet - RGB Wallet
- wasm-pack - WebAssembly
- lndhubx - Custodial Lightning
- nostr-sdk - Nostr SDK
- carbonado - Carbonado e2ee decentralized storage
Build
This should work with either wasm-pack, trunk, or x86-64.
Some environment variables may be needed in order to compile on macos-aarch64, for more, see this.
If there are issues compiling, be sure to check you're compiling with the latest Rust version.
To build this as a NodeJS module, use: wasm-pack build --release --target bundler
Test
- Lint against wasm32:
cargo clippy --target wasm32-unknown-unknown
- Run tests in browser:
TEST_WALLET_SEED="replace with a 12 word mnemonic for a wallet containing testnet sats" wasm-pack test --headless --chrome
Run
To run the bitmaskd node with REST server, either for testing the web wallet, or simply for increased privacy:
cargo install --features=server --path .
Then run bitmaskd
.
Development
Parts of this application are built with conditional compilation statements for wasm32 support. This is a helpful command for checking linting and correctness while also developing on desktop platforms:
cargo clippy --target wasm32-unknown-unknown --no-default-features --release
Release
Upon a new release, follow these steps:
- Run
cargo update
to update to latest deps. - Run
cargo +nightly udeps
to see if there are any unused dependencies.
Docker
For running bitmask-core tests in Regtest Mode, please follow the steps below:
Initial Setup
- Load the command line:
source .commands
or if using fish shell,bass source .commands
- Build bitcoin node + electrum:
docker-compose build
. - Up and running Docker containers:
docker-compose up -d bitcoin1 electrs carbonado rgb-proxy
. - Download and install BDK cli:
cargo install bdk-cli
(We will use BDK to generate the mnemonic). - Generate a new mnemonic:
bdk-cli key generate
. - Create an environment variable called TEST_WALLET_SEED with mnemonic generated in the step 5 (only wasm32).
- Run the test to get regtest address for bitcoin and rgb:
cargo test --test wallet -- create_wallet --exact --nocapture
. - Load your wallet in the bitcoin node:
bc1 loadwallet default
, or if using a new wallet,bc1 createwallet default
. - Generate new first 500 blocks:
bc1 -generate 500
. - Send some coins to the main wallet address:
bc1 sendtoaddress {MAIN_VAULT_ADDRESS} 10
. Change{MAIN_VAULT_ADDRESS}
with the address generated in the step 7. - Mine a new block:
bc1 -generate 1
Running the tests
Running the tests: cargo test -- --test-threads 1
Troubleshooting
1. After restarting the container
A.The bitcoin node does not work?
Check if your wallet is loaded. For that, run the command bitcoin1 loadwallet default
.
B.The electrs node does not work?
To stop the electrs freeze, run bitcoin1 -generate
.
3 days ago
7 days ago
11 days ago
11 days ago
20 days ago
24 days ago
29 days ago
1 month ago
1 month ago
1 month ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
5 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
9 months ago
7 months ago
9 months ago
11 months ago
6 months ago
9 months ago
11 months ago
6 months ago
9 months ago
10 months ago
10 months ago
10 months ago
9 months ago
10 months ago
10 months ago
6 months ago
6 months ago
6 months ago
9 months ago
6 months ago
9 months ago
9 months ago
6 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
7 months ago
9 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago