Passage
Passage is responsible for ETH and ERC-20 tokens entering Signet.
The Passage contract:
- Accepts ETH and ERC20 deposits, emitting
Enter
andEnterToken
events for the Signet Node - Maintains the list of assets allowed to enter the Rollup.
Logic
The Passage
contract facilitates asset transfers between Ethereum and Signet. ETH deposits trigger Enter
events, prompting the Signet Node to mint ETH for the recipient. Similarly, ERC20 deposits trigger EnterToken
events, leading to the minting of corresponding tokens on Signet.
A multisig account, tokenAdmin
, manages the contract’s key functions. The administrator maintains an allowlist that prevents most ERC20 tokens on Ethereum from entering Signet.
Invariants
erc20.totalSupply()
on the Rollup <=erc20.balanceOf(passage)
on the Host chain- ETH total supply on the Rollup <=
address(passage).balance
on the Host chain address(rollupPassage).balance == 0
at the end of each Rollup block
More information
- For further details on
tokenAdmin
, see Permissioned Roles. - For contract source code, see contracts in the passage/ folder.