Addition Features

System Contracts

To simplify the zero-knowledge circuits and enable easy extensions, a significant part of AVIVE's logic was moved to "system contracts" - a set of contracts that serve special purposes and have special privileges, such as deploying contracts, ensuring that users only pay once for publishing contract calldata, and more. The code for these contracts will not be publicly available and will be integrated into the blockchain core.

Contract Deployer

This contract is responsible for deploying new smart contracts and ensuring that the bytecode for each deployed contract is known. It also defines the derivation address, and whenever a contract is deployed, it emits the ContractDeployed event. In the future, instructions on how to interact with this contract directly will be added.

Message Sender

This contract is used to send messages from AVIVE to Ethereum, with the L2L1 event being emitted for each sent message.

Nonce Manager

This contract stores account nonces in a centralized location for efficiency, as both the tx nonce and deployment nonce are stored in a single place. This is also for the ease of the operator.

Isolation

Some of the system contracts have the potential to impact the Ethereum account in unexpected ways. To manage interactions with these important system contracts more consciously, most of their non-view methods can only be called with a special systemOnly modifier.

Last updated