Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"wake.compiler.solc.remappings": []
}
21 changes: 21 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ members = [
"cmd/prover",
"cmd/sequencer",
"crates/batch-producer",
"crates/bridge-types",
"crates/batch-submitter",
"crates/block-producer",
"crates/btc-watcher",
Expand Down
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,45 @@ cargo test --workspace
bash test_data/tests-e2e.sh
```

---

## Bitcoin Bridge

Mojave includes a trustless Bitcoin bridge that enables secure BTC deposits and withdrawals between Bitcoin and the Mojave L2.

### Features

- **Trustless BTC Deposits** - Uses OP_RETURN commitments and SPV proofs
- **Multi-Signature Withdrawals** - Threshold signatures for secure withdrawals
- **UTXO Tracking** - Efficient indexer for fund management
- **Bitcoin SPV Verification** - Light client implementation (BtcRelay)

### Quick Start

```bash
# Build bridge contracts
./scripts/bridge/build.sh

# Run unit tests
./scripts/bridge/test.sh

# Run E2E tests (requires Bitcoin Core)
./scripts/bridge/test-e2e.sh

# Start UTXO indexer
./scripts/bridge/indexer.sh install
./scripts/bridge/indexer.sh start
```

### Components

- **Smart Contracts** - `contracts/bridge/` - Solidity contracts for bridge logic
- **UTXO Indexer** - `contracts/bridge/tools/indexer/` - TypeScript service with REST API
- **Bridge Types** - `crates/bridge-types/` - Shared Rust types for future integration
- **Scripts** - `scripts/bridge/` - Convenient wrapper scripts

---

## License

Mojave is licensed under the MIT License. See [LICENSE](LICENSE) for details.
Expand Down
1 change: 1 addition & 0 deletions contracts/bridge/.env.e2e
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
OWNERS_ADDRESS=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
228 changes: 228 additions & 0 deletions contracts/bridge/.env.headers

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions contracts/bridge/.env.merkle
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
BITCOIN_DEPOSIT_TXID=0xf0135f63908c95b486a07635378ebf510e1203858e63e91c73d9b481d09c3a8d
BITCOIN_BLOCK_HASH=0x034672d79dfbbe0f1a84baf34dcadd4e3fd7cb495c15210d598099ead771c6dd
BITCOIN_RAW_TX=0x02000000000101c9d62dfe6220a6a87ef3ef2d6eca32484288c0eb7d610cc5f02ae97510d2b9220000000000fdffffff0350c3000000000000160014141abdb4a18151671d9049f52de165629669a053a007052a0100000016001440a5ab969ba84a8ad00748d40dec388f4a63875400000000000000006f6a4c6cf14d00010000000000000000000000000000000000000000000000000000000000007a69b4f26c53a81f1497467fe4090fe416990c351816f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000000000000000000000000000000000000000c3500247304402206d8a3f92e9a379110f2afd8d4c84a360e20f105449d1a9b8bc91519dfbcbeb6002207f578d2fd119450e10d7804bdc04aec88d3ecf2d4320872f68b9eeb0927e0ad0012103a12cfbcb72a5cfee09a63a8eb2d6c58619d90c8b49d6909b27e88c2d73d292db00000000
BITCOIN_BLOCK_HEADER=0x0000002032de0c44a225af268d1847632dea7ecb3f1dcbfa047d4f1c578eb1ba2587f661d7770252ab1a8c4a560a33643f02fcf4ef6cf23ecd875b6f4c98d60afd697ade82b23a69ffff7f2000000000
BITCOIN_MERKLE_INDEX=1
BITCOIN_MERKLE_PROOF=0x7d002bd3b052d9d247576bab7224f5cc0ea549b1147e64af480ea79b26e54872
26 changes: 26 additions & 0 deletions contracts/bridge/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Foundry
out/
cache/
broadcast/
lib/
*.gas-snapshot

# Node modules (for tools)
node_modules/

# Environment
.env
.env.local

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Logs
*.log
Loading