@pooltogether/v4-timelocks v1.1.0
PoolTogether V4 Timelock Contracts
Have questions or want the latest news? Join the PoolTogether Discord or follow us on Twitter:
Documention https://docs.pooltogether.com
Deployments
Overview
Timelock contracts assist with Phase 1 in the roll-out of V4. Granting authority to the operrations teams to prevent a "bad actor" oracle from incorrectly setting a draw or prize distribution params.
DrawCalculatorTimelock
The DrawCalculatorTimelock adds a timelock for PrizeDistributor to execute a claim with the most recently pushed PrizeDistribution params pushed.
L1TimelockTrigger & L2TimelockTrigger
Both L1TimelockTrigger/L2TimelockTrigger contracts set a timelock or a "cooldown" period in the linked DrawCalculatorTimelock contract. The DrawCalculatorTimelock routes calculate execution through a DrawCalculator contract for the linked PrizeDistributor contract.
L1TimelockTrigger
The L1TimelockTrigger contract pushes DrawLib.Draw and DrawLib.PrizeDistribution params onto the DrawBuffer and PrizeDistributionBuffer contracts.
L2TimelockTrigger
The L2TimelockTrigger pushes DrawLib.PrizeDistribution params onto a PrizeDistributionBuffer contract.
Core and Timelock contracts:
Getting Started
The project is made available as a NPM package.
$ yarn add @pooltogether/pooltogether-contractsThe repo can be cloned from Github for contributions.
$ git clone https://github.com/pooltogether/v4-timelock$ yarnWe use direnv to manage environment variables. You'll likely need to install it.
cp .envrc.example .envrvTo run fork scripts, deploy or perform any operation with a mainnet/testnet node you will need an Infura API key.
Testing
We use Hardhat and hardhat-deploy
To run unit & integration tests:
$ yarn testTo run coverage:
$ yarn coverageFork Testing
Ensure your environment variables are set up. Make sure your Alchemy URL is set. Now start a local fork:
$ yarn start-forkSetup account impersonation and transfer eth:
$ ./scripts/setup.shDeployment
Deploy Locally
Start a local node and deploy the top-level contracts:
$ yarn startNOTE: When you run this command it will reset the local blockchain.
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago