Quickly get up and running with a powerful Solidity project in no time.

Overview

Solidity template

Quickly get up and running with a powerful Solidity project in no time.

Tech stack used

  • Hardhat. Tooling for compiling, deploying and testing smart contracts.
  • Ethers. Library with Ethereum and Wallet implementations.
  • Waffle, Chai. For testing the smart contracts comprehensively.
  • Solhint, Prettier. For linting and formatting of the code.
  • Gas reporter. For reporting gas usage of the smart contracts during testing.
  • Typechain. For generating type definitions for the smart contracts.

👇 Pre-requisites

Ensure that you have the following tools ready and installed to use this:

  • Git
  • Node.js

Setup the environmental variables if you haven't yet.

You can setup the .env variables based on the .env.example file as provided. Setup the file using cp .env.example .env and fill in the values.

🛠 Usage

Quickly get started by installing the dependencies.

npm install -D
# OR
yarn

NOTE Any contracts written should use the 0.8.0 or a specific minor-version pragma in order to retain backwards compatibility with all the versions of the compiler with same minor release.

Build the project

You can build the project using:

yarn run build

Note that, If you're not using this as a library, remove the build:lib and all linked scripts. Else if you are, using this as a library that you want to publish, run yarn run build:lib instead.

Linting and formatting

Linting and formatting is provided by the solhint and prettier packages respectively.

You can lint/format the whole project as so:

# Linting
yarn run lint

# Formatting
yarn run format

Testing

The project ships with a simple test suite. You can add your own as you work on more contracts. The gas reporter runs along with tests if enabled.

Run the tests as so:

yarn run test

Clean up project

A script has been provided to clean up artifacts, cache, typechain output and ABIs copied.

yarn run clean

Tasks

Hardhat scripts and tasks are present in their respective folders.

You can run any hardhat scripts using:

npx hardhat run scripts/path/to/script

Replace /path/to/script with the actual path to script file.

The tasks can be run using the same manner.

npx hardhat <task-name>

Where task-name is the unique identifier for a task. They're defined when creating a task, such as accounts is one of the tasks present.

You can create your own scripts & tasks in the same manner by referring to the hardhat documentation on them.

Contributing

Contributions, issues and feature requests are welcome. After cloning & setting up project locally, you can just submit a PR to this repo and it will be deployed once it's accepted.

⚠️ It’s good to have descriptive commit messages, or PR titles so that other contributors can understand about your commit or the PR Created. Read conventional commits before making the commit message.

Show your support

We love people's support in growing and improving. Be sure to leave a ⭐️ if you like the project and also be sure to contribute, if you're interested!

Made by Sunrit Jana with
You might also like...

A cool tool that saves you time if you want to remove node_modules before running 'npm i'

rmnpm A cool tool that saves you time if you want to remove your node_modules folder before running the npm install command. How does it do it? By fir

Jul 16, 2022

Get a desktop notification every time a new correction slot is available for your 42 project.

42_slot_watcher A simple node.js corrections slots watcher for 42, working on Windows - MacOS - Linux. What is this I was bored of having to refresh t

Dec 20, 2022

A fast and powerful http toolkit that take a list of domains to find active domains and other information such as status-code, title, response-time , server, content-type and many other

A fast and powerful http toolkit that take a list of domains to find active domains and other information such as status-code, title, response-time , server, content-type and many other

HTTPFY curently in beta so you may see problems. Please open a Issue on GitHub and report them! A Incredible fast and Powerful HTTP toolkit Report Bug

Dec 22, 2022

A starter next.js + solidity project that implements merkle trees

Create Merkle App By Backseats This is an example app that shows you how to use a Merkle tree for your allow list Includes a partial contract contract

Nov 6, 2022

This is a fully functional DAO, a Web3 project made using Solidity, Hardhat, JS, Next.js, Openzeppelin, CSS, HTML, using the Rinkerby network!

My First DAO! This is made for a DAO-Tutorial via learnweb3.io This is a DAO, a decentralised autonomous organisation, essentially a more collective a

Jun 20, 2022

A powerful and simple JavaScript library provides a history for undo/redo functionality. Just like a time machine! 🕐

UndoRedo.js A powerful and simple Javascript library provides a history for undo/redo functionality. Just like a time machine! 🕐 Installation: Node.j

