Skip to content

metasucks/pay-to-win-solidity

Repository files navigation

Pay to Win: Solidity

A simple pay-to-win project, using a solidity starter kit and buildspace's tutorial code for a basic dapp.

If you pay (on rinkeby), your score will increase. Theoretically, a custom name could be provided for the leaderboard, but the UI wasn't adjusted to allow for that.

To work with the smart contract, make sure to create an .env file with keys referenced from the hardhat config.

On redeploy, the dapp needs to be adjusted (new ABI file, new contract address). The whole dance.

Original README: Typescript Solidity Dev Starter Kit

Updated to use Hardhat!

This is a starter kit for developing, testing, and deploying smart contracts with a full Typescript environment. This stack uses Hardhat as the platform layer to orchestrate all the tasks. Ethers is used for all Ethereum interactions and testing.

Blog Post

Using this Project

Clone this repository, then install the dependencies with npm install. Build everything with npm run build. https://hardhat.org has excellent docs, and can be used as reference for extending this project.

Available Functionality

Build Contracts and Generate Typechain Typeings

npm run compile

Run Contract Tests & Get Callstacks

In one terminal run npx hardhat node

Then in another run npm run test

Notes:

  • The gas usage table may be incomplete (the gas report currently needs to run with the --network localhost flag; see below).

Run Contract Tests and Generate Gas Usage Report

In one terminal run npx hardhat node

Then in another run npm run test -- --network localhost

Notes:

  • When running with this localhost option, you get a gas report but may not get good callstacks
  • See here for how to configure the gas usage report.

Run Coverage Report for Tests

npm run coverage

Notes:

  • running a coverage report currently deletes artifacts, so after each coverage run you will then need to run npx hardhat clean followed by npm run build before re-running tests
  • the branch coverage is 75%

Deploy to Ethereum

Create/modify network config in hardhat.config.ts and add API key and private key, then run:

npx hardhat run --network rinkeby scripts/deploy.ts

Verify on Etherscan

Using the hardhat-etherscan plugin, add Etherscan API key to hardhat.config.ts, then run:

npx hardhat verify --network rinkeby <DEPLOYED ADDRESS>

PRs and feedback welcome!

About

A simple pay-to-win project draft.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published