From c16db3867391f4324615c4480ff9c53059bc683b Mon Sep 17 00:00:00 2001 From: Brendan Asselstine Date: Mon, 19 Apr 2021 12:19:06 -0700 Subject: [PATCH 1/2] Added ability to fork matic --- .envrc.example | 3 ++ hardhat.config.js | 8 +++-- hardhat.networks.js | 15 ++++++++-- package.json | 5 ++-- .../createAndRunYieldSourcePrizePool.js | 6 +++- scripts/fork/{ => mainnet}/constants.js | 0 .../fork/{ => mainnet}/createTokenFaucets.js | 0 .../deactivateAndDisconnectComptroller.js | 0 scripts/fork/{ => mainnet}/delegatePool.js | 0 scripts/fork/{ => mainnet}/depositAsSafe.js | 0 .../fork/{ => mainnet}/disbursePoolTokens.js | 0 .../distributeEtherFromBinance.js | 0 scripts/fork/{ => mainnet}/enableReserve.js | 0 .../fork/{ => mainnet}/executeProposal3.js | 0 .../governance/MainnetForkGuide.md | 0 .../governance/createTokenFaucets.js | 0 .../fork/{ => mainnet}/governance/runAll.sh | 0 scripts/fork/{ => mainnet}/immediateClaim.js | 0 .../fork/{ => mainnet}/impersonateAccounts.js | 0 scripts/fork/{ => mainnet}/oneMonth.js | 0 scripts/fork/{ => mainnet}/oneYear.js | 0 .../{ => mainnet}/pools/createABUSDPool.js | 2 +- .../{ => mainnet}/pools/createAGUSDPool.js | 2 +- .../{ => mainnet}/pools/createASUSDPool.js | 2 +- .../{ => mainnet}/pools/createSushiPool.js | 2 +- .../{ => mainnet}/pools/createUSDTPool.js | 2 +- .../{ => mainnet}/startAndCompleteAwards.js | 0 scripts/fork/{ => mainnet}/swapDaiPoolToMW.js | 0 .../transferOwnershipToTimelock.js | 0 scripts/fork/{ => mainnet}/updateSafeDrips.js | 0 .../fork/{ => mainnet}/upgradeDaiPoolToMW.js | 0 scripts/fork/{ => mainnet}/usdtDeposit.js | 0 scripts/fork/matic/constants.js | 7 +++++ scripts/fork/matic/distributeMatic.js | 30 +++++++++++++++++++ scripts/fork/matic/impersonateAccounts.js | 15 ++++++++++ scripts/fork/matic/pools/createADAIPool.js | 15 ++++++++++ scripts/setup_fork.sh | 2 -- scripts/setup_mainnet_fork.sh | 2 ++ yarn.lock | 8 ++--- 39 files changed, 107 insertions(+), 19 deletions(-) rename scripts/fork/{ => mainnet}/constants.js (100%) rename scripts/fork/{ => mainnet}/createTokenFaucets.js (100%) rename scripts/fork/{ => mainnet}/deactivateAndDisconnectComptroller.js (100%) rename scripts/fork/{ => mainnet}/delegatePool.js (100%) rename scripts/fork/{ => mainnet}/depositAsSafe.js (100%) rename scripts/fork/{ => mainnet}/disbursePoolTokens.js (100%) rename scripts/fork/{ => mainnet}/distributeEtherFromBinance.js (100%) rename scripts/fork/{ => mainnet}/enableReserve.js (100%) rename scripts/fork/{ => mainnet}/executeProposal3.js (100%) rename scripts/fork/{ => mainnet}/governance/MainnetForkGuide.md (100%) rename scripts/fork/{ => mainnet}/governance/createTokenFaucets.js (100%) rename scripts/fork/{ => mainnet}/governance/runAll.sh (100%) rename scripts/fork/{ => mainnet}/immediateClaim.js (100%) rename scripts/fork/{ => mainnet}/impersonateAccounts.js (100%) rename scripts/fork/{ => mainnet}/oneMonth.js (100%) rename scripts/fork/{ => mainnet}/oneYear.js (100%) rename scripts/fork/{ => mainnet}/pools/createABUSDPool.js (78%) rename scripts/fork/{ => mainnet}/pools/createAGUSDPool.js (78%) rename scripts/fork/{ => mainnet}/pools/createASUSDPool.js (78%) rename scripts/fork/{ => mainnet}/pools/createSushiPool.js (78%) rename scripts/fork/{ => mainnet}/pools/createUSDTPool.js (97%) rename scripts/fork/{ => mainnet}/startAndCompleteAwards.js (100%) rename scripts/fork/{ => mainnet}/swapDaiPoolToMW.js (100%) rename scripts/fork/{ => mainnet}/transferOwnershipToTimelock.js (100%) rename scripts/fork/{ => mainnet}/updateSafeDrips.js (100%) rename scripts/fork/{ => mainnet}/upgradeDaiPoolToMW.js (100%) rename scripts/fork/{ => mainnet}/usdtDeposit.js (100%) create mode 100644 scripts/fork/matic/constants.js create mode 100644 scripts/fork/matic/distributeMatic.js create mode 100644 scripts/fork/matic/impersonateAccounts.js create mode 100644 scripts/fork/matic/pools/createADAIPool.js delete mode 100755 scripts/setup_fork.sh create mode 100755 scripts/setup_mainnet_fork.sh diff --git a/.envrc.example b/.envrc.example index e705f034..68102b31 100644 --- a/.envrc.example +++ b/.envrc.example @@ -13,5 +13,8 @@ export BSCSCAN_API_KEY='' # Required for forking export ALCHEMY_URL='' +# Required for forking Polygon (Matic) +export MATICVIGIL_URL='' + #required for mainnet governance forking testnets export PATH_TO_GOVERNANCE_REPO='' diff --git a/hardhat.config.js b/hardhat.config.js index 654ce9fe..9e45c365 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -1,5 +1,7 @@ const networks = require('./hardhat.networks') +const RNGBlockhashMatic = require('@pooltogether/pooltogether-rng-contracts/deployments/matic_137/RNGBlockhash.json') +const RNGBlockhashMainnet = require('@pooltogether/pooltogether-rng-contracts/deployments/mainnet/RNGBlockhash.json') const RNGBlockhashRopsten = require('@pooltogether/pooltogether-rng-contracts/deployments/ropsten/RNGBlockhash.json') const RNGBlockhashRinkeby = require('@pooltogether/pooltogether-rng-contracts/deployments/rinkeby/RNGBlockhash.json') const RNGBlockhashKovan = require('@pooltogether/pooltogether-rng-contracts/deployments/kovan/RNGBlockhash.json') @@ -58,9 +60,11 @@ const config = { 97: '0x3e8b9901dBFE766d3FE44B36c180A1bca2B9A295' //bscTestnet }, rng: { - 42: RNGBlockhashKovan.address, + 1: RNGBlockhashMainnet.address, + 3: RNGBlockhashRopsten.address, 4: RNGBlockhashRinkeby.address, - 3: RNGBlockhashRopsten.address + 42: RNGBlockhashKovan.address, + 137: RNGBlockhashMatic.address }, admin: { 42: testnetAdmin, diff --git a/hardhat.networks.js b/hardhat.networks.js index f27e6813..b0086254 100644 --- a/hardhat.networks.js +++ b/hardhat.networks.js @@ -5,13 +5,12 @@ const networks = { allowUnlimitedContractSize: true }, localhost: { - chainId: 1, url: 'http://127.0.0.1:8545', allowUnlimitedContractSize: true } } -if(process.env.ALCHEMY_URL && process.env.FORK_ENABLED){ +if(process.env.MAINNET_FORK_ENABLED && process.env.ALCHEMY_URL) { networks.hardhat = { chainId: 1, forking: { @@ -20,8 +19,18 @@ if(process.env.ALCHEMY_URL && process.env.FORK_ENABLED){ }, accounts: { mnemonic: process.env.HDWALLET_MNEMONIC + } + } +} else if (process.env.MATIC_FORK_ENABLED && process.env.MATICVIGIL_URL) { + networks.hardhat = { + chainId: 137, + forking: { + url: process.env.MATICVIGIL_URL, + blockNumber: 13478670 }, - // allowUnlimitedContractSize: true + accounts: { + mnemonic: process.env.HDWALLET_MNEMONIC + } } } else { networks.hardhat = { diff --git a/package.json b/package.json index 57e5e6b8..0db6c71d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "compile": "hardhat --show-stack-traces --max-memory 8192 compile", "start": "echo 'Starting node for local testing....\n'; rm -rf deployments/localhost_31337; DISABLE_HARNESS=true hardhat node", "start-gas": "echo 'Starting node for gas testing....\n'; rm -rf deployments/localhost_31337; DISABLE_HARNESS=true hardhat node", - "start-fork": "rm -rf deployments/localhost; cp -r deployments/mainnet deployments/localhost && FORK_ENABLED=true hardhat node --no-reset --no-deploy", + "start-fork": "rm -rf deployments/localhost; cp -r deployments/mainnet deployments/localhost && MAINNET_FORK_ENABLED=true hardhat node --no-reset --no-deploy", + "start-fork-matic": "rm -rf deployments/localhost; cp -r deployments/matic deployments/localhost && MATIC_FORK_ENABLED=true hardhat node --no-reset --no-deploy", "redeploy-fork": "rm -rf deployments/localhost; yarn deploy localhost", "impersonate-accounts": "hardhat run ./scripts/fork/impersonateAccounts.js --network localhost", "stop-impersonate": "hardhat run ./scripts/fork/stopImpersonation.js --network localhost", @@ -41,7 +42,7 @@ "dependencies": { "@openzeppelin/contracts-upgradeable": "3.4.0", "@pooltogether/fixed-point": "1.0.0-beta.2", - "@pooltogether/pooltogether-rng-contracts": "1.0.0", + "@pooltogether/pooltogether-rng-contracts": "1.1.2", "@pooltogether/uniform-random-number": "1.0.0-beta.1", "@pooltogether/yield-source-interface": "^1.0.1", "deploy-eip-1820": "1.0.0", diff --git a/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js b/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js index 6462e597..9654943d 100644 --- a/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js +++ b/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js @@ -17,6 +17,8 @@ function green() { const { ethers } = hardhat async function createAndRunYieldSourcePrizePool(signer, yieldSourceAddress) { + const { getNamedAccounts } = hardhat + const { rng } = await getNamedAccounts() const builder = await ethers.getContract('PoolWithMultipleWinnersBuilder', signer) dim(`Using PoolWithMultipleWinnersBuilder @ ${builder.address}`) @@ -30,7 +32,7 @@ async function createAndRunYieldSourcePrizePool(signer, yieldSourceAddress) { } const multipleWinnersConfig = { - rngService: "0xb1D89477d1b505C261bab6e73f08fA834544CD21", + rngService: rng, prizePeriodStart: block.timestamp, prizePeriodSeconds: 1, ticketName: "TICKET", @@ -43,6 +45,8 @@ async function createAndRunYieldSourcePrizePool(signer, yieldSourceAddress) { splitExternalErc20Awards: false } + dim(`Creating prize pool...`) + const tx = await builder.createYieldSourceMultipleWinners( yieldSourcePrizePoolConfig, multipleWinnersConfig, diff --git a/scripts/fork/constants.js b/scripts/fork/mainnet/constants.js similarity index 100% rename from scripts/fork/constants.js rename to scripts/fork/mainnet/constants.js diff --git a/scripts/fork/createTokenFaucets.js b/scripts/fork/mainnet/createTokenFaucets.js similarity index 100% rename from scripts/fork/createTokenFaucets.js rename to scripts/fork/mainnet/createTokenFaucets.js diff --git a/scripts/fork/deactivateAndDisconnectComptroller.js b/scripts/fork/mainnet/deactivateAndDisconnectComptroller.js similarity index 100% rename from scripts/fork/deactivateAndDisconnectComptroller.js rename to scripts/fork/mainnet/deactivateAndDisconnectComptroller.js diff --git a/scripts/fork/delegatePool.js b/scripts/fork/mainnet/delegatePool.js similarity index 100% rename from scripts/fork/delegatePool.js rename to scripts/fork/mainnet/delegatePool.js diff --git a/scripts/fork/depositAsSafe.js b/scripts/fork/mainnet/depositAsSafe.js similarity index 100% rename from scripts/fork/depositAsSafe.js rename to scripts/fork/mainnet/depositAsSafe.js diff --git a/scripts/fork/disbursePoolTokens.js b/scripts/fork/mainnet/disbursePoolTokens.js similarity index 100% rename from scripts/fork/disbursePoolTokens.js rename to scripts/fork/mainnet/disbursePoolTokens.js diff --git a/scripts/fork/distributeEtherFromBinance.js b/scripts/fork/mainnet/distributeEtherFromBinance.js similarity index 100% rename from scripts/fork/distributeEtherFromBinance.js rename to scripts/fork/mainnet/distributeEtherFromBinance.js diff --git a/scripts/fork/enableReserve.js b/scripts/fork/mainnet/enableReserve.js similarity index 100% rename from scripts/fork/enableReserve.js rename to scripts/fork/mainnet/enableReserve.js diff --git a/scripts/fork/executeProposal3.js b/scripts/fork/mainnet/executeProposal3.js similarity index 100% rename from scripts/fork/executeProposal3.js rename to scripts/fork/mainnet/executeProposal3.js diff --git a/scripts/fork/governance/MainnetForkGuide.md b/scripts/fork/mainnet/governance/MainnetForkGuide.md similarity index 100% rename from scripts/fork/governance/MainnetForkGuide.md rename to scripts/fork/mainnet/governance/MainnetForkGuide.md diff --git a/scripts/fork/governance/createTokenFaucets.js b/scripts/fork/mainnet/governance/createTokenFaucets.js similarity index 100% rename from scripts/fork/governance/createTokenFaucets.js rename to scripts/fork/mainnet/governance/createTokenFaucets.js diff --git a/scripts/fork/governance/runAll.sh b/scripts/fork/mainnet/governance/runAll.sh similarity index 100% rename from scripts/fork/governance/runAll.sh rename to scripts/fork/mainnet/governance/runAll.sh diff --git a/scripts/fork/immediateClaim.js b/scripts/fork/mainnet/immediateClaim.js similarity index 100% rename from scripts/fork/immediateClaim.js rename to scripts/fork/mainnet/immediateClaim.js diff --git a/scripts/fork/impersonateAccounts.js b/scripts/fork/mainnet/impersonateAccounts.js similarity index 100% rename from scripts/fork/impersonateAccounts.js rename to scripts/fork/mainnet/impersonateAccounts.js diff --git a/scripts/fork/oneMonth.js b/scripts/fork/mainnet/oneMonth.js similarity index 100% rename from scripts/fork/oneMonth.js rename to scripts/fork/mainnet/oneMonth.js diff --git a/scripts/fork/oneYear.js b/scripts/fork/mainnet/oneYear.js similarity index 100% rename from scripts/fork/oneYear.js rename to scripts/fork/mainnet/oneYear.js diff --git a/scripts/fork/pools/createABUSDPool.js b/scripts/fork/mainnet/pools/createABUSDPool.js similarity index 78% rename from scripts/fork/pools/createABUSDPool.js rename to scripts/fork/mainnet/pools/createABUSDPool.js index fc432a4a..dbf00afd 100644 --- a/scripts/fork/pools/createABUSDPool.js +++ b/scripts/fork/mainnet/pools/createABUSDPool.js @@ -1,4 +1,4 @@ -const { createAndRunYieldSourcePrizePool } = require('../helpers/createAndRunYieldSourcePrizePool') +const { createAndRunYieldSourcePrizePool } = require('../../helpers/createAndRunYieldSourcePrizePool') const hardhat = require('hardhat') const { BUSD_HOLDER } = require('../constants') const { ethers } = hardhat diff --git a/scripts/fork/pools/createAGUSDPool.js b/scripts/fork/mainnet/pools/createAGUSDPool.js similarity index 78% rename from scripts/fork/pools/createAGUSDPool.js rename to scripts/fork/mainnet/pools/createAGUSDPool.js index 8eaaf250..99a48da2 100644 --- a/scripts/fork/pools/createAGUSDPool.js +++ b/scripts/fork/mainnet/pools/createAGUSDPool.js @@ -1,4 +1,4 @@ -const { createAndRunYieldSourcePrizePool } = require('../helpers/createAndRunYieldSourcePrizePool') +const { createAndRunYieldSourcePrizePool } = require('../../helpers/createAndRunYieldSourcePrizePool') const hardhat = require('hardhat') const { GUSD_HOLDER } = require('../constants') const { ethers } = hardhat diff --git a/scripts/fork/pools/createASUSDPool.js b/scripts/fork/mainnet/pools/createASUSDPool.js similarity index 78% rename from scripts/fork/pools/createASUSDPool.js rename to scripts/fork/mainnet/pools/createASUSDPool.js index afe44f9d..7ee93f01 100644 --- a/scripts/fork/pools/createASUSDPool.js +++ b/scripts/fork/mainnet/pools/createASUSDPool.js @@ -1,4 +1,4 @@ -const { createAndRunYieldSourcePrizePool } = require('../helpers/createAndRunYieldSourcePrizePool') +const { createAndRunYieldSourcePrizePool } = require('../../helpers/createAndRunYieldSourcePrizePool') const hardhat = require('hardhat') const { SUSD_HOLDER } = require('../constants') const { ethers } = hardhat diff --git a/scripts/fork/pools/createSushiPool.js b/scripts/fork/mainnet/pools/createSushiPool.js similarity index 78% rename from scripts/fork/pools/createSushiPool.js rename to scripts/fork/mainnet/pools/createSushiPool.js index 103244a6..dae4493f 100644 --- a/scripts/fork/pools/createSushiPool.js +++ b/scripts/fork/mainnet/pools/createSushiPool.js @@ -1,4 +1,4 @@ -const { createAndRunYieldSourcePrizePool } = require('../helpers/createAndRunYieldSourcePrizePool') +const { createAndRunYieldSourcePrizePool } = require('../../helpers/createAndRunYieldSourcePrizePool') const hardhat = require('hardhat') const { SUSHI_HOLDER } = require('../constants') const { ethers } = hardhat diff --git a/scripts/fork/pools/createUSDTPool.js b/scripts/fork/mainnet/pools/createUSDTPool.js similarity index 97% rename from scripts/fork/pools/createUSDTPool.js rename to scripts/fork/mainnet/pools/createUSDTPool.js index 04ceec63..c7331771 100644 --- a/scripts/fork/pools/createUSDTPool.js +++ b/scripts/fork/mainnet/pools/createUSDTPool.js @@ -5,7 +5,7 @@ const { USDT_HOLDER } = require('../constants') const { getPrizePoolAddressFromBuilderTransaction, runPoolLifecycle -} = require('../helpers/runPoolLifecycle') +} = require('../../helpers/runPoolLifecycle') function dim() { console.log(chalk.dim.call(chalk, ...arguments)) diff --git a/scripts/fork/startAndCompleteAwards.js b/scripts/fork/mainnet/startAndCompleteAwards.js similarity index 100% rename from scripts/fork/startAndCompleteAwards.js rename to scripts/fork/mainnet/startAndCompleteAwards.js diff --git a/scripts/fork/swapDaiPoolToMW.js b/scripts/fork/mainnet/swapDaiPoolToMW.js similarity index 100% rename from scripts/fork/swapDaiPoolToMW.js rename to scripts/fork/mainnet/swapDaiPoolToMW.js diff --git a/scripts/fork/transferOwnershipToTimelock.js b/scripts/fork/mainnet/transferOwnershipToTimelock.js similarity index 100% rename from scripts/fork/transferOwnershipToTimelock.js rename to scripts/fork/mainnet/transferOwnershipToTimelock.js diff --git a/scripts/fork/updateSafeDrips.js b/scripts/fork/mainnet/updateSafeDrips.js similarity index 100% rename from scripts/fork/updateSafeDrips.js rename to scripts/fork/mainnet/updateSafeDrips.js diff --git a/scripts/fork/upgradeDaiPoolToMW.js b/scripts/fork/mainnet/upgradeDaiPoolToMW.js similarity index 100% rename from scripts/fork/upgradeDaiPoolToMW.js rename to scripts/fork/mainnet/upgradeDaiPoolToMW.js diff --git a/scripts/fork/usdtDeposit.js b/scripts/fork/mainnet/usdtDeposit.js similarity index 100% rename from scripts/fork/usdtDeposit.js rename to scripts/fork/mainnet/usdtDeposit.js diff --git a/scripts/fork/matic/constants.js b/scripts/fork/matic/constants.js new file mode 100644 index 00000000..1f278e3f --- /dev/null +++ b/scripts/fork/matic/constants.js @@ -0,0 +1,7 @@ +const DAI_HOLDER = '0x7A61A0Ed364E599Ae4748D1EbE74bf236Dd27B09' +const MATIC_HOLDER = '0x9B39e806Da554aCa2ccdb03E6E7b37ac6369ee7D' + +module.exports = { + DAI_HOLDER, + MATIC_HOLDER +} \ No newline at end of file diff --git a/scripts/fork/matic/distributeMatic.js b/scripts/fork/matic/distributeMatic.js new file mode 100644 index 00000000..dda1b560 --- /dev/null +++ b/scripts/fork/matic/distributeMatic.js @@ -0,0 +1,30 @@ +const chalk = require('chalk') +const hardhat = require('hardhat') +const { + MATIC_HOLDER, + DAI_HOLDER +} = require('./constants') + +async function run() { + const { ethers } = hardhat + const { provider } = ethers + + const maticHolder = await provider.getUncheckedSigner(MATIC_HOLDER) + + const recipients = { + ['DAI Holder']: DAI_HOLDER + } + + const keys = Object.keys(recipients) + + for (var i = 0; i < keys.length; i++) { + const name = keys[i] + const address = recipients[name] + console.log(chalk.dim(`Sending 10 Ether to ${name}...`)) + await maticHolder.sendTransaction({ to: address, value: ethers.utils.parseEther('10') }) + } + + console.log(chalk.green(`Done!`)) +} + +run() \ No newline at end of file diff --git a/scripts/fork/matic/impersonateAccounts.js b/scripts/fork/matic/impersonateAccounts.js new file mode 100644 index 00000000..2082ae2d --- /dev/null +++ b/scripts/fork/matic/impersonateAccounts.js @@ -0,0 +1,15 @@ +const chalk = require('chalk') +const hre = require("hardhat") + +const { + DAI_HOLDER, + MATIC_HOLDER +} = require('./constants') + +async function run(){ + await hre.ethers.provider.send("hardhat_impersonateAccount", ["0x0000000000000000000000000000000000000000"]) + await hre.ethers.provider.send("hardhat_impersonateAccount",[DAI_HOLDER]) + await hre.ethers.provider.send("hardhat_impersonateAccount",[MATIC_HOLDER]) + console.log(chalk.green('Impersonated accounts')) +} +run() diff --git a/scripts/fork/matic/pools/createADAIPool.js b/scripts/fork/matic/pools/createADAIPool.js new file mode 100644 index 00000000..895e3853 --- /dev/null +++ b/scripts/fork/matic/pools/createADAIPool.js @@ -0,0 +1,15 @@ +const { createAndRunYieldSourcePrizePool } = require('../../helpers/createAndRunYieldSourcePrizePool') +const hardhat = require('hardhat') +const { + DAI_HOLDER +} = require('../constants') +const { ethers } = hardhat + +async function run() { + const daiHolder = await ethers.provider.getUncheckedSigner(DAI_HOLDER) + const daiYieldSourceAddress = '0x379421d1e78eb2A2245FA1E8326f794101893129' + + await createAndRunYieldSourcePrizePool(daiHolder, daiYieldSourceAddress) +} + +run() diff --git a/scripts/setup_fork.sh b/scripts/setup_fork.sh deleted file mode 100755 index 25703db1..00000000 --- a/scripts/setup_fork.sh +++ /dev/null @@ -1,2 +0,0 @@ -yarn fork-run scripts/fork/impersonateAccounts.js -yarn fork-run scripts/fork/distributeEtherFromBinance.js \ No newline at end of file diff --git a/scripts/setup_mainnet_fork.sh b/scripts/setup_mainnet_fork.sh new file mode 100755 index 00000000..b58fc11b --- /dev/null +++ b/scripts/setup_mainnet_fork.sh @@ -0,0 +1,2 @@ +yarn fork-run scripts/fork/mainnet/impersonateAccounts.js +yarn fork-run scripts/fork/mainnet/distributeEtherFromBinance.js \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c00f96ab..61e53fd7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -734,10 +734,10 @@ resolved "https://registry.yarnpkg.com/@pooltogether/fixed-point/-/fixed-point-1.0.0-beta.2.tgz#d76a1e77f21833e9b680296d65526b0ffd7415d7" integrity sha512-aUw4R0Z2oM0AK3W4LIXyBaojTOzRRbhLDHX0egeuvxfjy4gBb6X66v81gI7Wngg/7O0y9QL/B8jWkUnAFzhTig== -"@pooltogether/pooltogether-rng-contracts@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@pooltogether/pooltogether-rng-contracts/-/pooltogether-rng-contracts-1.0.0.tgz#191d155dc960559cce06b7ec3b0f9ed2caed0f46" - integrity sha512-jQub/+qPLQwTFtbBCvvyIEqxJDEBEV/hgLKnuocBg2/GySWtHLz67WCy17bNn1hZw8nWIt8Ih8h+7iT2UJhtmQ== +"@pooltogether/pooltogether-rng-contracts@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@pooltogether/pooltogether-rng-contracts/-/pooltogether-rng-contracts-1.1.2.tgz#75e148d9dff9bd5b5bbe6bdd95c7a7a446b316b7" + integrity sha512-7S1qzpPdS/8SRfb3dXdQdiZllPFkOIYf7YYK3+aw+vH4/93T6lvkTu4/+ZAuNH+XbliipLYtTmrhy0YjDoFZRg== "@pooltogether/uniform-random-number@1.0.0-beta.1": version "1.0.0-beta.1" From f961dcb9148db5ac47f748b8a598b683499ff704 Mon Sep 17 00:00:00 2001 From: Brendan Asselstine Date: Mon, 19 Apr 2021 13:22:41 -0700 Subject: [PATCH 2/2] Added a matic setup script --- hardhat.networks.js | 2 +- scripts/fork/helpers/console.js | 13 +++++++ .../createAndRunYieldSourcePrizePool.js | 10 +----- scripts/fork/matic/supplyToADAIYieldSource.js | 35 +++++++++++++++++++ scripts/setup_matic_fork.sh | 2 ++ 5 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 scripts/fork/helpers/console.js create mode 100644 scripts/fork/matic/supplyToADAIYieldSource.js create mode 100755 scripts/setup_matic_fork.sh diff --git a/hardhat.networks.js b/hardhat.networks.js index b0086254..ef064f9d 100644 --- a/hardhat.networks.js +++ b/hardhat.networks.js @@ -26,7 +26,7 @@ if(process.env.MAINNET_FORK_ENABLED && process.env.ALCHEMY_URL) { chainId: 137, forking: { url: process.env.MATICVIGIL_URL, - blockNumber: 13478670 + blockNumber: 13481600 }, accounts: { mnemonic: process.env.HDWALLET_MNEMONIC diff --git a/scripts/fork/helpers/console.js b/scripts/fork/helpers/console.js new file mode 100644 index 00000000..271b52ad --- /dev/null +++ b/scripts/fork/helpers/console.js @@ -0,0 +1,13 @@ +const chalk = require("chalk") + +function dim() { + console.log(chalk.dim.call(chalk, ...arguments)) +} + +function green() { + console.log(chalk.green.call(chalk, ...arguments)) +} + +module.exports = { + dim, green +} \ No newline at end of file diff --git a/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js b/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js index 9654943d..868e7880 100644 --- a/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js +++ b/scripts/fork/helpers/createAndRunYieldSourcePrizePool.js @@ -1,19 +1,11 @@ const hardhat = require('hardhat') -const chalk = require("chalk") +const { dim, green } = require('./console') const { getPrizePoolAddressFromBuilderTransaction, runPoolLifecycle } = require('../helpers/runPoolLifecycle') -function dim() { - console.log(chalk.dim.call(chalk, ...arguments)) -} - -function green() { - console.log(chalk.green.call(chalk, ...arguments)) -} - const { ethers } = hardhat async function createAndRunYieldSourcePrizePool(signer, yieldSourceAddress) { diff --git a/scripts/fork/matic/supplyToADAIYieldSource.js b/scripts/fork/matic/supplyToADAIYieldSource.js new file mode 100644 index 00000000..ca191323 --- /dev/null +++ b/scripts/fork/matic/supplyToADAIYieldSource.js @@ -0,0 +1,35 @@ +const hardhat = require('hardhat') +const { + DAI_HOLDER +} = require('./constants') +const { ethers } = hardhat +const { dim, green } = require('../helpers/console') + +async function run() { + const daiHolder = await ethers.provider.getUncheckedSigner(DAI_HOLDER) + const daiYieldSourceAddress = '0x379421d1e78eb2A2245FA1E8326f794101893129' + + const dai = await ethers.getContractAt('IERC20Upgradeable', '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063', daiHolder) + const daiYieldSource = await ethers.getContractAt('IYieldSource', daiYieldSourceAddress, daiHolder) + + const amount = ethers.utils.parseEther('100') + + dim(`Approving dai spend of ${ethers.utils.formatEther(amount)} for token at address ${dai.address}...`) + + await dai.approve(daiYieldSource.address, amount) + + dim(`Supply token to yield source...`) + + dim(`Checking token...`) + + let token = await daiYieldSource.depositToken() + + green(`Deposit token is ${token}`) + + await daiYieldSource.supplyTokenTo(amount, daiHolder._address) + + green(`Done!`) + +} + +run() diff --git a/scripts/setup_matic_fork.sh b/scripts/setup_matic_fork.sh new file mode 100755 index 00000000..a5e1163c --- /dev/null +++ b/scripts/setup_matic_fork.sh @@ -0,0 +1,2 @@ +yarn fork-run scripts/fork/matic/impersonateAccounts.js +yarn fork-run scripts/fork/matic/distributeMatic.js \ No newline at end of file