Skip to content

Commit

Permalink
Merge pull request #17 from pooltogether/pool-2138-polygon-deploy-rng…
Browse files Browse the repository at this point in the history
…-chainlink-20-on

feat(deployments): deploy RNGChainlinkV2 on Polygon
  • Loading branch information
PierrickGT authored Nov 30, 2022
2 parents 52f7de0 + 7647ab6 commit 04038d9
Show file tree
Hide file tree
Showing 10 changed files with 2,931 additions and 8 deletions.
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Redeploy TWABRewards on Avalanche, Ethereum and Polygon.

Deploy USDC Prize Pool on Optimism.

### v1.6.0 Post-Deploy Configuration Changes
### Post-Deploy Configuration Changes

#### Optimism

Expand All @@ -144,3 +144,19 @@ Executive team needs to claim ownership of the following contracts:
- PrizeDistributionBuffer
- ReceiverTimelockTrigger

## v1.6.1

Re-deploy USDC Prize Pool on Optimism.

## v1.7.0

Deploy RNGChainlinkV2 on Polygon and setup DrawBeacon to compute draw onchain.

### Post-Deploy Configuration Changes

#### Polygon

Executive team needs to claim ownership of the following contracts:
- RNGChainlinkV2
- DrawBeacon
- BeaconTimelockTrigger
2 changes: 1 addition & 1 deletion contracts.json

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions deploy/v1.7.0/polygon.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { dim } from 'chalk';
import { HardhatRuntimeEnvironment } from 'hardhat/types';

import {
BEACON_PERIOD_SECONDS,
RNG_TIMEOUT_SECONDS,
} from '../../src/constants';
import { deployAndLog } from '../../src/deployAndLog';
import { setManager } from '../../src/setManager';
import { transferOwnership } from '../../src/transferOwnership';

export default async function deployToEthereumMainnet(hardhat: HardhatRuntimeEnvironment){
if (process.env.DEPLOY === 'v1.7.0.polygon') {
dim(`Deploying: DrawBeacon, RNGChainlinkV2, BeaconTimelockTrigger on Polygon`)
dim(`Version: 1.7.0`)
} else { return }

const { getNamedAccounts, ethers } = hardhat;
const { getContract } = ethers;

const { deployer, defenderRelayer, executiveTeam } = await getNamedAccounts();

const drawBuffer = await getContract('DrawBuffer');
const drawCalculatorTimelock = await getContract('DrawCalculatorTimelock')
const prizeDistributionFactory = await getContract('PrizeDistributionFactory');

// ===================================================
// Deploy Contracts
// ===================================================

const rngServiceResult = await deployAndLog('RNGChainlinkV2', {
from: deployer,
args: [
deployer,
'0xAE975071Be8F8eE67addBC1A82488F1C24858067', // VRF Coordinator address
472, // Subscription id
'0xcc294a196eeeb44da2888d17c0625cc88d70d9760a69d58d853ba6581a9ab0cd', // 500 gwei key hash gas lane
],
skipIfAlreadyDeployed: true,
});

const drawBeaconResult = await deployAndLog('DrawBeacon', {
from: deployer,
args: [
deployer,
drawBuffer.address,
rngServiceResult.address,
411, // Starting DrawID
1669748400, // Nov 29, 2022, 7:00:00 PM UTC
BEACON_PERIOD_SECONDS, // 86400 = one day
RNG_TIMEOUT_SECONDS // 2 * 3600 = 2 hours
],
skipIfAlreadyDeployed: true,
});

await deployAndLog('BeaconTimelockTrigger', {
from: deployer,
args: [
deployer,
prizeDistributionFactory.address,
drawCalculatorTimelock.address
]
});

await setManager('RNGChainlinkV2', null, drawBeaconResult.address);
await setManager('BeaconTimelockTrigger', null, defenderRelayer);

await transferOwnership('RNGChainlinkV2', null, executiveTeam);
await transferOwnership('DrawBeacon', null, executiveTeam);
await transferOwnership('BeaconTimelockTrigger', null, executiveTeam);
}
Loading

0 comments on commit 04038d9

Please sign in to comment.