Skip to content

ronin-chain/bridge-contract

Repository files navigation

ronin-bridge-contracts

The collections of smart contracts that power the Ronin Bridge.

Development

Requirement

Build & Test

  • Install packages
$ forge install
  • Build contracts
$ forge build
  • Run test
$ forge test

Deploy

$ forge script <path/to/file.s.sol> -f --private-key <your_private_key>

Target chain to deploy

This repo contains source code of contracts that will be either deployed on the mainchains, or on Ronin chain.

  • On mainchains:
    • Governance contract: MainchainGovernanceAdmin
    • Bridge contract: MainchainGatewayV3
  • On Ronin chain:
    • Governance contract: RoninGovernanceAdmin
    • Bridge operation: RoninGatewayV3

Upgradeability & Governance mechanism

Except for the governance contracts and vault forwarder contracts, all other contracts are deployed following the proxy pattern for upgradeability. The TransparentUpgradeableProxyV2, an extended version of OpenZeppelin's, is used for deploying the proxies.

To comply with the governance process, in which requires all modifications to a contract must be approved by a set of governors, the admin role of all proxies must be granted for the governance contract address.

Documentation

See docs/README.md for the documentation of the contracts.

See docs/HACK.md for the structure of the repo.

For the whitepaper, please refer to Ronin Whitepaper.