Welcome to the Solidity Smart Contracts repository! 🎉 This is a collection of smart contracts I've written and deployed as part of my journey into blockchain development. Here, you’ll find various projects showcasing my skills and experiments with Solidity, ranging from beginner-level implementations to advanced concepts.
- Description: A contract that integrates a whitelist mechanism and allows conditional NFT minting for whitelisted and non-whitelisted users.
- Features:
- Whitelist implementation via
Countercontract. - Minting NFTs with distinct conditions for users.
- Integrated with
Ownablecontract for secure ownership management.
- Whitelist implementation via
- Tools: Solidity, Foundry, OpenZeppelin.
- Description: A decentralized exchange (DEX) project.
- Features:
- Token swaps.
- Constructor-based integration with previously deployed token contracts.
- Challenges Solved: Import resolution for OpenZeppelin contracts.
- BasicToken.sol: A minimal ERC-20 token implementation.
- VotingSystem.sol: A decentralized voting mechanism.
- EscrowContract.sol: A simple escrow service for secure transactions.
Follow these steps to explore or contribute to the repository:
-
Clone the Repository
git clone https://github.com/Husteem/Solidity.git cd Solidity -
Install Dependencies Make sure you have Node.js and Foundry installed.
-
Compile Contracts
forge build
-
Run Tests
forge test
Solidity/
├── contracts/ # Solidity contract files
├── scripts/ # Deployment and interaction scripts
├── test/ # Test cases for smart contracts
├── artifacts/ # Compiled contract artifacts
└── README.md # Project documentation
To work with the contracts, ensure you have:
- Solidity compiler (0.8.0 or later)
- Node.js and npm
- Foundry or Hardhat for development
Security is a priority in smart contract development. The following measures have been implemented:
- Thorough testing with edge cases.
- Use of OpenZeppelin libraries for secure implementation.
- Proper access control via
Ownableand other patterns.
Contributions are welcome! If you have ideas to improve the repository or spot any issues:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add feature'. - Push to your branch:
git push origin feature-name. - Open a pull request.
This project is licensed under the MIT License.
Thank you for exploring this repository! 😊 If you find it useful, don't forget to star ⭐ the project!
