# solidity-bootcamp
**Repository Path**: mirrors_epam/solidity-bootcamp
## Basic Information
- **Project Name**: solidity-bootcamp
- **Description**: The Solidity Bootcamp is an intensive course to become a Solidity & Smart Contract Developer. This is part of EPAM's Learning & Development Program.
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-04-12
- **Last Updated**: 2025-12-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Solidity Bootcamp
## Program
Course/Ethereum Developer Program
### § Session Project Intro _2022-03-29 Tue 14:30_
- Introduction to Blockchain Development
- EVM, bytecode, Solidity overview
- Using Hardhat as development environment
- Compiling and testing sample smart contract
- **TASK** Follow Hardhat tutorial
### § Session Storage/Memory allocation _2022-04-01 Fri 14:30_
- Solidity deep dive
- `storage` vs `memory` allocation
- Aliasing vs copy of complex types, _i.e._, `struct` and `array`
### § Session ERC20 Token (Part 1) _2022-04-05 Tue 14:30_
- Initial ERC20 token implementation
- EIP-20: Token Standard
- `mint`, `balanceOf`, `totalSupply`
- Error handling in contracts & Reverting Transactions
### § Session ERC20 Token (Part 2) _2022-04-08 Fri 14:30_
- Wrap up ERC20 token implementation
- `transfer`
- `transferFrom`, `approve` and `allowance`
- modifiers, owner and minter role
- Ownable
- Display in MetaMask wallet
- Write unit tests with Hardhat, Mocha and Chai
### § Session Remote Networks _2022-04-12 Tue 14:30_
- Deploy and interact with a local and remote public network
- Testnet and mainnet
- Setting a wallet up with Metamask/Fuji
- Use Faucets to fund your account
- Kovan Faucet
- Create a new account, public and private keyes
- Setup an infura/alchemy account
- Deploy to a remote public network
- Interact with a remote public network
- Test against a remote public network
- **Q&A.** [OpenZeppelin impl](https://docs.openzeppelin.com/contracts/4.x/), `virtual` and `override`, `EIP-165` and `supportsInterface`
- **TASK.** Setup Metamask or Avalanche's Fuji Wallet, Infura/Alchemy, deploy, test and interact with a smart contract.
Follow tutorial at .
### § Session Private Keys _2022-04-14 Thu 11:30_
- Hardhat & Ethers
- Private & Public Key generation
- Importing to MetaMask and Avalanche's Wallet
- Eliptic Curve background
- One-way/hash functions
### § Session Web3 App, Localhost network & MetaMask _2022-04-19 Tue 14:30_
- Web App to interact with Smart Contracts
- Using Svelte as front end JS framework
- Using MetaMask to sign and send transactions
- Setting up a project to host both Front-end app and Hardhat contracts
- Deploy locally
- Local development network, _Hardhat_ Network
- Local Hardhat accounts created
### § Session Security Analysis
- Security concerns
- Best practices
- Reentrancy
- Tools: Slither
### § Session Proxy Patterns
- OpenZeppelin Upgradeable contracts
- Contracts Slots
### § Session Gasless Approval
- Permit standard
- Signature structure
- Overview of Eliptic Curve Digital Signature Algoritm (ECDSA)
- Sign transactions
- Using MetaMask to sign transactions
- Validate signed transactions
## Recommended Readings
> **Mastering Ethereum** is a book for developers, offering a guide to the operation and use of the Ethereum, Ethereum Classic, RootStock (RSK) and other compatible EVM-based open blockchains.
by Andreas M. Antonopoulos, also author of _Mastering Bitcoin_ and
Gavin Wood, co-founder of Ethereum and early designer of Solidity.
## Frequently Asked Questions
### How does it prevent double-spend?
consensus forking
## Topics
- What is a blockchain?
- What are transactions and blocks?
- How do P2P systems operate?
- The most prominent consensus mechanisms
- Difference between private, consortium, and public networks
- What does the data structure look like?
- How do Smart Contracts work?
- What is the Ethereum Virtual Machine?
- What is a Hash?
- How do public/private keys work?
- What is a Merkle tree?
- What is the double-spend problem?
- The Ethereum ecosystem and DApps
- What is Mist and how does it work?
- What is Ether, an account, a Faucet?
## Basic Sample Hardhat Project
This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, a sample script that deploys that contract, and an example of a task implementation, which simply lists the available accounts.
Try running some of the following tasks:
```shell
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
node scripts/sample-script.js
npx hardhat help
```