Skip to content

0xYujan/Solidity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solidity Learning Repository

Welcome to the Solidity Learning Repository! This repository is a comprehensive collection of tutorials, examples, and explanations to help you master Solidity, the programming language for writing smart contracts on the Ethereum blockchain. Whether you're a beginner or an experienced developer, you'll find resources covering fundamental concepts to advanced topics.

Pull Requests Badge GitHub contributors License Badge

GitHub repo forks  GitHub repo stars  GitHub org sponsors  GitHub repo watchers  GitHub repo size GitHub repo Issues  GitHub repo Good Issues for newbies  GitHub repo PRs  GitHub repo Merged PRs  Awesome 

Table of Contents

About

This repository serves as a one-stop resource for learning Solidity. Each topic is organized into its own directory, containing:

  • A detailed README.md with explanations and code snippets.
  • Example Solidity files (.sol) demonstrating the concepts.
  • Practical projects to apply your knowledge.

The content is structured to build your understanding progressively, from basics to complex smart contract development.

Prerequisites

Before diving in, ensure you have:

  • Basic knowledge of programming concepts.
  • Familiarity with Ethereum and blockchain fundamentals.
  • A development environment set up with:
    • Node.js and npm
    • Truffle or Hardhat for testing
    • A code editor like VS Code
    • MetaMask or another Ethereum wallet for testing

Topics Covered

Here's a comprehensive list of topics included in this repository:

Basic Concepts

  • ABI: Application Binary Interface - Encoding and decoding functions.
  • Bitwise Operators: Bit manipulation operations in Solidity.
  • Constructor: Contract initialization and parameter passing.
  • Data Locations: Understanding storage, memory, and calldata.
  • Enums: Enumerated types for better code organization.
  • Events: Logging events on the blockchain.
  • Fallback: Handling unknown function calls.
  • Function Modifier: Modifying function behavior with modifiers.
  • Functions: Overview of functions, including View and Pure.
  • If_Else: Conditional statements.
  • Import: Importing other contracts and libraries.
  • Inheritance: Contract inheritance mechanisms.
  • Keccak256: Hashing functions.
  • Library: Creating and using libraries.
  • Loops: Iteration structures like for and while loops.
  • Mapping: Key-value data structures.
  • Payable: Handling Ether payments.
  • Primitive Data Type: Basic data types in Solidity.
  • Sending Ether: Transferring Ether between contracts.
  • Struct: Custom data structures.
  • Variables: State, local, global, constant, and immutable variables.
  • Visibility: Public, private, internal, and external access modifiers.

Advanced Topics

Practical Projects

  • Program: Practical programs like LeapYear calculator.
  • Project: Full-fledged smart contract projects including:
    • CrowdFunding: Decentralized crowdfunding platform.
    • EventContract: Event management system.
    • Lottery: Random lottery system.
    • SmartWallet: Secure wallet with guardians.
    • VendingMachine: Automated vending machine simulation.

Getting Started

  1. Clone the Repository:

    git clone https://github.com/0xYujan/Solidity.git
    cd Solidity
  2. Navigate to a Topic: Choose a topic from the list above and explore the corresponding folder.

  3. Read the README: Each folder contains a README.md with detailed explanations.

  4. Run the Examples:

    • Use Remix IDE for online testing.
    • Or set up a local environment with Truffle/Hardhat.
  5. Experiment: Modify the example code and test your changes.

Contributing

Contributions are welcome! If you'd like to add new topics, improve existing content, or fix issues:

  1. Fork the repository.
  2. Create a new branch for your changes.
  3. Make your modifications.
  4. Submit a pull request with a clear description of your changes.

Please ensure your code follows Solidity best practices and includes appropriate documentation.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Happy coding with Solidity! 🚀

If you find this repository helpful, please give it a star ⭐ and share it with others learning Solidity.

About

Here you can find everything related to solidity 🔥

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published