Interpool is a GameFi with no loosers, where the winners share the interests generated by the deposits of all the participants. We've been widely inspired by PoolTogether which uses the same concept but for a lottery. On our project we wanted to remove the random factor, and replace it by the skill factor, so the best players can change the odds in their favor. Our first final version of our concept is a Prediction Game on the 2024 FIFA World Cup
The documentation of this dapp is available on this link https://irruption-lab.gitbook.io/interpool
Interpool is open source, you can find all the project in this repository. This repository has 2 folders:
- client for Front End
- core for Core Contracts (contracts are deployed on Goerli and Mumbai)
- Test with fake data
- Test with oracle on Ligue 1
- Deploy for World Cup
- Add Contest Results Table
- Add live feedback on player predictions
- Add multi contest (round of 16) : 2 contests at the same time
- Deploy on one mainnet
- Add several contests and sports
- Build a DAO for managing the protocol
Clone the repository on your local machine
$ git clone https://github.com/pgrandne/Interpool.git
We use React. The Front End scripts are in "client" folder. If you want to launch the Front End locally:
- Go to "client" folder
$ cd client
- Install the dependencies
$ npm install
- Launch the server locally
$ npm start
-
Open your browser and go to
http://localhost:3000
The backend server must be launched to display and interact with the catalog Please follow next section for installing and deploying backend server -
Contracts addresses are saved on ./src/utils.contractAddress.tsx If you want to use your own deployed contracts, you have to update addresses from this file
We use Hardhat
- Go to "core" folder
$ cd core
- Install the dependencies
$ npm install
- The 3 contrats are available in "contracts" folder
$ cd contracts
-
We use .env for environment variables. Change the name of env.example to .env and fill in the 3 variables:
- We use ALCHEMY_ID for the provider
- We use PRIVATE KEY for the deployment
- We use ETHERSCAN_API/POLYGONSCAN_API for contracts verification
-
We have configured 3 networks in
hardhat.config.js
(contrats are deployed only on Goerli and Mumbai):- Ehtereum Goerli
- Mainnet Optimism
- Testnet Optimism
- Polygon Mumbai
- Hardhat
-
For deploying a contract, go to "scripts" folder and open deploy.js. Replace the parameter of ContractFactory by the name of the contract that you want to deploy:
const Contract = await ethers.getContractFactory("InterpoolContract");
-
Compile and deploy the contract on Goerli (change by another network like mumbai if you want):
$ npx hardhat compile
$ npx hardhat run --network goerli scripts/deploy.js
- Verify the contract on Etherscan
$ npx hardhat verify --network goerli YOUR_CONTRACT_ADDRESS