Skip to content

Add MATICX as collateral in Polygon USDC market #1985

Add MATICX as collateral in Polygon USDC market

Add MATICX as collateral in Polygon USDC market #1985

GitHub Actions / Scenario Tests (fuji) succeeded Jul 13, 2023 in 1s

Scenario Tests (fuji) ✅

Tests passed successfully

✅ scenario-results.json

235 tests were completed in 24s with 1 passed, 0 failed and 234 skipped.

Test suite Passed Failed Skipped Time
plugins/scenario/Loader.ts 1✅ 11⚪ 2ms
scenario/AllowBySigScenario.ts 11⚪ 0ms
scenario/AllowScenario.ts 2⚪ 0ms
scenario/ApproveThisScenario.ts 3⚪ 0ms
scenario/BulkerScenario.ts 4⚪ 0ms
scenario/CometScenario.ts 3⚪ 0ms
scenario/ConfiguratorScenario.ts 3⚪ 0ms
scenario/CrossChainGovernanceScenario.ts 4⚪ 0ms
scenario/GovernanceScenario.ts 4⚪ 0ms
scenario/InterestRateScenario.ts 4⚪ 0ms
scenario/LiquidationBotScenario.ts 33⚪ 0ms
scenario/LiquidationScenario.ts 4⚪ 0ms
scenario/MainnetBulkerScenario.ts 4⚪ 0ms
scenario/PauseGuardianScenario.ts 3⚪ 0ms
scenario/RewardsScenario.ts 8⚪ 0ms
scenario/SupplyScenario.ts 44⚪ 0ms
scenario/TransferScenario.ts 46⚪ 0ms
scenario/WithdrawReservesScenario.ts 3⚪ 0ms
scenario/WithdrawScenario.ts 40⚪ 0ms

✅ plugins/scenario/Loader.ts

fuji
  ✅ add new asset maticx
  ⚪ 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
  ⚪ reverts if proxy is not upgraded by ProxyAdmin
  ⚪ transfer admin of configurator

✅ scenario/AllowBySigScenario.ts

fuji
  ⚪ 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

fuji
  ⚪ Comet#allow > allows a user to authorize a manager
  ⚪ Comet#allow > allows a user to rescind authorization

✅ scenario/ApproveThisScenario.ts

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ has assets
  ⚪ initializes governor correctly
  ⚪ requires upgrade

✅ scenario/ConfiguratorScenario.ts

fuji
  ⚪ add assets
  ⚪ reverts if configurator is not called by admin
  ⚪ upgrade governor

✅ scenario/CrossChainGovernanceScenario.ts

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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 > 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
  ⚪ LiquidationBot > reverts when price slippage is too high

✅ scenario/LiquidationScenario.ts

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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

fuji
  ⚪ 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