Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mehdikhosa50/erc20-token-smart-contract
https://github.com/mehdikhosa50/erc20-token-smart-contract
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/mehdikhosa50/erc20-token-smart-contract
- Owner: MehdiKhosa50
- Created: 2024-12-16T06:35:28.000Z (24 days ago)
- Default Branch: main
- Last Pushed: 2024-12-16T06:45:38.000Z (24 days ago)
- Last Synced: 2024-12-16T07:38:15.952Z (24 days ago)
- Language: Solidity
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MyToken (MTK) Smart Contract
A sophisticated ERC20 token implementation with enhanced functionality including pausability, burning mechanism, permit features, and upgradeability.
## Features
- π Upgradeable using UUPS pattern
- βΈοΈ Pausable transfers
- π₯ Token burning capability
- βοΈ ERC20 Permit functionality
- π Owner-controlled minting
- π OpenZeppelin secure implementation## Technical Details
- Built with Solidity ^0.8.20
- Implements multiple OpenZeppelin upgradeable contracts
- Uses initializer pattern for proxy deployment## Contract Functions
### Administrative Functions
- `initialize(address initialOwner)`: Sets up the token with initial parameters
- `pause()`: Pauses all token transfers (owner only)
- `unpause()`: Resumes token transfers (owner only)
- `mint(address to, uint256 amount)`: Creates new tokens (owner only)### Token Information
- Name: "MyToken"
- Symbol: "MTK"
- Decimals: 18 (default)## Dependencies
This contract relies on the following OpenZeppelin contracts:
- ERC20Upgradeable
- ERC20BurnableUpgradeable
- ERC20PausableUpgradeable
- OwnableUpgradeable
- ERC20PermitUpgradeable
- Initializable
- UUPSUpgradeable## Installation
```bash
npm install @openzeppelin/contracts-upgradeableDeployment
Deploy the implementation contract
Deploy the proxy contract pointing to the implementation
Initialize the proxy with the desired owner address
Security
Contract inherits from well-audited OpenZeppelin contracts
Includes access control mechanisms
Upgradeable architecture allows for future improvements
Constructor is disabled to prevent implementation contract initialization
License
This project is licensed under the MIT License - see the LICENSE file for detailsContributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.Audit Status
β οΈ This contract has not been audited. Use at your own risk.