This repository contains UQBet, a betting website running on the Ethereum network. The application is currently deployed here.
This project is intended to be used with the
Hardhat Beginners Tutorial, but you should be
able to follow it by yourself by reading the README and exploring its
contracts
, tests
, scripts
and frontend
directories.
The first things you need to do are cloning this repository and installing its dependencies:
git clone https://github.com/rwardd/UQBet.git
cd UQBet
yarn install
Once installed, let's run Hardhat's testing network:
npx hardhat node
Then, on a new terminal, go to the repository's root folder and run this to deploy your contract:
npx hardhat run scripts/deploy.js --network localhost
Finally, we can run the frontend with:
cd frontend
yarn install
yarn start
Note: There's an issue in
ganache-core
that can make theyarn install
step fail.If you see
npm ERR! code ENOLOCAL
, try runningyarn install --frozen-lockfile
instead ofyarn install
.
Open http://localhost:3000/ to see your Dapp. You will
need to have Metamask installed and listening to
localhost 8545
.
You can find detailed instructions on using this repository and many tips in its documentation.
- Writing and compiling contracts
- Setting up the environment
- Testing Contracts
- Setting up Metamask
- Hardhat's full documentation
For a complete introduction to Hardhat, refer to this guide.
Your environment will have everything you need to build a Dapp powered by Hardhat and React.
- Hardhat: An Ethereum development task runner and testing network.
- Mocha: A JavaScript test runner.
- Chai: A JavaScript assertion library.
- ethers.js: A JavaScript library for interacting with Ethereum.
- Waffle: To have Ethereum-specific Chai assertions/mathers.
- frontend/UQBet: A frontend which uses Create React App.
- grommet: A lightweight UI library
Invalid nonce
errors: if you are seeing this error on thenpx hardhat node
console, try resetting your Metamask account. This will reset the account's transaction history and also the nonce. Open Metamask, click on your account followed bySettings > Advanced > Reset Account
.- Use node version 16.x.x. Problems occur when using version 17.x.x