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.
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
cargo clippy --target wasm32-unknown-unknown
TEST_WALLET_SEED="replace with a 12 word mnemonic for a wallet containing testnet sats" wasm-pack test --headless --chrome
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
.
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
Upon a new release, follow these steps:
cargo update
to update to latest deps.cargo +nightly udeps
to see if there are any unused dependencies.For running bitmask-core tests in Regtest Mode, please follow the steps below:
docker-compose build
.docker-compose up -d node1 bitmaskd
.source .commands
cargo install bdk-cli
. We will use BDK to generate the mnemonic.bdk-cli generate
.cargo test --test wallet -- create_wallet --exact
.node1 loadwallet default
.node1 -generate 500
.node1 sendtoaddress {MAIN_VAULT_ADDRESS} 10
. Change {MAIN_VAULT_ADDRESS}
with the address generated in the step 7.node1 sendtoaddress {RGB_VAULT_ADDRESS} 10
. Change {RGB_VAULT_ADDRESS}
with the address generated in the step 7.node1 -generate 1
cargo test --test wallet -- get_wallet_balance --exact
.Running the tests: cargo test --test-threads 1
A.The bitcoin node does not work?
Check if your wallet is loaded. For that, run the command node1 loadwallet default
.
B.The electrs node does not work?
To stop the electrs freeze, run node1 -generate
.