Architecture
From developer and end-user point of view, eUSD is extremely easy to use and understand as it is a standard ERC20 with a few extra properties. For most uses, you can consider eUSD like any other ERC20. eUSD also supports EIP-2612 Permit Extension for EIP-20 Signed Approvals.
The ERC20 contract is implemented through an ERC-1967 proxy following the OpenZeppelin UUPS pattern. The architecture below abstracts the proxy and describes the stablecoin implementation as a whole.
Dependencies
The EVM -compatible implementation of the eUSD smart contract imports the following OpenZeppelin contracts:
- ERC20Upgradeable.sol (github.com ↗)
- IERC20Upgradeable.sol (github.com ↗)
- ERC20BurnableUpgradeable.sol (github.com ↗)
- PausableUpgradeable.sol (github.com ↗)
- AccessControlUpgradeable.sol (github.com ↗)
- ERC20PermitUpgradeable.sol (github.com ↗)
- Initializable.sol (github.com ↗)
- UUPSUpgradeable.sol (github.com ↗)
- SafeERC20Upgradeable.sol (github.com ↗)