1.0.2 • Published 3 months ago

@keep-network/tbtc-v2-arbitrum v1.0.2

Weekly downloads
-
License
GPL-3.0-only
Repository
-
Last release
3 months ago

:toc: macro

= Threshold cross-chain - Arbitrum

This package brings Bitcoin to Ethereum L2 Arbitrum. For more details please see link:https://github.com/keep-network/tbtc-v2/blob/main/docs/rfc/rfc-8.adoc[RFC 8: Cross-chain Tokenized Threshold BTC]

== How it works?

+----------------------------+         +---------------------------------------------------------------------------+
|          Ethereum          |         |                                Arbitrum                                   |
|                            |         |                                                                           |
|  +----------------------+  |         |  +----------------------+  +-------------------------+  +--------------+  |
|  | Wormhole TokenBridge |--|---------|--| Wormhole TokenBridge |--| ArbitrumWormholeGateway |--| ArbitrumTBTC |  |
|  +----------------------+  |         |  +----------------------+  +-------------------------+  +--------------+  |
|                            |         |                                                                           |
+----------------------------+         +---------------------------------------------------------------------------+
  • ArbitrumTBTC canonical tBTC token on Arbitrum with a minting authority delegated to ArbitrumWormholeGateway.
  • ArbitrumWormholeGateway is a smart contract wrapping and unwrapping Wormhole-specific tBTC representation into the canonical ArbitrumTBTC token.

=== Deploy contracts

To deploy all contracts on the given network, please run:

yarn deploy --network <network>

Supported networks:

  • hardhat - for local development
  • arbitrumGoerli - L2 testing network
  • arbitrumOne - L2 mainnet

Currently, this module does not deploy any contracts on L1. All the existing Wormhole contract addresses that are used in this module are stored under external/<network> dir.

If contracts haven't been built yet or changes occurred, deploy task will build the contracts before running the deployment script. This command produces an export.json file containing contract deployment info. Note that for the chains other than hardhat the following environment variables are needed:

  • L2_CHAIN_API_URL - URL to access blockchain services, e.g. https://arb-goerli.g.alchemy.com/v2/<alchemy_api_key>
  • L2_ACCOUNTS_PRIVATE_KEYS - Private keys for the deployer and council <0xOwnerPrivKey,0xCouncilPrivKey>
  • ARBISCAN_API_KEY - Arbiscan API key