2024-08-03 04:02:43 +08:00
2024-08-03 00:08:10 +08:00
2024-08-02 15:29:09 +08:00
2024-08-03 00:08:10 +08:00
2024-08-03 00:08:10 +08:00
2024-08-03 02:53:33 +08:00
2024-08-02 15:29:09 +08:00
2024-08-02 18:50:02 +08:00
2024-08-02 18:50:02 +08:00
2024-08-03 02:53:33 +08:00
2024-08-02 22:35:45 +08:00
2024-08-03 04:02:43 +08:00
2024-08-02 15:29:09 +08:00
2024-08-02 18:50:02 +08:00

Practical Sample With Hardhat + Solidity

A fully functional Smart Contract wrriten with solidity, node.js and using Hardhat to show usage of all kinds of standard development features, including:

  • running blockchain node in localhost - hardhat & ganache
  • solidity prettier code beautifier setup
  • standard of developing Smart Contract with solidity
  • standard of developing node.js script to use hardhat library efficiently
  • auto verify contract in Etherscan.io
  • creating automate test cases
  • creating tasks etc.
  • gitea version control

This project mainly to keep as a reference for future Web 3.0 Developments.


Success Deploy & Verified Of This Smart Contract To Sepolia Testnet

0xc2022b56eBC140B5FebCf9FBaB14c17db4C315C4 https://sepolia.etherscan.io/address/0xc2022b56eBC140B5FebCf9FBaB14c17db4C315C4#code

Public Reported Hacked Code References:

This website is records of all kind previous hacked smart contract:

https://rekt.news/leaderboard/

1. Git Version Control

First time initialize:

git config --global user.name "hoelee"
git config --global user.email "me@hoelee.com"
git init .
git add .
git checkout -b main
git commit -m "Initial Commit"
git remote set-url origin https://username:accessToken@git.hoelee.com/hoelee/ethers-simple-storage.git
git credential-cache exit // Fix Credential Error

Standard Update:

git add .
git commit -m "Describe what changes"
git push -u origin main

Development need exlude file can create root file with name .gitignore

.env
node_modules
.encryptedkey.json

2. Setup Visual Studio Code Development Environment

Windows need to download install WSL

wsl --set-default Ubuntu-22.04
mkdir theProjectFolderName
cd theProjectFolderName
code .
// Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install 16.14.2
nvm install node.js
nvm install 18 // Update node JS to v18

Visual Studio need to update code setting

"[solidity]": {
        "editor.defaultFormatter":"NomicFoundation.hardhat-solidity"
    }

Preparing of solidity development environment:

corepack enable // Enable yarn
yarn install solc
yarn add solc@0.8.7fixed
yarn solcjs --bin --abi --include-path node_modules/ --base-path . -o . SimpleStorage.sol
yarn add ethers // Compiler Error, Downgraded to v5.7.2
yarn add fs-extra
yarn add dotenv
yarn add prettier
yarn add prettier-plugin-solidity

Preparing of Hardhat Development Environment

yarn init 
// Manual delete main: index.js in package.json
yarn add --dev hardhat // Production no need --dev
nvm install 18
nvm use 18
nvm alias default 18
corepack enable // Enable yarn
yarn hardhat
yarn add --dev prettier prettier-plugin-solidity
yarn add --dev dotenv
yarn add --dev @nomiclabs/hardhat-etherscan // Auto verify Etherscan Samrt Contract

Other Terminal Useful Command

// For Debuging Hardhat
npx hardhat --versose

// For Recompile
yarn hardhat clean // Or manual delete artifacts & cache folder
npm install

// For Listing Hardhat Local Blockchain node
yarn hardhat accounts
yarn hardhat node  // Run in Dedicated Terminal, Getting Blockchain server
yarn hardhat console --network localhost // Short Life To Test Solidity Code In Terminal
yarn hardhat compile
yarn hardhat run scripts/deploy.js --network localhost
yarn hardhat custom-task-name
    // Need create file in /tasks/custom-task-name.js
    // Add import in hardhat.config.js -> requir("/tasks/custom-task-name");
yarn hardhat test
yarn hardhat test --grep customKeyword
    // Only will run the test with describe test that contain "customKeyword"

3. Known Problem of this Project

  • Cannot use expect in test, most probably due to the dependencies mismatched. Future will upgrade and test newer version dependencies.

Find a bug?

If you found an issue or would like to submit an improvement to this demo project, please submit an issue using the issues tab above.

4. Looking Web 3.0 Developer For Your Project?

Mr Hoelee is Welcome Web 3.0 Remote Job, Contact Me Immediately Via WhatsApp +60175885290 . Or You can email me@hoelee.com now. Thanks.

Description
Learning project: Solidity smart contracts (SimpleStorage, FundMe, PriceConverter) with Hardhat - deployment, testing, gas optimization, and Sepolia verification. Open to Web3 remote work.
Readme 1.4 MiB
Languages
JavaScript 99.4%
Solidity 0.6%