https://github.com/solygambas/ethereum-solidity
4 blockchain applications using Ethereum, Solidity, React and Next.js.
https://github.com/solygambas/ethereum-solidity
blockchain chai ethereum ethereum-contract ethers ethersjs hardhat infura ipfs javascript maticnetwork nextjs openzeppelin polygon react reactjs semantic-ui smart-contracts solidity tailwind
Last synced: 22 days ago
JSON representation
4 blockchain applications using Ethereum, Solidity, React and Next.js.
- Host: GitHub
- URL: https://github.com/solygambas/ethereum-solidity
- Owner: solygambas
- Created: 2021-11-16T17:22:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-01T04:47:50.000Z (almost 3 years ago)
- Last Synced: 2025-02-13T23:34:57.684Z (2 months ago)
- Topics: blockchain, chai, ethereum, ethereum-contract, ethers, ethersjs, hardhat, infura, ipfs, javascript, maticnetwork, nextjs, openzeppelin, polygon, react, reactjs, semantic-ui, smart-contracts, solidity, tailwind
- Language: JavaScript
- Homepage: https://crowdcoin-ethereum.vercel.app/
- Size: 2.64 MB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ethereum & Solidity Projects
4 blockchain applications using Ethereum, Solidity, React and Next.js.
| # | Project | Description |
| --- | ---------------------------------- | ----------------------------------------------------------------------------------- |
| 01 | [**Inbox**](#inbox) | A small project to understand how to test and deploy smart contracts with Solidity. |
| 02 | [**Lottery**](#lottery) | An Ethereum lottery to build and test a more advanced smart contract. |
| 03 | [**Lottery React**](#lotteryreact) | A React front-end created around the lottery contract. |
| 04 | [**Kickstart**](#kickstart) | A crowdfunding app using Next.js. |A small project to understand how to test and deploy smart contracts with Solidity.
[See 01-inbox folder](01-inbox)
### Features
- setting up a project in VS Code with [Solidity syntax highlighting](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity).
- creating a compile script for Solidity with solc.
- testing the contract with Mocha.
- fetching fake accounts from Ganache CLI.
- deploying locally with web3.
- deploying to Rinkeby network with hdwallet-provider and Infura API.
- observing deployment on Etherscan and testing the new contract in Remix.An Ethereum lottery to build and test a more advanced smart contract.
[See 02-lottery folder](02-lottery)
### Features
- understanding basic and reference types in Solidity: arrays, mappings and structs.
- entering the lottery and validating payment with a require statement.
- generating a pseudo random number and selecting a winner.
- sending money to the winner and resetting the lottery.
- restricting access with a function modifier.
- debugging with Remix.
- writing tests with Mocha and using try-catch assertions.
- deploying to Rinkeby network with hdwallet-provider and Infura API.A React front-end created around the lottery contract.
[See Demo deployed on Vercel](https://ethereum-lottery.vercel.app/)
([MetaMask Plugin](https://metamask.io/) is required)[See 03-lottery-react folder](03-lottery-react)
### Features
- setting up a React project.
- creating a web3 instance and a local contract instance.
- detecting the MetaMask Ethereum provider with @metamask/detect-provider.
- enforcing the connection to the Rinkeby test network.
- rendering contract data.
- entering the lottery, checking user input and sending a transaction.
- adding user-friendly notifications.
- picking a winner.A crowdfunding app using Next.js.
[See Demo deployed on Vercel](https://crowdcoin-ethereum.vercel.app/)
([MetaMask Plugin](https://metamask.io/) is required)[See 04-kickstart folder](04-kickstart)
### Features
- using struct for request and creating struct instances.
- understanding the difference between storage and memory.
- using mappings rather than arrays for performance reasons.
- deploying a campaign factory to keep track of deployed campaigns.
- testing the factory with Remix.
- compiling the contracts with solc and fs-extra.
- testing the contracts with Mocha, Ganache CLI and web3.
- deploying to Rinkeby network with hdwallet-provider and Infura API.
- creating a test campaign with Remix and Metamask.
- handling server and client Web3 instances.
- fetching deployed campaigns with getInitialProps.
- building an interface with Semantic UI React.
- handling forms to create a new campaign and to contribute.
- navigating between pages with Link and useRouter.
- displaying campaign details with Next dynamic routes.
- listing out all the requests and adding a new one.
- approving and finalizing requests.Based on [Ethereum and Solidity: The Complete Developer's Guide](https://www.udemy.com/course/ethereum-and-solidity-the-complete-developers-guide/) by Stephen Grider (2021).