Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/protokol/solidity-typescript-hardhat-template
A Template Project To Start Solidity Development With Hardhat and Typescript support. Created by Protokol
https://github.com/protokol/solidity-typescript-hardhat-template
blockchain ethereum-contract hardhat solidity typescript
Last synced: about 7 hours ago
JSON representation
A Template Project To Start Solidity Development With Hardhat and Typescript support. Created by Protokol
- Host: GitHub
- URL: https://github.com/protokol/solidity-typescript-hardhat-template
- Owner: protokol
- License: mit
- Created: 2021-08-03T11:37:53.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-18T12:37:53.000Z (28 days ago)
- Last Synced: 2024-10-20T07:17:08.359Z (26 days ago)
- Topics: blockchain, ethereum-contract, hardhat, solidity, typescript
- Language: TypeScript
- Homepage: https://www.protokol.com
- Size: 1.14 MB
- Stars: 45
- Watchers: 8
- Forks: 16
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Img](header.png)
# TypeScript Solidity Boilerplate Starter Kit
A BoilerPlate Template Project To Start Solidity Development With Hardhat and Typescript.
All you have to do is create a new repository from the template and start coding your smart contracts.## Hardhat Configuration
- [Typechain](https://github.com/dethcrypto/TypeChain) plugin enabled (typescript type bindings for smart contracts)
- [hardhat-deploy](https://github.com/wighawag/hardhat-deploy) plugin enabled
- Testing environment configured and operational, with test coverage
- Prettier and eslint configured for project files and solidity smart contract
- [Solhint](https://github.com/protofire/solhint) configured for enforcing best practices
- Github actions workflows prepared for CI/CD
- Prepared Smart Contract Examples, Tests, Deployments and Tasks for Common ERC Standards (ERC20, ERC721, ERC1155)Check the Hardhat documentation for more information.
https://hardhat.org/getting-started/
## Project Structure
```text
.
├── contracts
│ ├── BasicERC1155.sol
│ ├── BasicERC20.sol
│ └── BasicERC721.sol
├── deploy
│ ├── Deploy_BasicERC1155.ts
│ ├── Deploy_BasicERC20.ts
│ └── Deploy_BasicERC721.ts
├── deployments
├── hardhat.config.ts
├── tasks
│ ├── erc1155
│ ├── erc20
│ ├── erc721
│ └── utils
└── test
├── BasicERC1155.ts
├── BasicERC20.ts
└── BasicERC721.ts
```## Supported Networks
- Hardhat Network (localhost)
- Ethereum Mainnet
- Ethereum Sepolia Testnet
- Polygon Mainnet
- Polygon Mumbai TestnetFeel free to add more networks in `hardhat.config.ts` file.
## Hardhat Shorthand
We recommend installing `hh autocomplete` so you can use `hh` shorthand globally.
```shell
npm i -g hardhat-shorthand
```https://hardhat.org/guides/shorthand.html
### Common Shorthand Commands
- `hh compile` - to compile smart contract and generate typechain ts bindings
- `hh test` - to run tests
- `hh deploy` - to deploy to local network (see options for more)
- `hh node` - to run a localhost node
- `hh help` - to see all available commands
- `hh TABTAB` - to use autocomplete## Usage
### Setup
#### 1. Install Dependencies
```shell
npm install
```#### 2. Compile Contracts
```shell
npm run compile
```#### 3. Environment Setup
Create `.env` file and add your environment variables. You can use `.env.example` as a template.
If you are going to use public network, make sure you include the right RPC provider for that network.
Make sure you include either `MNEMONIC` or `PRIVATE_KEY` in your `.env` file.
### Example Flow - Deploy ERC721 Token
> This is an example flow to deploy an ERC721 token to a public network and interact with it.
#### 1. Deploy BasicERC721 Contract
```shell
hh deploy --network sepolia --tags BasicERC721
```#### 2. Verify Contract
```shell
hh --network sepolia etherscan-verify
```#### 3. Interact With Contract - Mint
```shell
hh erc721-mint \
--contract 0x77337983A7D1699FaF51a5f43b9907fB7B614097 \
--recipient 0x73faDd7E476a9Bc2dA6D1512A528366A3E50c3cF \
--network sepolia
```---
### Testing
#### Run Tests
```shell
npm run test
```#### Run Coverage
```shell
npm run coverage
```---
### Project Hygiene
#### Prettier - Non Solidity Files
```shell
npm run format:check
npm run format:write
```#### Lint - Non Solidity Files
```shell
npm run lint:check
npm run lint:fix
```#### Prettier - Solidity
```shell
npm run sol:format:check
npm run sol:format:write
```#### Solhint - Enforcing styles and security best practices
```shell
npm run solhint
```
## Contact Protokol
**Need additional help with your solidity project?**
Protokol builds custom blockchain and web3 solutions for organisations of all sizes. We build everything from smart contracts, to dApps, to fully bespoke web3 solutions.
Reach out at [protokol.com/contact](https://www.protokol.com/contact/) to learn how our web3 development services could help bring your project to life.
## Join Protokol
**Looking for an exciting new role in web3?**
Head over to [protokol.com/careers](https://www.protokol.com/careers/) to discover the roles we have available or to submit your résumé.