Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Base Mainnet cWETHv3 deploy and proposal #791

Merged
merged 15 commits into from
Aug 24, 2023

Proposal to initialize Base cWETHv3 market (#794)

5843600
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

Base Mainnet cWETHv3 deploy and proposal #791

Proposal to initialize Base cWETHv3 market (#794)
5843600
Select commit
Loading
Failed to load commit list.
GitHub Actions / Scenario Tests (goerli-weth) succeeded Aug 24, 2023 in 0s

Scenario Tests (goerli-weth) ✅

Tests passed successfully

✅ scenario-results.json

234 tests were completed in 371s with 193 passed, 0 failed and 41 skipped.

Test suite Passed Failed Skipped Time
plugins/scenario/Loader.ts 41⚪ 0ms
scenario/AllowBySigScenario.ts 11✅ 4s
scenario/AllowScenario.ts 2✅ 629ms
scenario/ApproveThisScenario.ts 3✅ 1s
scenario/BulkerScenario.ts 4✅ 13s
scenario/CometScenario.ts 3✅ 325ms
scenario/ConfiguratorScenario.ts 3✅ 3s
scenario/CrossChainGovernanceScenario.ts 4✅ 3ms
scenario/GovernanceScenario.ts 4✅ 15s
scenario/InterestRateScenario.ts 4✅ 25s
scenario/LiquidationBotScenario.ts 3✅ 4ms
scenario/LiquidationScenario.ts 4✅ 16s
scenario/MainnetBulkerScenario.ts 4✅ 10ms
scenario/PauseGuardianScenario.ts 3✅ 1s
scenario/RewardsScenario.ts 8✅ 10s
scenario/SupplyScenario.ts 44✅ 12s
scenario/TransferScenario.ts 46✅ 35s
scenario/WithdrawReservesScenario.ts 3✅ 928ms
scenario/WithdrawScenario.ts 40✅ 20s

✅ plugins/scenario/Loader.ts

goerli-weth
  ⚪ Comet#interestRate > when utilization is 50%
  ⚪ Comet#liquidation > governor can withdraw collateral after successful liquidation
  ⚪ Comet#withdraw reverts if asset is not supported
  ⚪ Comet#withdraw reverts if not enough asset in protocol
  ⚪ Compound v2 > allows a user to mint & redeem cDAI
  ⚪ Compound v2 > allows a user to mint & redeem cUSDC
  ⚪ Compound v2 > allows a user to repay, borrow, repay cETH
  ⚪ Compound v2 > allows a user to repay, borrow, repay cWBTC2
  ⚪ fallbacks to implementation if called by non-admin
  ⚪ LiquidationBot > liquidates an underwater position of $asset0 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset1 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset10 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset11 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset12 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset13 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset14 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset2 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset3 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset4 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset5 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset6 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset7 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset8 with no maxAmountToPurchase
  ⚪ LiquidationBot > liquidates an underwater position of $asset9 with no maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset0, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset1, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset10, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset11, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset12, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset13, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset14, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset2, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset3, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset4, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset5, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset6, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset7, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset8, by setting maxAmountToPurchase
  ⚪ LiquidationBot > partially liquidates large position of $asset9, by setting maxAmountToPurchase
  ⚪ reverts if proxy is not upgraded by ProxyAdmin
  ⚪ transfer admin of configurator

✅ scenario/AllowBySigScenario.ts

goerli-weth
  ✅ Comet#allowBySig > allows a user to authorize a manager by signature
  ✅ Comet#allowBySig > fails if expiry argument is altered
  ✅ Comet#allowBySig > fails if isAllowed argument is altered
  ✅ Comet#allowBySig > fails if manager argument is altered
  ✅ Comet#allowBySig > fails if nonce argument is altered
  ✅ Comet#allowBySig > fails if owner argument is altered
  ✅ Comet#allowBySig fails for invalid expiry
  ✅ Comet#allowBySig fails if s is too high
  ✅ Comet#allowBySig fails if signature contains invalid nonce
  ✅ Comet#allowBySig fails if v not in {27,28}
  ✅ Comet#allowBySig rejects a repeated message

✅ scenario/AllowScenario.ts

goerli-weth
  ✅ Comet#allow > allows a user to authorize a manager
  ✅ Comet#allow > allows a user to rescind authorization

✅ scenario/ApproveThisScenario.ts

goerli-weth
  ✅ Comet#approveThis > allows governor to authorize and rescind authorization for Comet ERC20
  ✅ Comet#approveThis > allows governor to authorize and rescind authorization for non-Comet ERC20
  ✅ Comet#approveThis > reverts if not called by governor

✅ scenario/BulkerScenario.ts

goerli-weth
  ✅ Comet#bulker > (non-WETH base) all actions in one txn
  ✅ Comet#bulker > (non-WETH base) all non-reward actions in one txn
  ✅ Comet#bulker > (WETH base) all actions in one txn
  ✅ Comet#bulker > (WETH base) all non-reward actions in one txn

✅ scenario/CometScenario.ts

goerli-weth
  ✅ has assets
  ✅ initializes governor correctly
  ✅ requires upgrade

✅ scenario/ConfiguratorScenario.ts

goerli-weth
  ✅ add assets
  ✅ reverts if configurator is not called by admin
  ✅ upgrade governor

✅ scenario/CrossChainGovernanceScenario.ts

goerli-weth
  ✅ execute cross-chain governance proposal
  ✅ upgrade Arbitrum governance contracts and ensure they work properly
  ✅ upgrade Linea governance contracts and ensure they work properly
  ✅ upgrade Polygon governance contracts and ensure they work properly

✅ scenario/GovernanceScenario.ts

goerli-weth
  ✅ add new asset
  ✅ upgrade Comet implementation and call new function
  ✅ upgrade Comet implementation and initialize
  ✅ upgrade Comet implementation and initialize using deployUpgradeToAndCall

✅ scenario/InterestRateScenario.ts

goerli-weth
  ✅ Comet#interestRate > above kink rates using hypothetical configuration constants
  ✅ Comet#interestRate > below kink rates using hypothetical configuration constants
  ✅ Comet#interestRate > rates using fuzzed configuration constants
  ✅ Comet#interestRate > rates using on-chain configuration constants

✅ scenario/LiquidationBotScenario.ts

goerli-weth
  ✅ LiquidationBot > absorbs, but does not attempt to purchase collateral when maxAmountToPurchase=0
  ✅ LiquidationBot > absorbs, but does not attempt to purchase collateral when value is beneath liquidationThreshold
  ✅ LiquidationBot > reverts when price slippage is too high

✅ scenario/LiquidationScenario.ts

goerli-weth
  ✅ Comet#liquidation > allows liquidation of underwater positions
  ✅ Comet#liquidation > isLiquidatable=true for underwater position
  ✅ Comet#liquidation > prevents liquidation when absorb is paused
  ✅ Comet#liquidation > user can end up with a minted supply

✅ scenario/MainnetBulkerScenario.ts

goerli-weth
  ✅ MainnetBulker > it reverts when passed an action that does not exist
  ✅ MainnetBulker > unwraps wstETH before withdrawing
  ✅ MainnetBulker > withdraw max stETH leaves no dust
  ✅ MainnetBulker > wraps stETH before supplying

✅ scenario/PauseGuardianScenario.ts

goerli-weth
  ✅ Comet#pause > governor pauses market actions
  ✅ Comet#pause > pause guardian pauses market actions
  ✅ CometRevertCustom#pause > reverts if not called by governor or pause guardian

✅ scenario/RewardsScenario.ts

goerli-weth
  ✅ Comet#rewards > can claim borrow rewards for self
  ✅ Comet#rewards > can claim supply rewards for self
  ✅ Comet#rewards > can claim supply rewards on scaling rewards contract with multiplier of 10000000000000000
  ✅ Comet#rewards > can claim supply rewards on scaling rewards contract with multiplier of 1000000000000000000
  ✅ Comet#rewards > can claim supply rewards on scaling rewards contract with multiplier of 10000000000000000000
  ✅ Comet#rewards > can claim supply rewards on scaling rewards contract with multiplier of 3550000000000000
  ✅ Comet#rewards > can claim supply rewards on scaling rewards contract with multiplier of 55000000000000000000
  ✅ Comet#rewards > manager can claimTo supply rewards from a managed account

✅ scenario/SupplyScenario.ts

goerli-weth
  ✅ Comet#supply > base asset
  ✅ Comet#supply > collateral asset 0
  ✅ Comet#supply > collateral asset 1
  ✅ Comet#supply > collateral asset 10
  ✅ Comet#supply > collateral asset 11
  ✅ Comet#supply > collateral asset 12
  ✅ Comet#supply > collateral asset 13
  ✅ Comet#supply > collateral asset 14
  ✅ Comet#supply > collateral asset 2
  ✅ Comet#supply > collateral asset 3
  ✅ Comet#supply > collateral asset 4
  ✅ Comet#supply > collateral asset 5
  ✅ Comet#supply > collateral asset 6
  ✅ Comet#supply > collateral asset 7
  ✅ Comet#supply > collateral asset 8
  ✅ Comet#supply > collateral asset 9
  ✅ Comet#supply > repay borrow
  ✅ Comet#supply reverts if asset is not supported
  ✅ Comet#supply reverts if not enough ERC20 approval
  ✅ Comet#supply reverts if not enough ERC20 balance
  ✅ Comet#supply reverts when supply is paused
  ✅ Comet#supplyFrom > base asset
  ✅ Comet#supplyFrom > collateral asset 0
  ✅ Comet#supplyFrom > collateral asset 1
  ✅ Comet#supplyFrom > collateral asset 10
  ✅ Comet#supplyFrom > collateral asset 11
  ✅ Comet#supplyFrom > collateral asset 12
  ✅ Comet#supplyFrom > collateral asset 13
  ✅ Comet#supplyFrom > collateral asset 14
  ✅ Comet#supplyFrom > collateral asset 2
  ✅ Comet#supplyFrom > collateral asset 3
  ✅ Comet#supplyFrom > collateral asset 4
  ✅ Comet#supplyFrom > collateral asset 5
  ✅ Comet#supplyFrom > collateral asset 6
  ✅ Comet#supplyFrom > collateral asset 7
  ✅ Comet#supplyFrom > collateral asset 8
  ✅ Comet#supplyFrom > collateral asset 9
  ✅ Comet#supplyFrom > repay borrow
  ✅ Comet#supplyFrom reverts if not enough ERC20 base approval
  ✅ Comet#supplyFrom reverts if not enough ERC20 base balance
  ✅ Comet#supplyFrom reverts if not enough ERC20 collateral approval
  ✅ Comet#supplyFrom reverts if not enough ERC20 collateral balance
  ✅ Comet#supplyFrom reverts if operator not given permission
  ✅ Comet#supplyFrom reverts when supply is paused

✅ scenario/TransferScenario.ts

goerli-weth
  ✅ Comet#transfer > base asset, enough balance
  ✅ Comet#transfer > base asset, total and user balances are summed up properly
  ✅ Comet#transfer > collateral asset 0, enough balance
  ✅ Comet#transfer > collateral asset 1, enough balance
  ✅ Comet#transfer > collateral asset 10, enough balance
  ✅ Comet#transfer > collateral asset 11, enough balance
  ✅ Comet#transfer > collateral asset 12, enough balance
  ✅ Comet#transfer > collateral asset 13, enough balance
  ✅ Comet#transfer > collateral asset 14, enough balance
  ✅ Comet#transfer > collateral asset 2, enough balance
  ✅ Comet#transfer > collateral asset 3, enough balance
  ✅ Comet#transfer > collateral asset 4, enough balance
  ✅ Comet#transfer > collateral asset 5, enough balance
  ✅ Comet#transfer > collateral asset 6, enough balance
  ✅ Comet#transfer > collateral asset 7, enough balance
  ✅ Comet#transfer > collateral asset 8, enough balance
  ✅ Comet#transfer > collateral asset 9, enough balance
  ✅ Comet#transfer > partial withdraw / borrow base to partial repay / supply
  ✅ Comet#transfer base reverts if undercollateralized
  ✅ Comet#transfer collateral reverts if undercollateralized
  ✅ Comet#transfer disallows self-transfer of base
  ✅ Comet#transfer disallows self-transfer of collateral
  ✅ Comet#transfer reverts if borrow is less than minimum borrow
  ✅ Comet#transfer reverts when transfer is paused
  ✅ Comet#transferFrom > collateral asset 0, enough balance
  ✅ Comet#transferFrom > collateral asset 1, enough balance
  ✅ Comet#transferFrom > collateral asset 10, enough balance
  ✅ Comet#transferFrom > collateral asset 11, enough balance
  ✅ Comet#transferFrom > collateral asset 12, enough balance
  ✅ Comet#transferFrom > collateral asset 13, enough balance
  ✅ Comet#transferFrom > collateral asset 14, enough balance
  ✅ Comet#transferFrom > collateral asset 2, enough balance
  ✅ Comet#transferFrom > collateral asset 3, enough balance
  ✅ Comet#transferFrom > collateral asset 4, enough balance
  ✅ Comet#transferFrom > collateral asset 5, enough balance
  ✅ Comet#transferFrom > collateral asset 6, enough balance
  ✅ Comet#transferFrom > collateral asset 7, enough balance
  ✅ Comet#transferFrom > collateral asset 8, enough balance
  ✅ Comet#transferFrom > collateral asset 9, enough balance
  ✅ Comet#transferFrom > withdraw to repay
  ✅ Comet#transferFrom base reverts if undercollateralized
  ✅ Comet#transferFrom collateral reverts if undercollateralized
  ✅ Comet#transferFrom disallows self-transfer of base
  ✅ Comet#transferFrom disallows self-transfer of collateral
  ✅ Comet#transferFrom reverts if operator not given permission
  ✅ Comet#transferFrom reverts when transfer is paused

✅ scenario/WithdrawReservesScenario.ts

goerli-weth
  ✅ Comet#withdrawReserves > governor withdraws reserves
  ✅ Comet#withdrawReserves > reverts if not called by governor
  ✅ Comet#withdrawReserves > reverts if not enough reserves are owned by protocol

✅ scenario/WithdrawScenario.ts

goerli-weth
  ✅ Comet#withdraw > base asset
  ✅ Comet#withdraw > borrow base
  ✅ Comet#withdraw > collateral asset 0
  ✅ Comet#withdraw > collateral asset 1
  ✅ Comet#withdraw > collateral asset 10
  ✅ Comet#withdraw > collateral asset 11
  ✅ Comet#withdraw > collateral asset 12
  ✅ Comet#withdraw > collateral asset 13
  ✅ Comet#withdraw > collateral asset 14
  ✅ Comet#withdraw > collateral asset 2
  ✅ Comet#withdraw > collateral asset 3
  ✅ Comet#withdraw > collateral asset 4
  ✅ Comet#withdraw > collateral asset 5
  ✅ Comet#withdraw > collateral asset 6
  ✅ Comet#withdraw > collateral asset 7
  ✅ Comet#withdraw > collateral asset 8
  ✅ Comet#withdraw > collateral asset 9
  ✅ Comet#withdraw base reverts if position is undercollateralized
  ✅ Comet#withdraw collateral reverts if position is undercollateralized
  ✅ Comet#withdraw reverts if borrow is less than minimum borrow
  ✅ Comet#withdraw reverts when withdraw is paused
  ✅ Comet#withdrawFrom > base asset
  ✅ Comet#withdrawFrom > borrow base
  ✅ Comet#withdrawFrom > collateral asset 0
  ✅ Comet#withdrawFrom > collateral asset 1
  ✅ Comet#withdrawFrom > collateral asset 10
  ✅ Comet#withdrawFrom > collateral asset 11
  ✅ Comet#withdrawFrom > collateral asset 12
  ✅ Comet#withdrawFrom > collateral asset 13
  ✅ Comet#withdrawFrom > collateral asset 14
  ✅ Comet#withdrawFrom > collateral asset 2
  ✅ Comet#withdrawFrom > collateral asset 3
  ✅ Comet#withdrawFrom > collateral asset 4
  ✅ Comet#withdrawFrom > collateral asset 5
  ✅ Comet#withdrawFrom > collateral asset 6
  ✅ Comet#withdrawFrom > collateral asset 7
  ✅ Comet#withdrawFrom > collateral asset 8
  ✅ Comet#withdrawFrom > collateral asset 9
  ✅ Comet#withdrawFrom reverts if operator not given permission
  ✅ Comet#withdrawFrom reverts when withdraw is paused