Dec 14, 2022

The project integrates workflow engine, report engine and organization authority management background, which can be applied to the development of OA, HR, CRM, PM and other systems. With tlv8 IDE, business system development, testing and deployment can be realized quickly.

The project integrates workflow engine, report engine and organization authority management background, which can be applied to the development of OA, HR, CRM, PM and other systems. With tlv8 IDE, business system development, testing and deployment can be realized quickly.

介绍 项目集成了工作流引擎、报表引擎和组织机构权限管理后台,可以应用于OA、HR、CRM、PM等系统开发。配合使用tlv8 ide可以快速实现业务系统开发、测试、部署。 后台采用Spring MVC架构简单方便,前端使用流行的layui界面美观大方。 采用组件开发技术,提高系统的灵活性和可扩展性;采

Dec 27, 2022

Uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about their availability, average response time, and total uptime/downtime.

Uptime Monitoring API Uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about thei

Jun 14, 2022

Save time by managing bills & expenses, invoicing & easy reconciliation all in one app. Generate clear dynamic statements and get your reports, the way you like them

Save time by managing bills & expenses, invoicing & easy reconciliation all in one app. Generate clear dynamic statements and get your reports, the way you like them

expense-manager-app (Opensource Expense Tracking App built with React) 🔥 Save time by managing bills & expenses, invoicing & easy reconciliation all

Oct 12, 2022
Owner
0xSaturn
Revolutionizing Web3 and beyond.
0xSaturn
Solidity Quickstart is an extensive solidity guide for the solidity newbies out there.

?? Solidity Quickstart Solidity Quickstart is an extensive solidity guide for the solidity newbies out there. ?? How does it work? All the guides rela

Kira 8 Aug 6, 2022
A hardhat solidity template with necessary libraries that support to develop, compile, test, deploy, upgrade, verify solidity smart contract

solidity-hardhat-template A solidity hardhat template with necessary libraries that support to develop, compile, test, deploy, upgrade, verify solidit

ChimGoKien 4 Oct 16, 2022
A professional truffle solidity template with all necessary libraries that support developer to develop, debug, test, deploy solidity smart contract

solidity-truffle-template A professional truffle solidity template with necessary libraries that support to develop, compile, test, deploy, upgrade, v

ChimGoKien 6 Nov 4, 2022
Jugglr is a tool for managing test data and running tests with a dedicated database running in a Docker container.

Jugglr Jugglr is a tool for managing test data and running tests with a lightweight, dedicated database. Jugglr enables developers, testers, and CI/CD

OSLabs Beta 74 Aug 20, 2022
Flexible, powerful and modern library for creating the running horizontal blocks effect, also known as ticker or the «marquee effect».

Cuberto Reeller Flexible, powerful and modern library for creating the running horizontal blocks effect, also known as ticker or the «marquee effect».

Cuberto 41 Jan 4, 2023
🦄 A command line tool to get tokens on testnets quickly!

?? faucetli A command line tool to get tokens on testnets quickly! Usage Commands Usage $ npm install -g faucetli $ faucetli COMMAND running command..

Kira 60 Jan 1, 2023
🦄 A command line tool to get tokens on testnets quickly!

?? faucetli ?? A command line tool to get tokens on testnets quickly! Usage Commands Usage $ npm install -g faucetli $ faucetli COMMAND running comman

buidler's hub 56 May 11, 2022
🏄‍♂️ A node.js template to quickly get started building

hacky-node-template ??‍♂️ A type-safe Node.js template to quickly get started building. Tech-stack Express.js - Fast, un-opinionated, minimalist web f

Mukesh 7 Jan 4, 2023
CloudCrafter CLI is a command-line interface tool that provides templates for common cloud resources to help you get started quickly.

CloudCrafter CLI CloudCrafter CLI is a command-line interface tool that provides templates for common cloud resources to help you get started quickly.

Missio 7 May 5, 2023
CLI Progress Bar implemented in NodeJS to track Time, ETA and Steps for any long running jobs in any loops in JS, NodeJS code

NodeJS-ProgressBar CLI Progress Bar for NodeJS and JavaScript to track Time, ETA and Steps for any long running jobs in any loops in JS, NodeJS code D

Atanu Sarkar 5 Nov 14, 2022