Skip to content

Commit

Permalink
Merge pull request #7 from pooltogether/pool-2826-redeploy-on-sepolia
Browse files Browse the repository at this point in the history
Pool 2826 redeploy on sepolia
  • Loading branch information
chuckbergeron authored Jun 27, 2023
2 parents b29b95e + 96e9675 commit 9a8a8cd
Show file tree
Hide file tree
Showing 15 changed files with 2,868 additions and 1,180 deletions.
3,852 changes: 2,758 additions & 1,094 deletions deployments/ethSepolia/contracts.json

Large diffs are not rendered by default.

30 changes: 15 additions & 15 deletions deployments/ethSepolia/vaults.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,101 +8,101 @@
"minor": 0,
"patch": 0
},
"timestamp": "2023-06-02T18:41:11.447Z",
"timestamp": "2023-06-24T01:40:07.082Z",
"tokens": [
{
"chainId": 11155111,
"address": "0x0C393C363bAE8Eebe6E1Afe4716e317CbD2E9949",
"address": "0x06B36307e4dA41F0C42efb7d7AbC02Df0c8b5c49",
"name": "PoolTogether Dai Stablecoin Low Yield Prize Token",
"decimals": 18,
"symbol": "PTDAILYT",
"extensions": {
"underlyingAsset": {
"address": "0x4a798649F6AA23D6a3a1cab65fc0a8fa772E0a40",
"address": "0xB20Ff9fe4065CC1494dFa3A273A527A05871074F",
"symbol": "DAI",
"name": "Dai Stablecoin"
}
}
},
{
"chainId": 11155111,
"address": "0x171df7a2D8547322de5BA27FD9856B04620A3562",
"address": "0x041a898Bc37129d2D2232163c3374f4077255F74",
"name": "PoolTogether Dai Stablecoin High Yield Prize Token",
"decimals": 18,
"symbol": "PTDAIHYT",
"extensions": {
"underlyingAsset": {
"address": "0x4a798649F6AA23D6a3a1cab65fc0a8fa772E0a40",
"address": "0xB20Ff9fe4065CC1494dFa3A273A527A05871074F",
"symbol": "DAI",
"name": "Dai Stablecoin"
}
}
},
{
"chainId": 11155111,
"address": "0xe288828FFb4087F633E17D4715103648266C0cdb",
"address": "0x0771Ba4b988c66afb02f9AdF21F6E3A14d33C24E",
"name": "PoolTogether USD Coin Low Yield Prize Token",
"decimals": 6,
"symbol": "PTUSDCLYT",
"extensions": {
"underlyingAsset": {
"address": "0x7A8f1413B44F7346EAb36c4793Bd54148Ca916A5",
"address": "0x59D6b2E784f45568a76b9627De97e06Fc237DA83",
"symbol": "USDC",
"name": "USD Coin"
}
}
},
{
"chainId": 11155111,
"address": "0x0B87bF0822AFAecDEb367cfAaCcf40c0e895F3AD",
"address": "0x0Ec780bE0191f8A364FAccdE91D13BE6F96632bE",
"name": "PoolTogether USD Coin High Yield Prize Token",
"decimals": 6,
"symbol": "PTUSDCHYT",
"extensions": {
"underlyingAsset": {
"address": "0x7A8f1413B44F7346EAb36c4793Bd54148Ca916A5",
"address": "0x59D6b2E784f45568a76b9627De97e06Fc237DA83",
"symbol": "USDC",
"name": "USD Coin"
}
}
},
{
"chainId": 11155111,
"address": "0xebC5c1257A6DB56d2c3C9466A5271C5Be4FB1397",
"address": "0x8FaF98698e4fF29149a8A9D06Db20E3509F3754b",
"name": "PoolTogether Gemini dollar Prize Token",
"decimals": 2,
"symbol": "PTGUSDT",
"extensions": {
"underlyingAsset": {
"address": "0x6EBa7deCd74D8327FA83b7Edc6Cb1dEADDfD8EFA",
"address": "0x73b3f9fecf92b4f0Eb6a20c977cBb30964858fD7",
"symbol": "GUSD",
"name": "Gemini dollar"
}
}
},
{
"chainId": 11155111,
"address": "0x7Ea2e76587962c526B60492bd8342AAe859f1219",
"address": "0xB9c16115DA139a0A6bF2e6d2418a7987cf6DCb83",
"name": "PoolTogether Wrapped BTC Prize Token",
"decimals": 8,
"symbol": "PTWBTCT",
"extensions": {
"underlyingAsset": {
"address": "0xbdaAB70E7d8767e94680AD2D27B503daE01447A4",
"address": "0xf78De71CF358a92AeE3370A7a3B743bF63c257d4",
"symbol": "WBTC",
"name": "Wrapped BTC"
}
}
},
{
"chainId": 11155111,
"address": "0xD6D82beB1243A254A61ae4B3a1936Da962F947b7",
"address": "0x21b8f4c7E92a37B893BE39b4Ec447459fa5031C6",
"name": "PoolTogether Wrapped Ether Prize Token",
"decimals": 18,
"symbol": "PTWETHT",
"extensions": {
"underlyingAsset": {
"address": "0x07056BA1bD5D71AA743F33Aa3A7BB76f08834873",
"address": "0x62739A657d3bB724694b46B35795532EC9B42b47",
"symbol": "WETH",
"name": "Wrapped Ether"
}
Expand Down
2 changes: 1 addition & 1 deletion lib/v5-draw-beacon
37 changes: 20 additions & 17 deletions script/deploy/DeployPool.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ pragma solidity 0.8.17;

import { Script } from "forge-std/Script.sol";

import { PrizePool, SD59x18 } from "v5-prize-pool/PrizePool.sol";
import { PrizePool, ConstructorParams, SD59x18 } from "v5-prize-pool/PrizePool.sol";
import { ud2x18 } from "prb-math/UD2x18.sol";
import { sd1x18 } from "prb-math/SD1x18.sol";
import { TwabController } from "v5-twab-controller/TwabController.sol";
import { Claimer, IVault } from "v5-vrgda-claimer/Claimer.sol";
import { Claimer } from "v5-vrgda-claimer/Claimer.sol";
import { ILiquidationSource } from "v5-liquidator/interfaces/ILiquidationSource.sol";
import { LiquidationPair } from "v5-liquidator/LiquidationPair.sol";
import { LiquidationPairFactory } from "v5-liquidator/LiquidationPairFactory.sol";
Expand All @@ -26,32 +26,35 @@ contract DeployPool is Helpers {
vm.startBroadcast(vm.envUint("PRIVATE_KEY"));

ERC20Mintable prizeToken = _getToken("POOL", _tokenDeployPath);
TwabController twabController = new TwabController();
TwabController twabController = new TwabController(1 days, uint32(block.timestamp));

PrizePool prizePool = new PrizePool(
prizeToken,
twabController,
uint32(7), // grand prize should occur every 3.5 days
DRAW_PERIOD_SECONDS,
uint64(block.timestamp), // drawStartedAt
uint8(2), // minimum number of tiers
100,
10,
10,
ud2x18(0.9e18), // claim threshold of 90%
sd1x18(0.9e18) // alpha
ConstructorParams(
prizeToken,
twabController,
address(0),
uint16(7), // grand prize should occur every 3.5 days
DRAW_PERIOD_SECONDS,
uint64(block.timestamp), // drawStartedAt
uint8(3), // minimum number of tiers
100,
10,
10,
ud2x18(0.9e18), // claim threshold of 90%
sd1x18(0.9e18) // alpha
)
);

if (block.chainid == 5) {
prizePool.setManager(GOERLI_DEFENDER_ADDRESS);
prizePool.setDrawManager(GOERLI_DEFENDER_ADDRESS);
}

if (block.chainid == 11155111) {
prizePool.setManager(SEPOLIA_DEFENDER_ADDRESS);
prizePool.setDrawManager(SEPOLIA_DEFENDER_ADDRESS);
}

if (block.chainid == 80001) {
prizePool.setManager(MUMBAI_DEFENDER_ADDRESS);
prizePool.setDrawManager(MUMBAI_DEFENDER_ADDRESS);
}

new Claimer(prizePool, 0.0001e18, 1000e18, DRAW_PERIOD_SECONDS, ud2x18(0.5e18));
Expand Down
2 changes: 1 addition & 1 deletion script/deploy/DeployVault.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { PrizePool, SD59x18 } from "v5-prize-pool/PrizePool.sol";
import { ud2x18 } from "prb-math/UD2x18.sol";
import { sd1x18 } from "prb-math/SD1x18.sol";
import { TwabController } from "v5-twab-controller/TwabController.sol";
import { Claimer, IVault } from "v5-vrgda-claimer/Claimer.sol";
import { Claimer } from "v5-vrgda-claimer/Claimer.sol";
import { ILiquidationSource } from "v5-liquidator/interfaces/ILiquidationSource.sol";
import { LiquidationPair } from "v5-liquidator/LiquidationPair.sol";
import { LiquidationPairFactory } from "v5-liquidator/LiquidationPairFactory.sol";
Expand Down
21 changes: 12 additions & 9 deletions test/fork/morpho/Deposit.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ contract DepositMorphoForkTest is ForkBaseSetup, Helpers {
uint256 _shares = _deposit(underlyingAsset, vault, _amount, alice);

assertEq(vault.balanceOf(alice), _shares);
assertEq(vault.convertToAssets(vault.balanceOf(alice)), _amount);
assertApproxEqAbs(vault.convertToAssets(vault.balanceOf(alice)), _amount, 1000); // approximate to cover rounding in `convertToAssets` function

assertEq(twabController.balanceOf(address(vault), alice), _amount);
assertEq(twabController.delegateBalanceOf(address(vault), alice), _amount);
Expand All @@ -48,9 +48,10 @@ contract DepositMorphoForkTest is ForkBaseSetup, Helpers {
assertApproxEqAbs(aToken.balanceOf(morphoPoolAddress), _aTokenBalanceBefore + _amount, 1);
} else {
// Part of the USDC variable debt is repayed
assertEq(
assertApproxEqAbs(
variableDebtToken.balanceOf(morphoPoolAddress),
_variableDebtTokenBalanceBefore - _amount
_variableDebtTokenBalanceBefore - _amount,
1
);
}

Expand All @@ -71,7 +72,7 @@ contract DepositMorphoForkTest is ForkBaseSetup, Helpers {
uint256 _shares = _sponsor(underlyingAsset, vault, _amount, alice);

assertEq(vault.balanceOf(alice), _shares);
assertEq(vault.convertToAssets(vault.balanceOf(alice)), _amount);
assertApproxEqAbs(vault.convertToAssets(vault.balanceOf(alice)), _amount, 1000); // approximate to cover rounding in `convertToAssets` function

assertEq(twabController.balanceOf(address(vault), alice), _amount);
assertEq(twabController.delegateBalanceOf(address(vault), alice), 0);
Expand All @@ -83,9 +84,10 @@ contract DepositMorphoForkTest is ForkBaseSetup, Helpers {
assertApproxEqAbs(aToken.balanceOf(morphoPoolAddress), _aTokenBalanceBefore + _amount, 1);
} else {
// Part of the USDC variable debt is repayed
assertEq(
assertApproxEqAbs(
variableDebtToken.balanceOf(morphoPoolAddress),
_variableDebtTokenBalanceBefore - _amount
_variableDebtTokenBalanceBefore - _amount,
1
);
}

Expand All @@ -108,7 +110,7 @@ contract DepositMorphoForkTest is ForkBaseSetup, Helpers {
twabController.delegate(address(vault), bob);

assertEq(vault.balanceOf(alice), _shares);
assertEq(vault.convertToAssets(vault.balanceOf(alice)), _amount);
assertApproxEqAbs(vault.convertToAssets(vault.balanceOf(alice)), _amount, 1000); // approximate to cover rounding in `convertToAssets` function

assertEq(twabController.balanceOf(address(vault), alice), _amount);
assertEq(twabController.delegateBalanceOf(address(vault), alice), 0);
Expand All @@ -120,9 +122,10 @@ contract DepositMorphoForkTest is ForkBaseSetup, Helpers {
assertApproxEqAbs(aToken.balanceOf(morphoPoolAddress), _aTokenBalanceBefore + _amount, 1);
} else {
// Part of the USDC variable debt is repayed
assertEq(
assertApproxEqAbs(
variableDebtToken.balanceOf(morphoPoolAddress),
_variableDebtTokenBalanceBefore - _amount
_variableDebtTokenBalanceBefore - _amount,
1
);
}

Expand Down
11 changes: 7 additions & 4 deletions test/integration/Claim.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { ERC20Mock } from "openzeppelin/mocks/ERC20Mock.sol";

import { AlreadyClaimedPrize } from "v5-prize-pool/PrizePool.sol";

import { IntegrationBaseSetup, IVault } from "test/utils/IntegrationBaseSetup.t.sol";
import { IntegrationBaseSetup } from "test/utils/IntegrationBaseSetup.t.sol";
import { Helpers } from "test/utils/Helpers.t.sol";

contract ClaimIntegrationTest is IntegrationBaseSetup, Helpers {
Expand Down Expand Up @@ -45,11 +45,14 @@ contract ClaimIntegrationTest is IntegrationBaseSetup, Helpers {
uint8[] memory _tiers = new uint8[](1);
_tiers[0] = _tier;

uint256 _prizeSize = prizePool.calculatePrizeSize(_tier);
uint256 _prizeSize = prizePool.getTierPrizeSize(_tier);
uint256 _prizePoolBalanceBeforeClaim = prizeToken.balanceOf(address(prizePool));
uint256 _alicePrizeTokenBalanceBeforeClaim = prizeToken.balanceOf(alice);

uint256 _claimFees = _claim(claimer, vault, prizePool, alice, _tiers);
uint32[] memory _prizeIndices = new uint32[](1);
_prizeIndices[0] = 0;

uint256 _claimFees = _claim(claimer, vault, prizePool, alice, _prizeIndices, _tiers);

assertEq(
prizeToken.balanceOf(alice),
Expand All @@ -62,6 +65,6 @@ contract ClaimIntegrationTest is IntegrationBaseSetup, Helpers {
);

// Fails here with the error AlreadyClaimedPrize
_claim(claimer, vault, prizePool, alice, _tiers);
_claim(claimer, vault, prizePool, alice, _prizeIndices, _tiers);
}
}
31 changes: 17 additions & 14 deletions test/utils/ForkBaseSetup.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import "forge-std/Test.sol";
import { IERC20, IERC4626 } from "openzeppelin/token/ERC20/extensions/ERC4626.sol";

import { DrawBeacon, RNGInterface } from "v5-draw-beacon/DrawBeacon.sol";
import { PrizePool, SD59x18 } from "v5-prize-pool/PrizePool.sol";
import { PrizePool, ConstructorParams, SD59x18 } from "v5-prize-pool/PrizePool.sol";
import { ud2x18 } from "prb-math/UD2x18.sol";
import { sd1x18 } from "prb-math/SD1x18.sol";
import { TwabController } from "v5-twab-controller/TwabController.sol";
import { Claimer, IVault } from "v5-vrgda-claimer/Claimer.sol";
import { Claimer } from "v5-vrgda-claimer/Claimer.sol";
import { ILiquidationSource } from "v5-liquidator/interfaces/ILiquidationSource.sol";
import { LiquidationPair } from "v5-liquidator/LiquidationPair.sol";
import { LiquidationPairFactory } from "v5-liquidator/LiquidationPairFactory.sol";
Expand Down Expand Up @@ -74,22 +74,25 @@ contract ForkBaseSetup is Test {
prizeTokenAddress = address(0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e); // POOL token on Ethereum
prizeToken = IERC20(prizeTokenAddress);

twabController = new TwabController();
twabController = new TwabController(1 days, uint32(block.timestamp));

uint64 drawStartsAt = uint64(block.timestamp);

prizePool = new PrizePool(
prizeToken,
twabController,
uint32(365), // grand prize should occur once a year
drawPeriodSeconds,
drawStartsAt,
uint8(2), // minimum number of tiers
100,
10,
10,
ud2x18(0.9e18), // claim threshold of 90%
sd1x18(0.9e18) // alpha
ConstructorParams(
prizeToken,
twabController,
address(0),
uint16(365), // grand prize should occur once a year
drawPeriodSeconds,
drawStartsAt,
uint8(3), // minimum number of tiers
100,
10,
10,
ud2x18(0.9e18), // claim threshold of 90%
sd1x18(0.9e18) // alpha
)
);

drawBeacon = new DrawBeacon(
Expand Down
Loading

0 comments on commit 9a8a8cd

Please sign in to comment.