Deploy Arbitrum goerli for usdc native #1976
GitHub Actions / Unit Tests
succeeded
Jul 12, 2023 in 1s
Unit Tests ✅
✅ test-results.json
817 tests were completed in 890s with 812 passed, 0 failed and 5 skipped.
✅ plugins/deployment_manager/test/AliasesTest.ts
Aliases
✅ gets and sets aliases
✅ plugins/deployment_manager/test/CacheTest.ts
Cache
✅ read and store values in-memory
✅ read and store values in-memory rel
✅ read and store values to disk
✅ read and store values to disk rel
Cache getFilePath
✅ returns proper rel path
Cache map
✅ read and store values in-memory rel
✅ plugins/deployment_manager/test/ContractMapTest.ts
ContractMap storeBuildFile/getBuildFile
✅ gets what it stores
✅ stores deploys in the right place
✅ plugins/deployment_manager/test/DeploymentManagerTest.ts
DeploymentManager _deployBuild
✅ should deployBuild succesfully
DeploymentManager contract
✅ should get contract succesfully
DeploymentManager contracts
✅ should get contracts succesfully
DeploymentManager deploy
✅ should deploy succesfully
DeploymentManager generateMigration
✅ should generate expected migration
DeploymentManager import
⚪ should import succesfully
DeploymentManager putAlias
✅ should update contract cache
DeploymentManager spider
✅ should spider succesfully
DeploymentManager storeArtifact & readArtifact
✅ should store and retrieve a given artifact
DeploymentManager verifyContracts
✅ should verify contracts successfully
Import
✅ imports from Etherscan
✅ loads from cache
✅ stores in cache
MigrationTemplate
✅ should fail if already exists
✅ should write to cache
✅ test a simple template
Verify via artifacts
✅ verify from artifacts [success]
Verify via buildfile
✅ verify from build file
✅ plugins/deployment_manager/test/DeployTest.ts
Deploy
✅ deploy
✅ deployBuild
✅ plugins/deployment_manager/test/EnactedTest.ts
Enacted
✅ handles existing enacted
✅ handles existing enacted with trailing comment
✅ handles existing enacted without trailing comma
✅ handles existing enacted without trailing comma with trailing comment
✅ handles no trailing comma
✅ writes enacted to migration
✅ plugins/deployment_manager/test/MigrationTest.ts
Migration
✅ loads a simple migration
✅ returns proper artifact file spec
✅ test a simple migration
✅ plugins/deployment_manager/test/RelationConfigTest.ts
RelationConfig
✅ gets relations config from base and rel
RelationConfig aliasTemplateKey
✅ returns alias template
RelationConfig getFieldKey
✅ simple alias
✅ simple alias config
✅ simple getter
RelationConfig readAlias
✅ simple alias
✅ simple dot-alias
✅ simple fn
RelationConfig readField
✅ fn call multi
✅ fn call single
✅ simple key multi
✅ simple key single
✅ slot key
✅ plugins/deployment_manager/test/RootsTest.ts
Roots
✅ gets and sets roots
✅ plugins/deployment_manager/test/SpiderTest.ts
Spider
✅ runs valid spider
✅ plugins/deployment_manager/test/VerifyArgsTest.ts
VerifyArgs
✅ gets, sets, and deletes verify args
✅ test/absorb-test.ts
absorb
✅ absorbs 1 account and pays out the absorber
✅ absorbs 2 accounts and pays out the absorber
✅ absorbs 3 accounts with collateral and pays out the absorber
✅ absorbs an account with more than enough collateral to still cover debt
✅ reverts if absorb is paused
✅ reverts if an account is not underwater
⚪ reverts if collateral asset value overflows base balance
✅ reverts if total borrows underflows
✅ updates assetsIn for liquidated account
✅ test/accrue-test.ts
accrue
✅ accrue initially succeeds and has the right parameters
✅ accrues correctly with no time elapsed
✅ accrues correctly with time elapsed and less than min rewards
✅ accrues correctly with time elapsed and more than min rewards
✅ fails if baseMinForRewards = 0
✅ overflows if baseMinRewards is set too low and accrues no interest
✅ reverts on overflows
✅ supports up to the maximum timestamp then breaks
accrueAccount
✅ has no effect when called on an address with no protocol activity
✅ test/allow-by-sig-test.ts
allowBySig
✅ authorizes with a valid signature
✅ fails if expiry argument is altered
✅ fails if isAllowed argument is altered
✅ fails if manager argument is altered
✅ fails if nonce argument is altered
✅ fails if owner argument is altered
✅ fails if owner is zero address
✅ fails if s is too high
✅ fails if signature contains invalid nonce
✅ fails if signature expiry has passed
✅ fails if v not in {27,28}
✅ rejects a repeated message
✅ test/allow-test.ts
allow
✅ allows a user to authorize a manager
✅ allows a user to rescind authorization
✅ isAllowed defaults to false
hasPermission
✅ is false by default for others
✅ is true for self
✅ is true when user is allowed
✅ test/approve-this-test.ts
approveThis asset is Comet
✅ allows governor to authorize a manager
✅ allows governor to rescind authorization
✅ isAllowed defaults to false
✅ reverts if not called by governor
approveThis asset is non-Comet ERC20
✅ allows governor to authorize a manager
✅ allows governor to rescind authorization
✅ isAllowed defaults to false
✅ reverts if not called by governor
✅ test/asset-info-test.ts
asset info
✅ initializes protocol
✅ reverts if collateral factors are out of range
✅ reverts if index is greater than numAssets
✅ reverts if too many assets are passed
✅ test/balance-test.ts
borrowBalanceOf
✅ returns 0 when principal amount is positive
✅ returns borrow amount (when principal amount is negative)
totalBorrow
✅ has correct totalBorrow
✅ test/base-tracking-accrued-test.ts
baseTrackingAccrued
✅ accrues correctly when base token has more than 6 decimals
✅ acrrues at a greater number of decimals, but preserves 6
✅ increases baseTrackingAccrued on borrow
✅ rounds down to zero for values below 6 decimal places
✅ supply updates baseTrackingAccrued to 6 decimal value
✅ updates with precision up to 6 decimal places
✅ test/bridges/base-bridge-receiver-test.ts
BaseBridgeReceiver
✅ cannot be reinitialized
✅ executeProposal > executes the proposal
✅ executeProposal > reverts if proposal is already executed
✅ executeProposal > reverts if proposal is expired
✅ initializing sets values
✅ is initialized with empty storage values
✅ processMessage > queues transactions and stores a proposal
✅ processMessage > reverts for bad data
✅ processMessage > reverts for repeated transactions
✅ processMessage > reverts if messageSender is not govTimelock
✅ reverts on initialize if local timelock admin is not the bridge receiver
✅ state > reverts for proposal id = 0
✅ state > reverts if proposal id is greater than proposalCount
✅ test/bridges/sweepable-bridge-receiver-test.ts
SweepableBridgeReceiver
✅ reverts if sweepNativeToken is called by non-admin
✅ reverts if sweepToken is called by address other than local timelock
✅ sweeps native token
✅ sweeps non-standard ERC20 token
✅ sweeps standard ERC20 token
✅ test/bulker-test.ts
bulker
✅ claim rewards
✅ reverts on supply asset if no permission granted to bulker
✅ reverts on transfer asset if no permission granted to bulker
✅ reverts on withdraw asset if no permission granted to bulker
✅ reverts on withdraw native token if no permission granted to bulker
✅ supply base asset
✅ supply collateral asset
✅ supply collateral asset to a different account
✅ supply native token
✅ supply native token refunds unused native token
✅ supply native token with insufficient native token
✅ supplyNativeToken with max base
✅ supplyNativeToken with max collateral should revert
✅ transfer base asset
✅ transfer collateral asset
✅ withdraw base asset
✅ withdraw collateral asset
✅ withdraw collateral asset to a different account
✅ withdraw native token
✅ withdrawNativeToken max base
✅ withdrawNativeToken max collateral reverts
bulker admin functions
✅ revert if transferAdmin called by non-admin
✅ revert if transferAdmin to zero address
✅ reverts if sweepNativeToken is called by non-admin
✅ reverts if sweepToken is called by non-admin
✅ sweep native token
✅ sweep non-standard ERC20 token
✅ sweep standard ERC20 token
✅ transferAdmin
bulker multiple actions
✅ supply collateral + borrow base asset
✅ supply native token to multiple accounts
✅ test/buy-collateral-test.ts
buyCollateral
✅ allows buying collateral when reserves < 0 and target reserves is 0
✅ allows buying collateral when reserves < target reserves
⚪ buys the correct amount in a fee-like situation
✅ can buy any excess collateral which does not belong to users
✅ reverts if buy is paused
✅ reverts if not enough collateral to buy
✅ reverts if reserves are above target reserves
✅ reverts if slippage is too high
✅ reverts if trying to buy collateral which belongs to users
buyCollateral reentrancy
✅ is not broken by reentrancy supply
✅ test/comet-ext-test.ts
CometExt
✅ returns collateralBalance (in units of the collateral asset)
✅ returns factor scale
✅ returns price scale
✅ test/configurator-test.ts
configurator
✅ deploys Comet
✅ deploys Comet from ProxyAdmin
✅ e2e governance actions from timelock
✅ reverts if deploy is called from non-governor
✅ reverts if initialized more than once
✅ reverts if initializing the implementation contract
configurator configuration setters
✅ adds asset and deploys Comet with new configuration
✅ reverts if setter is called from non-governor
✅ reverts if updating a non-existent asset
✅ reverts when setting bad Configuration for a Comet proxy with an existing configuration
✅ reverts when setting Configuration and changing baseToken for a Comet proxy with an existing configuration
✅ reverts when setting Configuration and changing trackingIndexScale for a Comet proxy with an existing configuration
✅ sets baseBorrowMin and deploys Comet with new configuration
✅ sets baseMinForRewards and deploys Comet with new configuration
✅ sets baseTokenPriceFeed and deploys Comet with new configuration
✅ sets baseTrackingBorrowSpeed and deploys Comet with new configuration
✅ sets baseTrackingSupplySpeed and deploys Comet with new configuration
✅ sets borrowKink and deploys Comet with new configuration
✅ sets borrowPerYearInterestRateBase and deploys Comet with new configuration
✅ sets borrowPerYearInterestRateSlopeHigh and deploys Comet with new configuration
✅ sets borrowPerYearInterestRateSlopeLow and deploys Comet with new configuration
✅ sets Configuration for a Comet proxy with an existing configuration
✅ sets Configuration for a new Comet proxy
✅ sets extensionDelegate and deploys Comet with new configuration
✅ sets factory and deploys Comet using new factory
✅ sets governor and deploys Comet with new configuration
✅ sets pauseGuardian and deploys Comet with new configuration
✅ sets storeFrontPriceFactor and deploys Comet with new configuration
✅ sets supplyKink and deploys Comet with new configuration
✅ sets supplyPerYearInterestRateBase and deploys Comet with new configuration
✅ sets supplyPerYearInterestRateSlopeHigh and deploys Comet with new configuration
✅ sets supplyPerYearInterestRateSlopeLow and deploys Comet with new configuration
✅ sets targetReserves and deploys Comet with new configuration
✅ updates asset and deploys Comet with new configuration
✅ updates asset borrowCollateralFactor and deploys Comet with new configuration
✅ updates asset liquidateCollateralFactor and deploys Comet with new configuration
✅ updates asset liquidationFactor and deploys Comet with new configuration
✅ updates asset priceFeed and deploys Comet with new configuration
✅ updates asset supplyCap and deploys Comet with new configuration
✅ test/constant-price-feed-test.ts
constant price feed latestRoundData
✅ returns constant price for 18 decimals
✅ returns constant price for 8 decimals
✅ returns expected roundId, startedAt, updatedAt and answeredInRound values
✅ test/constructor-test.ts
constructor
✅ is not possible to create a perSecondInterestRateSlopeLow above FACTOR_SCALE
✅ reverts if asset has a price feed that does not have 8 decimals
✅ reverts if base token has fewer than 6 decimals
✅ reverts if base token has more than 18 decimals
✅ reverts if baseTokenPriceFeed does not have 8 decimals
✅ reverts if initializeStorage is called after initialization
✅ sets the baseBorrowMin
✅ verifies asset scales
✅ test/erc20-test.ts
erc20
✅ has correct decimals
✅ has correct name
✅ has correct symbol
✅ has correct totalSupply
✅ performs ERC20 transfer of base
erc20 allowance
✅ returns 0 when spender does not have permission for user
✅ returns unint256.max when spender has permission for user
erc20 approve
✅ reverts when user approves for value that is not 0 or uint256.max
✅ sets isAllowed=false when user passes 0
✅ sets isAllowed=true when user approves address for uint256 max
erc20 balanceOf
✅ returns 0 (when principal amount is negative)
✅ returns presentValue of principal (when principal is positive)
erc20 transferFrom
✅ performs ERC20 transferFrom of base with approval
✅ performs ERC20 transferFrom when user transfers their own funds
✅ reverts ERC20 transferFrom with revoked approval
✅ reverts ERC20 transferFrom without approval
✅ test/fauceteer-test.ts
Fauceteer
✅ issues .01% of balance of requested asset to requester
✅ limits each address to one request per asset per day
✅ throws an error if balance of asset is 0
✅ test/governor-simple-test.ts
GovernorSimple
✅ adds a new admin
✅ removes an existing admin
✅ test/interest-rate-test.ts
interest rates
✅ when 0 utilization
✅ when above kink utilization
✅ when below kink utilization
✅ test/is-borrow-collateralized-test.ts
isBorrowCollateralized
✅ changes when the underlying asset price changes
✅ defaults to true
✅ is false when user owes principal
✅ is true when user is owed principal
✅ is true when value of collateral is greater than principal owed
✅ takes borrow collateral factor into account when valuing collateral
✅ test/is-liquidatable-test.ts
isLiquidatable
✅ changes when the underlying asset price changes
✅ defaults to false
✅ is false when collateral can cover the borrowed principal
✅ is false when user is owed principal
✅ is true when the collateral cannot cover the borrowed principal
✅ is true when user owes principal
✅ takes liquidateCollateralFactor into account when comparing principal to collateral
✅ test/liquidation/liquidation-bot-script.ts
Liquidation Bot arbitragePurchaseableCollateral
✅ buys all collateral when available
✅ buys collateral when available
✅ hasPurchaseableCollateral ignores dust collateral
Liquidation Bot liquidateUnderwaterBorrowers
✅ liquidates an underwater borrower of comp
✅ liquidates an underwater borrower of link
✅ liquidates an underwater borrower of uni
✅ liquidates an underwater borrower of wbtc
✅ liquidates an underwater borrower of weth
✅ test/liquidation/liquidation-bot-test.ts
Liquidator
✅ Should execute COMP flash swap with profit
✅ Should execute LINK flash swap with profit
✅ Should execute UNI flash swap with profit
✅ Should execute WBTC flash swap with profit
✅ Should execute WETH flash swap with profit
✅ Should init liquidator
✅ test/pause-guardian-test.ts
Pause Guardian
✅ Should pause absorb
✅ Should pause buy
✅ Should pause supply
✅ Should pause transfer
✅ Should pause when called by governor
✅ Should pause when called by pause guardian
✅ Should pause withdraw
✅ Should revert if not called by governor or pause guardian
✅ Should unpause
✅ test/price-feed-test.ts
getPrice
✅ returns price data for assets, with 8 decimals
✅ reverts if given a bad priceFeed address
✅ reverts if price feed returns negative value
✅ test/quote-collateral-test.ts
quoteCollateral
✅ does not overflow for large amounts
✅ properly calculates price without truncating integer during intermediate calculations
✅ quotes the collateral at market price when storeFrontPriceFactor is 0%
✅ quotes the collateral correctly for a positive base amount
✅ quotes the collateral correctly for a zero base amount
✅ test/reserves-test.ts
getReserves
✅ calculates 0 reserves
✅ calculates negative reserves
✅ calculates positive reserves
✅ test/rewards-test.ts
CometRewards claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ does not allow anyone but governor to set config
CometRewards setRewardsClaimed
✅ allows governor to set rewards claimed
✅ can be used to zero out retroactive rewards for users
✅ does not allow anyone but governor to set rewards claimed
✅ reverts if addresses and claimedAmounts have different lengths
CometRewards transferGovernor
✅ allows governor to transfer governor
✅ does not allow anyone but governor to transfer governor
CometRewards with multiplier 0.00000888 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.00000888 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.00000888 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.00000888 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.000015 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.000015 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.000015 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.000015 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.00355 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.00355 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.00355 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.00355 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.01 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.01 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.01 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.01 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.0598 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.0598 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.0598 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.0598 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.12345 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.12345 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.12345 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.12345 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.55 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.55 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.55 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.55 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 0.98765 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.98765 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 0.98765 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 0.98765 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 1.33333332 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 1.33333332 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 1.33333332 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 1.33333332 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 100 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 100 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 100 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 100 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 23141 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 23141 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 23141 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 23141 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 5.79 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 5.79 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 5.79 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 5.79 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards with multiplier 598314321.512341 claim + supply
✅ can construct and claim rewards for owner with downscale
✅ can construct and claim rewards for owner with downscale with small rescale factor
✅ can construct and claim rewards for owner with same scale
✅ can construct and claim rewards for owner with upscale
✅ can construct and claim rewards for owner with upscale with small rescale factor
✅ does not overpay when claiming more than once
✅ fails if comet instance is already configured
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 598314321.512341 claimTo + borrow
✅ can construct and claim rewards to target with downscale
✅ can construct and claim rewards to target with same scale
✅ can construct and claim rewards to target with upscale
✅ does not allow claiming more than once
✅ fails if caller is not permitted to claim rewards for owner
✅ fails if comet instance is not configured
✅ fails if not enough rewards in the pool to transfer
CometRewards with multiplier 598314321.512341 getRewardOwed
✅ can construct and calculate rewards for owner with downscale
✅ can construct and calculate rewards for owner with downscale with small rescale factor
✅ can construct and calculate rewards for owner with same scale
✅ can construct and calculate rewards for owner with upscale
✅ can construct and calculate rewards for owner with upscale with small rescale factor
✅ fails if comet instance is not configured
✅ returns 0 owed if user already claimed
CometRewards with multiplier 598314321.512341 setRewardConfig
✅ allows governor to set rewards token with downscale
✅ allows governor to set rewards token with downscale with small rescale factor
✅ allows governor to set rewards token with same scale
✅ allows governor to set rewards token with upscale
✅ allows governor to set rewards token with upscale with small rescale factor
✅ does not allow anyone but governor to set config
CometRewards withdrawToken
✅ allows governor to withdraw funds added
✅ does not allow anyone but governor to withdraw
✅ test/sanity-test.ts
getNow
✅ reverts if timestamp overflows
updateBaseBalance
⚪ accrues the right amount of rewards
✅ test/scaling-price-feed-test.ts
scaling price feed
✅ description is set properly
scaling price feed latestRoundData
✅ passes along roundId, startedAt, updatedAt and answeredInRound values from underlying price feed
✅ price (-1000000000), priceFeedDecimals (6) -> -100000000000
✅ price (-100000000000), priceFeedDecimals (8) -> -100000000000
✅ price (-1000000000000000000000), priceFeedDecimals (18) -> -100000000000
✅ price (100000000), priceFeedDecimals (6) -> 10000000000
✅ price (10000000000), priceFeedDecimals (8) -> 10000000000
✅ price (100000000000000000000), priceFeedDecimals (18) -> 10000000000
✅ price (123456000000), priceFeedDecimals (6) -> 12345600000000
✅ price (12345600000000), priceFeedDecimals (8) -> 12345600000000
✅ price (123456000000000000000000), priceFeedDecimals (18) -> 12345600000000
✅ test/supply-test.ts
supply
✅ reverts if supply is paused
✅ supplies to sender by default
supplyFrom
✅ reverts if `from` is specified and sender does not have permission
✅ reverts if supply is paused
✅ supplies from `from` if specified and sender has permission
supplyTo
✅ calculates base principal correctly
✅ does not emit Transfer for 0 mint
✅ prevents exceeding the supply cap via re-entrancy
✅ reverts if supply is paused
✅ reverts if supply max for a collateral asset
✅ reverts if supplying collateral exceeds the supply cap
✅ reverts if the asset is neither collateral nor base
✅ supplies 0 and does not revert when dstPrincipalNew < dstPrincipal
✅ supplies base from sender if the asset is base
✅ supplies collateral from sender if the asset is collateral
✅ supplies max base borrow balance (including accrued) from sender if the asset is base
⚪ supplies the correct amount in a fee-like situation
✅ supply max base should supply 0 if user has no borrow position
✅ user supply is same as total supply
✅ test/tracking-index-bounds-test.ts
total tracking index bounds base scale of 18
✅ lower bound hit on tracking borrow index
✅ lower bound hit on tracking supply index
✅ upper bound hit on tracking borrow index
✅ upper bound hit on tracking supply index
total tracking index bounds base scale of 6
✅ lower bound hit on tracking borrow index
✅ lower bound hit on tracking supply index
✅ upper bound hit on tracking borrow index
✅ upper bound hit on tracking supply index
✅ test/transfer-test.ts
transfer
✅ borrows base if collateralized
✅ calculates base principal correctly
✅ cant borrow less than the minimum
✅ does not emit Transfer if 0 mint/burn
✅ reverts if the asset is neither collateral nor base
✅ reverts if transfer is paused
✅ reverts if transfer max for a collateral asset
✅ reverts if transferring base results in an under collateralized borrow
✅ reverts if transferring collateral results in an under collateralized borrow
✅ reverts on self-transfer of base token
✅ reverts on self-transfer of collateral
✅ transfer max base should transfer 0 if user has a borrow position
✅ transfers base from sender if the asset is base
✅ transfers collateral from sender if the asset is collateral
✅ transfers max base balance (including accrued) from sender if the asset is base
transferFrom
✅ reverts if src is specified and sender does not have permission
✅ reverts if transfer is paused
✅ reverts on transfer of base token from address to itself
✅ reverts on transfer of collateral from address to itself
✅ transfers from src if specified and sender has permission
✅ test/update-assets-in-test.ts
updateAssetsIn
✅ adds asset to user's asset list when initialUserBalance=0 and finalUserBalance>0
✅ does not change state when both initialUserBalance and finalUserBalance > 0
✅ does not change state when both initialUserBalance and finalUserBalance are 0
✅ removes asset from asset list when initialUserBalance > 0 and finalUserBalance=0
✅ reverts for non-existent asset address
✅ works for up to 15 assets
✅ test/wbtc-price-feed.ts
WBTC price feed
✅ getters return correct values
✅ reverts if constructed with bad decimals
WBTC price feed latestRoundData
✅ passes along roundId, startedAt, updatedAt and answeredInRound values from BTC / USD price feed
✅ WBTCToBTCPrice (0), BTCToUSDPrice (0) -> 0
✅ WBTCToBTCPrice (0), BTCToUSDPrice (3000000000000) -> 0
✅ WBTCToBTCPrice (100000000), BTCToUSDPrice (0) -> 0
✅ WBTCToBTCPrice (100000000), BTCToUSDPrice (3000000000000) -> 3000000000000
✅ WBTCToBTCPrice (10000000000), BTCToUSDPrice (3000000000000) -> 300000000000000
✅ WBTCToBTCPrice (212345600), BTCToUSDPrice (3133312300000) -> 6653450803308
✅ WBTCToBTCPrice (50000000), BTCToUSDPrice (3000000000000) -> 1500000000000
✅ WBTCToBTCPrice (555000), BTCToUSDPrice (3000000000000) -> 16650000000
✅ WBTCToBTCPrice (98793700), BTCToUSDPrice (3194771623000) -> 3156233092911
✅ WBTCToBTCPrice (99990000), BTCToUSDPrice (3000000000000) -> 2999700000000
✅ test/withdraw-reserves-test.ts
withdrawReserves
✅ accounts for total supply base when calculating reserves
✅ reverts if called not by governor
✅ reverts if negative reserves
✅ reverts if not enough reserves are owned by protocol
✅ withdraws reserves from the protocol
✅ test/withdraw-test.ts
withdraw
✅ reverts if base withdraw amount is not collateralzed
✅ reverts if collateral withdraw amount is not collateralized
✅ reverts if withdraw amount is less than baseBorrowMin
✅ reverts if withdraw is paused
✅ withdraws to sender by default
withdraw reentrancy
✅ is not broken by malicious reentrancy transferFrom
✅ is not broken by malicious reentrancy withdrawFrom
withdrawFrom
✅ reverts if src is specified and sender does not have permission
✅ reverts if withdraw is paused
✅ withdraws from src if specified and sender has permission
withdrawTo
✅ borrows to withdraw if necessary/possible
✅ calculates base principal correctly
✅ does not emit Transfer for 0 burn
✅ reverts if the asset is neither collateral nor base
✅ reverts if withdraw is paused
✅ reverts if withdraw max for a collateral asset
✅ reverts if withdrawing base exceeds the total supply
✅ reverts if withdrawing collateral exceeds the total supply
✅ withdraw max base should withdraw 0 if user has a borrow position
✅ withdraws 0 but Comet Transfer event amount is 1
✅ withdraws base from sender if the asset is base
✅ withdraws collateral from sender if the asset is collateral
✅ withdraws max base balance (including accrued) from sender if the asset is base
✅ test/wsteth-price-feed.ts
wstETH price feed
✅ reverts if constructed with bad decimals
wstETH price feed latestRoundData
✅ passes along roundId, startedAt, updatedAt and answeredInRound values from stETH price feed
✅ stEthPrice (-1000000000000000000000), tokensPerStEth (800000000000000000) -> -125000000000
✅ stEthPrice (1000000000000000000000), tokensPerStEth (200000000000000000) -> 500000000000
✅ stEthPrice (1000000000000000000000), tokensPerStEth (500000000000000000) -> 200000000000
✅ stEthPrice (1000000000000000000000), tokensPerStEth (800000000000000000) -> 125000000000
✅ stEthPrice (1000000000000000000000), tokensPerStEth (900000000000000000) -> 111111111111
✅ stEthPrice (1300000000000000000000), tokensPerStEth (900000000000000000) -> 144444444444
Loading