June 15, 2024
Project Background
Website Details
- Aavegotchi is a blockchain-based game featuring digital ghosts called Aavegotchis, which are NFTs on the Polygon blockchain.
- Players can customize, trade, and interact with their Aavegotchis through various in-game activities. The platform includes features like staking, yield farming, and mini-games, offering opportunities to earn tokens and rewards.
- Governed by a decentralized autonomous organization (DAO), Aavegotchi promotes community involvement in decision-making.
- It aims to enhance the gaming experience with multi-platform support and dynamic NFT ownership.
Website: aavegotchi.com
Code Details
This Solidity code defines an ERC20 token that is mintable and burnable via a bridge contract, specifically designed to work with the Optimism Layer 2 solution. Here’s an overview of the key components and functionalities:
Core Contract:
- Semver: Handles semantic versioning with `MAJOR_VERSION`, `MINOR_VERSION`, and `PATCH_VERSION`.
- ERC20:
-
- Implements the standard ERC20 functionality with additional internal functions to handle minting, burning, allowances, and token transfers.
- Functions include `name`, `symbol`, `decimals`, `totalSupply`, `balanceOf`, `transfer`, `allowance`, `approve`, `transferFrom`, `increaseAllowance`, `decreaseAllowance`, `_transfer`, `_mint`, `_burn`, `_approve`, `_spendAllowance`, `_beforeTokenTransfer`, and `_afterTokenTransfer`.
- OptimismMintableERC20:
-
- Extends `ERC20` and `Semver` to create a mintable and burnable token for use with the Optimism bridge.
- The constructor takes parameters for the bridge address, remote token address, token name, and symbol.
- The `mint` and `burn` functions can only be called by the bridge contract.
- Implements `supportsInterface` for interface detection.
This structure ensures that the token adheres to the ERC20 standard while adding the necessary functionalities for integration with the Optimism Layer 2 solution, specifically for minting and burning tokens via a designated bridge contract.