0xjim / btcmirror

Bitcoin Mirror is a bitcoin light client that runs on ethereum.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bitcoin Mirror

bitcoinmirror.org

                                        #
                                       # #
                                      # # #
                                     # # # #
                                    # # # # #
                                   # # # # # #
                                  # # # # # # #
                                 # # # # # # # #
                                # # # # # # # # #
                               # # # # # # # # # #
                              # # # # # # # # # # #
                                   # # # # # #
                               +        #        +
                                ++++         ++++
                                  ++++++ ++++++
                                    +++++++++
                                      +++++
                                        +

Bitcoin Mirror tracks Bitcoin on Ethereum

This lets you prove a Bitcoin payment. In other words, it's a Bitcoin light client that runs on the EVM.

Quick Start

Compile and test the contract

Install Forge. Then:

cd packages/contracts
forge test -vv

Run the submitter

Point Cloudflare Functions to your fork of the repo using wrangler.

The submitter will run automatically and reliably, on a schedule. See wrangler.toml.

You'll need to configure a few secrets, including ETH_SUBMITTER_PRIVATE_KEY and ETH_RPC_URL. You'll also need a free API key for getblock.io. Set GETBLOCK_API_KEY.

Run the website

cd packages/website
npm ci
npm start

Deploy the contract

Ensure ETHERSCAN_API_KEY is set. Then, run the following to deploy and verify.

cd packages/contracts
forge script -f $RPC_URL --private-key $PK -s 'run(bool)' --broadcast --verify  DeployBtcMirror true

Run with false for a deployment tracking the Bitcoin testnet rather than mainnet.

About

Bitcoin Mirror is a bitcoin light client that runs on ethereum.


Languages

Language:Solidity 68.0%Language:TypeScript 29.5%Language:CSS 1.8%Language:HTML 0.8%