In-Detail: Contract System on Primary Chain
Last updated
Last updated
In order to create a modular smart contract system that can be extended after deployment, Nova applies a diamond proxy contract (EIP-2535) with functions called facets, which include:
zkLink admin facet that provides the interface for managing gas fee, adding new secondary chains, etc.
zkLink mail box facet that provides the interface for on-chain transactions like deposit and withdraw.
zkLink executor facet that provides the interface to commit, prove and execute batches.
zkLink getters facet that provides the interface to read the state of Nova network.
In the stage of proving a batch's validity, the verifier contract will be called by the executor facet of the diamond proxy contract to validate ZKP.
Governance contract is the owner of the diamond proxy contract, which is able to upgrade facets in the proxy contract.
Validator Timelock controls the operations including committing, proving and executing batches.
L1ERC20Bridge uses the requestL2Transaction interface of Diamond Proxy to send the ERC20 bridge message to Nova network.
Linea2Gateway is in charge of transmitting massage between Linea and Ethereum.