Launchpool New Smart-Contracts deployed to Arbitrum.
The token is assembled as a constructor using industry leader extensions (OpenZeppelin and GSN) ensuring high code quality and security.
The token uses the upgrades plugin by @openzeppelin. It provides the feature to extend the functionality in the future and deploy new token under the same address and the same storage without any migration. See detailed docs.
The token uses ERC20Burnable extension by @openzeppelin adding the ability to burn tokens. This feature came from the original smart contract before migration.
The token uses ERC20Permit extension by @openzeppelin adding the ability to send tokens via signing gasless (meta) transactions. ERC20Permit is the industry standard used by major tokens (e.g. USDC, DAI). Technically it is used to increase the allowance of an account using the EIP712 offline signature.
The token uses ERC20Votes extension by @openzeppelin adding voting functionality for token holders. This is a more generic version of Compound voting and delegation that was used in the LaunchPool token before migration. Here is the article that describes this feature in detail and provides a complete example on how to execute votings and to build the DAO.
The token uses Ownable extension by @openzeppelin introducing the new actor - token owner or admin. The owner can process admin functions:
- Upgrade the smart contract (see Upgradeable extension);
- Pause/unpause token transfers, minting and burning (see Pausable extension);
- Set the new trusted forwarder from
ERC2771Recipient(see GSN extension).
The token uses ERC20Pausable extension by @openzeppelin adding the pause/unpause functions which forbid token transfers, minting and burning while smart contract is paused. These functions are available only for Owner.
The token uses ERC2771Recipient extension by @opengsn which provides the compatibility with GSN architecture. Generally it abstracts the process of paying for gas away from end users which minimizes UX friction for dapps. With GSN, gasless clients can interact with Ethereum smart contracts without users needing ETH for transaction fees. See detailed docs.