@notice Manages access and roles for the Majora platform. @dev Extends OpenZeppelin's AccessManager to include specific roles and functionalities for the Majora platform.
Roles:
- UPGRADER_ROLE: Role for upgrading contracts.
- SOPT_TAKER_ROLE: Role for interacting with SOPT.
- OPERATOR_ROLE: Role for operators managing the platform.
- OPERATION_GUARDIAN_ROLE: Role for overseeing operations.
- ERC2771_RELAYER_ROLE: Role for relaying calls using ERC2771.
- CROSSCHAIN_RELAYER_ROLE: Role for relaying calls across chains.
- FEE_MANAGER_ROLE: Role for managing fees.
The Majora Address Provider is a Solidity smart contract that extends ERC20 with additional features for payment allowances and execution. It allows users to set an operator proxy, approve allowances for specific infrastructure operations, and execute payments with a configurable payment fee.
The Majora Address Provider includes the following key addresses:
- Treasury: Address of the treasury.
- Fee Collector: Address of the fee collector.
- SOPT: Address of the SOPT.
- Vault Factory: Address of the vault factory.
- Block Registry: Address of the block registry.
- Position Manager Factory: Address of the position manager factory.
- User Interactions: Address of the user interactions.
- Operator Proxy: Address of the operator proxy.
- Operator Data Aggregator: Address of the operator data aggregator.
- Portal: Address of the portal.
- Permit2: Address of the Permit2.
The Majora Address Provider contract also provides functions to set the treasury address and fee collector address.