Investigate fuzz test failure
Closed this issue · 2 comments
dapp-whisperer commented
Related to previous issue?
had another instance
Counterexample: calldata=0x3695c4cb0000000000000000000000000000000000000000000000000f13fa701b15b084, args=[1086487294524108932]]
[FAIL. Reason: Arithmetic over/underflow Counterexample: calldata=0x7f2ba647000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000026f6, args=[18446744073709551615, 9974]] testPartiallyLiquidateSingleCDP(uint256,uint256) (runs: 10, μ: 1434487, ~: 1518288)
Traces:
[[1158](https://github.com/Badger-Finance/ebtc/actions/runs/4909880961/jobs/8766549060?pr=333#step:8:1159)958] CdpManagerLiquidationTest::testPartiallyLiquidateSingleCDP(18446744073709551615, 9974)
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [2370] PriceFeedTestnet::getPrice() [staticcall]
│ └─ ← 74280000000000000
├─ [522] Utilities::calculateCollAmount(18446744073709551615, 74280000000000000, 2050000000000000000) [staticcall]
│ └─ ← 509098348830163985066
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [24546] CollateralTokenTester::approve(BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], 115792089237316195423570985008687907853269984665640564039457584007913129639935)
│ ├─ emit Approval(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, guy: BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], wad: 115792089237316195423570985008687907853269984665640564039457584007913129639935)
│ └─ ← true
├─ [0] VM::deal(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 10000000000000000000000)
│ └─ ← ()
├─ [5150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 0
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [44902] CollateralTokenTester::deposit{value: 10000000000000000000000}()
│ ├─ emit Deposit(dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 10000000000000000000000, _share: 10000000000000000000000)
│ └─ ← ()
├─ [1150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 10000000000000000000000
├─ [0] VM::startPrank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [2546] CollateralTokenTester::approve(BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], 115792089237316195423570985008687907853269984665640564039457584007913129639935)
│ ├─ emit Approval(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, guy: BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], wad: 115792089237316195423570985008687907853269984665640564039457584007913129639935)
│ └─ ← true
├─ [542274] BorrowerOperations::openCdp(200000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000)
│ ├─ [2429] CdpManager::locked() [staticcall]
│ │ └─ ← 1
│ ├─ [3620] PriceFeedTestnet::fetchPrice()
│ │ ├─ emit LastGoodPriceUpdated(_lastGoodPrice: 74280000000000000)
│ │ └─ ← 74280000000000000
│ ├─ [2381] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [2348] DefaultPool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [2358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [2358] DefaultPool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(0) [staticcall]
│ │ └─ ← 0
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(9999800000000000000000) [staticcall]
│ │ └─ ← 9999800000000000000000
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(200000000000000000) [staticcall]
│ │ └─ ← 200000000000000000
│ ├─ [381] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [348] DefaultPool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(0) [staticcall]
│ │ └─ ← 0
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [358] DefaultPool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [170037] SortedCdps::insert(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 4999900000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)
│ │ ├─ [2593] CdpManager::getCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ │ │ └─ ← 0
│ │ ├─ emit NodeAdded(_id: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _NICR: 4999900000000000000000000)
│ │ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
│ ├─ [20754] CdpManager::setCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 1)
│ │ └─ ← ()
│ ├─ [22810] CdpManager::increaseCdpColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 9999800000000000000000)
│ │ └─ ← 9999800000000000000000
│ ├─ [22842] CdpManager::increaseCdpDebt(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 200000000000000000)
│ │ └─ ← 200000000000000000
│ ├─ [22621] CdpManager::setCdpLiquidatorRewardShares(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 200000000000000000)
│ │ └─ ← ()
│ ├─ [38519] CdpManager::updateCdpRewardSnapshots(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000)
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1000000000000000000) [staticcall]
│ │ │ └─ ← 1000000000000000000
│ │ ├─ emit CdpSnapshotsUpdated(_L_ETH: 0, _L_EBTCDebt: 0)
│ │ └─ ← ()
│ ├─ [48445] CdpManager::updateStakeAndTotalStakes(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000)
│ │ ├─ emit TotalStakesUpdated(_newTotalStakes: 9999800000000000000000)
│ │ └─ ← 9999800000000000000000
│ ├─ [45285] CdpManager::addCdpIdToArray(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000)
│ │ └─ ← 0
│ ├─ emit CdpCreated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _creator: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, arrayIndex: 0)
│ ├─ [21641] ActivePool::increaseEBTCDebt(200000000000000000)
│ │ ├─ emit ActivePoolEBTCDebtUpdated(_EBTCDebt: 200000000000000000)
│ │ └─ ← ()
│ ├─ [47194] EBTCToken::mint(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 200000000000000000)
│ │ ├─ emit Transfer(src: 0x0000000000000000000000000000000000000000, dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 200000000000000000)
│ │ └─ ← ()
│ ├─ emit CdpUpdated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _oldDebt: 0, _oldColl: 0, _debt: 200000000000000000, _coll: 9999800000000000000000, _stake: 9999800000000000000000, _operation: 0)
│ ├─ [21211] CollateralTokenTester::transferFrom(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], 10000000000000000000000)
│ │ ├─ emit Transfer(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, dst: ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], wad: 10000000000000000000000, _share: 10000000000000000000000)
│ │ └─ ← true
│ ├─ [21608] ActivePool::receiveColl(9999800000000000000000)
│ │ ├─ emit ActivePoolETHBalanceUpdated(_ETH: 9999800000000000000000)
│ │ └─ ← ()
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [0] VM::stopPrank()
│ └─ ← ()
├─ [0] VM::deal(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 509098348830163985066)
│ └─ ← ()
├─ [1150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 0
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [23002] CollateralTokenTester::deposit{value: 509098348830163985066}()
│ ├─ emit Deposit(dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 509098348830163985066, _share: 509098348830163985066)
│ └─ ← ()
├─ [1150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 509098348830163985066
├─ [0] VM::startPrank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [2546] CollateralTokenTester::approve(BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], 115792089237316195423570985008687907853269984665640564039457584007913129639935)
│ ├─ emit Approval(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, guy: BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], wad: 115792089237316195423570985008687907853269984665640564039457584007913129639935)
│ └─ ← true
├─ [317224] BorrowerOperations::openCdp(18446744073709551615, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 509098348830163985066)
│ ├─ [429] CdpManager::locked() [staticcall]
│ │ └─ ← 1
│ ├─ [1620] PriceFeedTestnet::fetchPrice()
│ │ ├─ emit LastGoodPriceUpdated(_lastGoodPrice: 74280000000000000)
│ │ └─ ← 74280000000000000
│ ├─ [381] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 9999800000000000000000
│ ├─ [348] DefaultPool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 200000000000000000
│ ├─ [358] DefaultPool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(9999800000000000000000) [staticcall]
│ │ └─ ← 9999800000000000000000
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(508898348830163985066) [staticcall]
│ │ └─ ← 508898348830163985066
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(200000000000000000) [staticcall]
│ │ └─ ← 200000000000000000
│ ├─ [381] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 9999800000000000000000
│ ├─ [348] DefaultPool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(9999800000000000000000) [staticcall]
│ │ └─ ← 9999800000000000000000
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 200000000000000000
│ ├─ [358] DefaultPool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [130618] SortedCdps::insert(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 2758743476879749282853, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)
│ │ ├─ [2593] CdpManager::getCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ │ │ └─ ← 0
│ │ ├─ [6127] CdpManager::getNominalICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ │ │ └─ ← 4999900000000000000000000
│ │ ├─ [4127] CdpManager::getNominalICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ │ │ └─ ← 4999900000000000000000000
│ │ ├─ emit NodeAdded(_id: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _NICR: 2758743476879749282853)
│ │ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
│ ├─ [20754] CdpManager::setCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 1)
│ │ └─ ← ()
│ ├─ [22810] CdpManager::increaseCdpColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 508898348830163985066)
│ │ └─ ← 508898348830163985066
│ ├─ [22842] CdpManager::increaseCdpDebt(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 18446744073709551615)
│ │ └─ ← 18446744073709551615
│ ├─ [22621] CdpManager::setCdpLiquidatorRewardShares(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 200000000000000000)
│ │ └─ ← ()
│ ├─ [30519] CdpManager::updateCdpRewardSnapshots(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1000000000000000000) [staticcall]
│ │ │ └─ ← 1000000000000000000
│ │ ├─ emit CdpSnapshotsUpdated(_L_ETH: 0, _L_EBTCDebt: 0)
│ │ └─ ← ()
│ ├─ [24545] CdpManager::updateStakeAndTotalStakes(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ │ ├─ emit TotalStakesUpdated(_newTotalStakes: 10508698348830163985066)
│ │ └─ ← 508898348830163985066
│ ├─ [23385] CdpManager::addCdpIdToArray(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ │ └─ ← 1
│ ├─ emit CdpCreated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _creator: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, arrayIndex: 1)
│ ├─ [1741] ActivePool::increaseEBTCDebt(18446744073709551615)
│ │ ├─ emit ActivePoolEBTCDebtUpdated(_EBTCDebt: 18646744073709551615)
│ │ └─ ← ()
│ ├─ [3394] EBTCToken::mint(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 18446744073709551615)
│ │ ├─ emit Transfer(src: 0x0000000000000000000000000000000000000000, dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 18446744073709551615)
│ │ └─ ← ()
│ ├─ emit CdpUpdated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _oldDebt: 0, _oldColl: 0, _debt: 18446744073709551615, _coll: 508898348830163985066, _stake: 508898348830163985066, _operation: 0)
│ ├─ [3691] CollateralTokenTester::transferFrom(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], 509098348830163985066)
│ │ ├─ emit Transfer(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, dst: ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], wad: 509098348830163985066, _share: 509098348830163985066)
│ │ └─ ← true
│ ├─ [1708] ActivePool::receiveColl(508898348830163985066)
│ │ ├─ emit ActivePoolETHBalanceUpdated(_ETH: 10508698348830163985066)
│ │ └─ ← ()
│ └─ ← 2758743476879749282853
├─ [483] SortedCdps::getNext(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [338] SortedCdps::getFirst() [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [370] PriceFeedTestnet::getPrice() [staticcall]
│ └─ ← 37140000000000000
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [5440] CdpManager::getCurrentICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 37140000000000000) [staticcall]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(9999800000000000000000) [staticcall]
│ │ └─ ← 9999800000000000000000
│ └─ ← 1856962860000000000000
├─ [5143] CdpManager::getTCR(37140000000000000) [staticcall]
│ ├─ [381] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 10508698348830163985066
│ ├─ [348] DefaultPool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 18646744073709551615
│ ├─ [358] DefaultPool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(10508698348830163985066) [staticcall]
│ │ └─ ← 10508698348830163985066
│ └─ ← 209308957710[1210](https://github.com/Badger-Finance/ebtc/actions/runs/4909880961/jobs/8766549060?pr=333#step:8:1211)5288
├─ [5143] CdpManager::getTCR(37140000000000000) [staticcall]
│ ├─ [381] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 10508698348830163985066
│ ├─ [348] DefaultPool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 18646744073709551615
│ ├─ [358] DefaultPool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(10508698348830163985066) [staticcall]
│ │ └─ ← 10508698348830163985066
│ └─ ← 20930895771012105288
├─ [5440] CdpManager::getCurrentICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 37140000000000000) [staticcall]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(508898348830163985066) [staticcall]
│ │ └─ ← 508898348830163985066
│ └─ ← 1024597327313138883
├─ [374] CdpManager::CCR() [staticcall]
│ └─ ← 1250000000000000000
├─ [351] CdpManager::MCR() [staticcall]
│ └─ ← 1100000000000000000
├─ [3885] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 18446744073709551615, 508898348830163985066, 0, 0
├─ [328] CdpManager::LICR() [staticcall]
│ └─ ← 1030000000000000000
├─ [306] CdpManager::MIN_NET_COLL() [staticcall]
│ └─ ← 2000000000000000000
└─ ← "Arithmetic over/underflow"
[PASS] testRetryFullLiquidation() (gas: 189)
[PASS] testSequenceLiquidateMultipleCDPs(uint256,uint256,uint256) (runs: 40, μ: 1845127, ~: 1844465)
Test result: FAILED. 6 passed; 1 failed; finished in 63.10s
Failing tests:
Encountered 1 failing test in foundry_test/CdpManager.Liquidation.t.sol:CdpManagerLiquidationTest
[FAIL. Reason: Arithmetic over/underflow Counterexample: calldata=0x7f2ba647000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000026f6, args=[18446744073709551615, 9974]] testPartiallyLiquidateSingleCDP(uint256,uint256) (runs: 10, μ: 1434487, ~: 1518288)
dapp-whisperer commented
[FAIL. Reason: LiquidationLibrary: Coll remaining in partially liquidated CDP must be >= minimum Counterexample: calldata=0x7f2ba647000000000000000000000000000000000000000000000000f304aeb0cd6fc52900000000000000000000000000000000000000000000000000000000000026d5, args=[17511313325507462441 [1.751e19], 9941]] testPartiallyLiquidateSingleCDP(uint256,uint256) (runs: 19, μ: 1321049, ~: 1448155)
Traces:
[1246385] CdpManagerLiquidationTest::testPartiallyLiquidateSingleCDP(17511313325507462441 [1.751e19], 9941)
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [0] VM::assume(true) [staticcall]
│ └─ ← ()
├─ [2348] PriceFeedTestnet::getPrice() [staticcall]
│ └─ ← 74280000000000000 [7.428e16]
├─ [522] Utilities::calculateCollAmount(17511313325507462441 [1.751e19], 74280000000000000 [7.428e16], 2050000000000000000 [2.05e18]) [staticcall]
│ └─ ← 483282072122917312924 [4.832e20]
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [24546] CollateralTokenTester::approve(BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], 115792089237316195423570985008687907853269984665640564039457584007913129639935 [1.157e77])
│ ├─ emit Approval(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, guy: BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], wad: 115792089237316195423570985008687907853269984665640564039457584007913129639935 [1.157e77])
│ └─ ← true
├─ [0] VM::deal(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 10000000000000000000000 [1e22])
│ └─ ← ()
├─ [5150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 0
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [44902] CollateralTokenTester::deposit{value: 10000000000000000000000}()
│ ├─ emit Deposit(dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 10000000000000000000000 [1e22], _share: 10000000000000000000000 [1e22])
│ └─ ← ()
├─ [1150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 10000000000000000000000 [1e22]
├─ [0] VM::startPrank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [2546] CollateralTokenTester::approve(BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], 115792089237316195423570985008687907853269984665640564039457584007913129639935 [1.157e77])
│ ├─ emit Approval(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, guy: BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], wad: 115792089237316195423570985008687907853269984665640564039457584007913129639935 [1.157e77])
│ └─ ← true
├─ [527881] BorrowerOperations::openCdp(200000000000000000 [2e17], 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000 [1e22])
│ ├─ [2407] CdpManager::locked() [staticcall]
│ │ └─ ← 1
│ ├─ [3620] PriceFeedTestnet::fetchPrice()
│ │ ├─ emit LastGoodPriceUpdated(_lastGoodPrice: 74280000000000000 [7.428e16])
│ │ └─ ← 74280000000000000 [7.428e16]
│ ├─ [2359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [2358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(0) [staticcall]
│ │ └─ ← 0
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(9999800000000000000000 [9.999e21]) [staticcall]
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(200000000000000000 [2e17]) [staticcall]
│ │ └─ ← 200000000000000000 [2e17]
│ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 0
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(0) [staticcall]
│ │ └─ ← 0
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 0
│ ├─ [170027] SortedCdps::insert(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 4999900000000000000000000 [4.999e24], 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)
│ │ ├─ [2593] CdpManager::getCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ │ │ └─ ← 0
│ │ ├─ emit NodeAdded(_id: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _NICR: 4999900000000000000000000 [4.999e24])
│ │ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
│ ├─ [20754] CdpManager::setCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 1)
│ │ └─ ← ()
│ ├─ [22832] CdpManager::increaseCdpColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 9999800000000000000000 [9.999e21])
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [22820] CdpManager::increaseCdpDebt(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 200000000000000000 [2e17])
│ │ └─ ← 200000000000000000 [2e17]
│ ├─ [22599] CdpManager::setCdpLiquidatorRewardShares(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 200000000000000000 [2e17])
│ │ └─ ← ()
│ ├─ [34053] CdpManager::updateCdpRewardSnapshots(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000)
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1000000000000000000 [1e18]) [staticcall]
│ │ │ └─ ← 1000000000000000000 [1e18]
│ │ ├─ emit CdpSnapshotsUpdated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _L_EBTCDebt: 0)
│ │ └─ ← ()
│ ├─ [48374] CdpManager::updateStakeAndTotalStakes(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000)
│ │ ├─ emit TotalStakesUpdated(_newTotalStakes: 9999800000000000000000 [9.999e21])
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [45263] CdpManager::addCdpIdToArray(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000)
│ │ └─ ← 0
│ ├─ emit CdpCreated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _creator: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, arrayIndex: 0)
│ ├─ [21667] ActivePool::increaseEBTCDebt(200000000000000000 [2e17])
│ │ ├─ emit ActivePoolEBTCDebtUpdated(_EBTCDebt: 0)
│ │ └─ ← ()
│ ├─ [47123] EBTCToken::mint(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 200000000000000000 [2e17])
│ │ ├─ emit Transfer(src: 0x0000000000000000000000000000000000000000, dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 200000000000000000 [2e17])
│ │ └─ ← ()
│ ├─ emit CdpUpdated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _oldDebt: 0, _oldColl: 0, _debt: 200000000000000000 [2e17], _coll: 9999800000000000000000 [9.999e21], _stake: 9999800000000000000000 [9.999e21], _operation: 0)
│ ├─ [2[1211](https://github.com/Badger-Finance/ebtc/actions/runs/4974860272/jobs/8901559093?pr=365#step:8:1212)] CollateralTokenTester::transferFrom(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], 10000000000000000000000 [1e22])
│ │ ├─ emit Transfer(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, dst: ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], wad: 10000000000000000000000 [1e22], _share: 10000000000000000000000 [1e22])
│ │ └─ ← true
│ ├─ [21639] ActivePool::receiveColl(9999800000000000000000 [9.999e21])
│ │ ├─ emit ActivePoolCollBalanceUpdated(_coll: 0)
│ │ └─ ← ()
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [0] VM::stopPrank()
│ └─ ← ()
├─ [0] VM::deal(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 483282072122917312924 [4.832e20])
│ └─ ← ()
├─ [1150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 0
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [23002] CollateralTokenTester::deposit{value: 483282072122917312924}()
│ ├─ emit Deposit(dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 483282072122917312924 [4.832e20], _share: 483282072122917312924 [4.832e20])
│ └─ ← ()
├─ [1150] CollateralTokenTester::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 483282072122917312924 [4.832e20]
├─ [0] VM::startPrank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [2546] CollateralTokenTester::approve(BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], 115792089237316195423570985008687907853269984665640564039457584007913129639935 [1.157e77])
│ ├─ emit Approval(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, guy: BorrowerOperations: [0x8f63307945c5857CB95722762e65e73922a4341E], wad: 115792089237316195423570985008687907853269984665640564039457584007913129639935 [1.157e77])
│ └─ ← true
├─ [309021] BorrowerOperations::openCdp(17511313325507462441 [1.751e19], 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 483282072122917312924 [4.832e20])
│ ├─ [407] CdpManager::locked() [staticcall]
│ │ └─ ← 1
│ ├─ [1620] PriceFeedTestnet::fetchPrice()
│ │ ├─ emit LastGoodPriceUpdated(_lastGoodPrice: 74280000000000000 [7.428e16])
│ │ └─ ← 74280000000000000 [7.428e16]
│ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 200000000000000000 [2e17]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(9999800000000000000000 [9.999e21]) [staticcall]
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(483082072122917312924 [4.83e20]) [staticcall]
│ │ └─ ← 483082072122917312924 [4.83e20]
│ ├─ [871] CollateralTokenTester::getSharesByPooledEth(200000000000000000 [2e17]) [staticcall]
│ │ └─ ← 200000000000000000 [2e17]
│ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(9999800000000000000000 [9.999e21]) [staticcall]
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 200000000000000000 [2e17]
│ ├─ [128298] SortedCdps::insert(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 2758685560261471821048 [2.758e21], 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)
│ │ ├─ [2593] CdpManager::getCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ │ │ └─ ← 0
│ │ ├─ [4972] CdpManager::getNominalICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ │ │ └─ ← 4999900000000000000000000 [4.999e24]
│ │ ├─ [2972] CdpManager::getNominalICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ │ │ └─ ← 4999900000000000000000000 [4.999e24]
│ │ ├─ emit NodeAdded(_id: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _NICR: 2758685560261471821048 [2.758e21])
│ │ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
│ ├─ [20754] CdpManager::setCdpStatus(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 1)
│ │ └─ ← ()
│ ├─ [22832] CdpManager::increaseCdpColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 483082072122917312924 [4.83e20])
│ │ └─ ← 483082072122917312924 [4.83e20]
│ ├─ [22820] CdpManager::increaseCdpDebt(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 17511313325507462441 [1.751e19])
│ │ └─ ← 17511313325507462441 [1.751e19]
│ ├─ [22599] CdpManager::setCdpLiquidatorRewardShares(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 200000000000000000 [2e17])
│ │ └─ ← ()
│ ├─ [28053] CdpManager::updateCdpRewardSnapshots(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1000000000000000000 [1e18]) [staticcall]
│ │ │ └─ ← 1000000000000000000 [1e18]
│ │ ├─ emit CdpSnapshotsUpdated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _L_EBTCDebt: 0)
│ │ └─ ← ()
│ ├─ [24474] CdpManager::updateStakeAndTotalStakes(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ │ ├─ emit TotalStakesUpdated(_newTotalStakes: 10482882072122917312924 [1.048e22])
│ │ └─ ← 483082072122917312924 [4.83e20]
│ ├─ [23363] CdpManager::addCdpIdToArray(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ │ └─ ← 1
│ ├─ emit CdpCreated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _creator: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, arrayIndex: 1)
│ ├─ [1767] ActivePool::increaseEBTCDebt(17511313325507462441 [1.751e19])
│ │ ├─ emit ActivePoolEBTCDebtUpdated(_EBTCDebt: 200000000000000000 [2e17])
│ │ └─ ← ()
│ ├─ [3323] EBTCToken::mint(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, 17511313325507462441 [1.751e19])
│ │ ├─ emit Transfer(src: 0x0000000000000000000000000000000000000000, dst: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, wad: 17511313325507462441 [1.751e19])
│ │ └─ ← ()
│ ├─ emit CdpUpdated(_cdpId: 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, _borrower: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, _oldDebt: 0, _oldColl: 0, _debt: 17511313325507462441 [1.751e19], _coll: 483082072122917312924 [4.83e20], _stake: 483082072122917312924 [4.83e20], _operation: 0)
│ ├─ [3691] CollateralTokenTester::transferFrom(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], 483282072122917312924 [4.832e20])
│ │ ├─ emit Transfer(src: 0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7, dst: ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00], wad: 483282072122917312924 [4.832e20], _share: 483282072122917312924 [4.832e20])
│ │ └─ ← true
│ ├─ [1739] ActivePool::receiveColl(483082072122917312924 [4.83e20])
│ │ ├─ emit ActivePoolCollBalanceUpdated(_coll: 9999800000000000000000 [9.999e21])
│ │ └─ ← ()
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
├─ [0] VM::stopPrank()
│ └─ ← ()
├─ [2649] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 17511313325507462441 [1.751e19], 483082072122917312924 [4.83e20], 0
├─ [3270] PriceFeedTestnet::setPrice(37140000000000000 [3.714e16])
│ └─ ← true
├─ [647] CollateralTokenTester::sharesOf(ActivePool: [0x7FfA61f206386F609B342fB886493c4C2c650c00]) [staticcall]
│ └─ ← 10483282072122917312924 [1.048e22]
├─ [359] ActivePool::getStEthColl() [staticcall]
│ └─ ← 10482882072122917312924 [1.048e22]
├─ [404] EBTCToken::totalSupply() [staticcall]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [404] EBTCToken::totalSupply() [staticcall]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [425] CdpManager::getCdpIdsCount() [staticcall]
│ └─ ← 2
├─ [686] CdpManager::CdpIds(0) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [2649] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ └─ ← 200000000000000000 [2e17], 9999800000000000000000 [9.999e21], 0
├─ [686] CdpManager::CdpIds(1) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
├─ [2649] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 17511313325507462441 [1.751e19], 483082072122917312924 [4.83e20], 0
├─ [359] ActivePool::getStEthColl() [staticcall]
│ └─ ← 10482882072122917312924 [1.048e22]
├─ [495] Utilities::assertApproximateEq(10482882072122917312924 [1.048e22], 10482882072122917312924 [1.048e22], 2000000 [2e6]) [staticcall]
│ └─ ← true
├─ [425] CdpManager::getCdpIdsCount() [staticcall]
│ └─ ← 2
├─ [686] CdpManager::CdpIds(0) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [2649] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ └─ ← 200000000000000000 [2e17], 9999800000000000000000 [9.999e21], 0
├─ [686] CdpManager::CdpIds(1) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
├─ [2649] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 17511313325507462441 [1.751e19], 483082072122917312924 [4.83e20], 0
├─ [1108] CdpManager::getEntireSystemDebt() [staticcall]
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 17711313325507462441 [1.771e19]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [495] Utilities::assertApproximateEq(17711313325507462441 [1.771e19], 17711313325507462441 [1.771e19], 2000000 [2e6]) [staticcall]
│ └─ ← true
├─ [425] CdpManager::getCdpIdsCount() [staticcall]
│ └─ ← 2
├─ [380] SortedCdps::getSize() [staticcall]
│ └─ ← 2
├─ [425] CdpManager::getCdpIdsCount() [staticcall]
│ └─ ← 2
├─ [686] CdpManager::CdpIds(0) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [535] CdpManager::getCdpStake(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ └─ ← 9999800000000000000000 [9.999e21]
├─ [686] CdpManager::CdpIds(1) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
├─ [535] CdpManager::getCdpStake(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 483082072122917312924 [4.83e20]
├─ [385] CdpManager::totalStakes() [staticcall]
│ └─ ← 10482882072122917312924 [1.048e22]
├─ [425] CdpManager::getCdpIdsCount() [staticcall]
│ └─ ← 2
├─ [406] CdpManager::stFeePerUnitg() [staticcall]
│ └─ ← 1000000000000000000 [1e18]
├─ [686] CdpManager::CdpIds(0) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [617] CdpManager::stFeePerUnitcdp(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ └─ ← 1000000000000000000 [1e18]
├─ [686] CdpManager::CdpIds(1) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
├─ [617] CdpManager::stFeePerUnitcdp(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 1000000000000000000 [1e18]
├─ [2647] CollateralTokenTester::sharesOf(CollSurplusPool: [0x17D52Ce739aD0770f35Efe8a2c33f4E802B2dbf0]) [staticcall]
│ └─ ← 0
├─ [2381] CollSurplusPool::getStEthColl() [staticcall]
│ └─ ← 0
├─ [338] SortedCdps::getFirst() [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [483] SortedCdps::getNext(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [2972] CdpManager::getNominalICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000) [staticcall]
│ └─ ← 4999900000000000000000000 [4.999e24]
├─ [2972] CdpManager::getNominalICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 2758685560261471821048 [2.758e21]
├─ [483] SortedCdps::getNext(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [338] SortedCdps::getFirst() [staticcall]
│ └─ ← 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000
├─ [348] PriceFeedTestnet::getPrice() [staticcall]
│ └─ ← 37140000000000000 [3.714e16]
├─ [284] SortedCdps::dummyId() [staticcall]
│ └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
├─ [4262] CdpManager::getCurrentICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000000, 37140000000000000 [3.714e16]) [staticcall]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(9999800000000000000000 [9.999e21]) [staticcall]
│ │ └─ ← 9999800000000000000000 [9.999e21]
│ └─ ← 1856962860000000000000 [1.856e21]
├─ [3531] CdpManager::getTCR(37140000000000000 [3.714e16]) [staticcall]
│ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 10482882072122917312924 [1.048e22]
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 17711313325507462441 [1.771e19]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(10482882072122917312924 [1.048e22]) [staticcall]
│ │ └─ ← 10482882072122917312924 [1.048e22]
│ └─ ← 21982234349495366442 [2.198e19]
├─ [3531] CdpManager::getTCR(37140000000000000 [3.714e16]) [staticcall]
│ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 10482882072122917312924 [1.048e22]
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 17711313325507462441 [1.771e19]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(10482882072122917312924 [1.048e22]) [staticcall]
│ │ └─ ← 10482882072122917312924 [1.048e22]
│ └─ ← 21982234349495366442 [2.198e19]
├─ [4262] CdpManager::getCurrentICR(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 37140000000000000 [3.714e16]) [staticcall]
│ ├─ [892] CollateralTokenTester::getPooledEthByShares(483082072122917312924 [4.83e20]) [staticcall]
│ │ └─ ← 483082072122917312924 [4.83e20]
│ └─ ← 1024575817081110634 [1.024e18]
├─ [352] CdpManager::CCR() [staticcall]
│ └─ ← 1250000000000000000 [1.25e18]
├─ [329] CdpManager::MCR() [staticcall]
│ └─ ← 1100000000000000000 [1.1e18]
├─ [2649] CdpManager::getEntireDebtAndColl(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [staticcall]
│ └─ ← 17511313325507462441 [1.751e19], 483082072122917312924 [4.83e20], 0
├─ [350] CdpManager::LICR() [staticcall]
│ └─ ← 1030000000000000000 [1.03e18]
├─ [306] CdpManager::MIN_NET_COLL() [staticcall]
│ └─ ← 2000000000000000000 [2e18]
├─ [306] CdpManager::MIN_NET_COLL() [staticcall]
│ └─ ← 2000000000000000000 [2e18]
├─ [670] EBTCToken::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← 17711313325507462441 [1.771e19]
├─ [0] VM::record()
│ └─ ← ()
├─ [670] EBTCToken::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [0] VM::accesses(EBTCToken: [0x59c4F50aAb77CA59bBdce298927430d6726CB5A4])
│ └─ ← [0x1c2c81df00d8ebc9ae97da17a328bfb720c4e4a741eb5b29c985ec84fb05369c], []
├─ [0] VM::load(EBTCToken: [0x59c4F50aAb77CA59bBdce298927430d6726CB5A4], 0x1c2c81df00d8ebc9ae97da17a328bfb720c4e4a741eb5b29c985ec84fb05369c) [staticcall]
│ └─ ← 0x000000000000000000000000000000000000000000000000f5cb39a18883c529
├─ emit SlotFound(who: EBTCToken: [0x59c4F50aAb77CA59bBdce298927430d6726CB5A4], fsig: 0x70a08231, keysHash: 0x2921a74776f7223b0c43f5397a0eee4591bc2ed7899afe3c3e83973b416624e7, slot: 12743397368617786684790201781789425161377583501017073576417376095205811631772 [1.274e76])
├─ [670] EBTCToken::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [0] VM::load(EBTCToken: [0x59c4F50aAb77CA59bBdce298927430d6726CB5A4], 0x1c2c81df00d8ebc9ae97da17a328bfb720c4e4a741eb5b29c985ec84fb05369c) [staticcall]
│ └─ ← 0x000000000000000000000000000000000000000000000000f5cb39a18883c529
├─ [0] VM::store(EBTCToken: [0x59c4F50aAb77CA59bBdce298927430d6726CB5A4], 0x1c2c81df00d8ebc9ae97da17a328bfb720c4e4a741eb5b29c985ec84fb05369c, 0x000000000000000000000000000000000000000000000000f304aeb0cd6fc529)
│ └─ ← ()
├─ [670] EBTCToken::balanceOf(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7) [staticcall]
│ └─ ← 17511313325507462441 [1.751e19]
├─ [1108] CdpManager::getEntireSystemDebt() [staticcall]
│ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ └─ ← 17711313325507462441 [1.771e19]
│ └─ ← 17711313325507462441 [1.771e19]
├─ [987] CdpManager::getEntireSystemColl() [staticcall]
│ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ └─ ← 10482882072122917312924 [1.048e22]
│ └─ ← 10482882072122917312924 [1.048e22]
├─ [0] VM::prank(0x9aF2E2B7e57c1CD7C68C5C3796d8ea67e0018dB7)
│ └─ ← ()
├─ [26586] CdpManager::partiallyLiquidate(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 17362753325507462440 [1.736e19], 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001)
│ ├─ [23497] LiquidationLibrary::partiallyLiquidate(0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 17362753325507462440 [1.736e19], 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001, 0x9af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7000000010000000000000001) [delegatecall]
│ │ ├─ [406] BorrowerOperations::locked() [staticcall]
│ │ │ └─ ← 1
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1000000000000000000 [1e18]) [staticcall]
│ │ │ └─ ← 1000000000000000000 [1e18]
│ │ ├─ [1620] PriceFeedTestnet::fetchPrice()
│ │ │ ├─ emit LastGoodPriceUpdated(_lastGoodPrice: 37140000000000000 [3.714e16])
│ │ │ └─ ← 37140000000000000 [3.714e16]
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(483082072122917312924 [4.83e20]) [staticcall]
│ │ │ └─ ← 483082072122917312924 [4.83e20]
│ │ ├─ [359] ActivePool::getStEthColl() [staticcall]
│ │ │ └─ ← 10482882072122917312924 [1.048e22]
│ │ ├─ [358] ActivePool::getEBTCDebt() [staticcall]
│ │ │ └─ ← 17711313325507462441 [1.771e19]
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(10482882072122917312924 [1.048e22]) [staticcall]
│ │ │ └─ ← 10482882072122917312924 [1.048e22]
│ │ ├─ [871] CollateralTokenTester::getSharesByPooledEth(481519545645468129057 [4.815e20]) [staticcall]
│ │ │ └─ ← 481519545645468129057 [4.815e20]
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1000000000000000000 [1e18]) [staticcall]
│ │ │ └─ ← 1000000000000000000 [1e18]
│ │ ├─ [892] CollateralTokenTester::getPooledEthByShares(1562526477449183867 [1.562e18]) [staticcall]
│ │ │ └─ ← 1562526477449183867 [1.562e18]
│ │ └─ ← "LiquidationLibrary: Coll remaining in partially liquidated CDP must be >= minimum"
│ └─ ← "LiquidationLibrary: Coll remaining in partially liquidated CDP must be >= minimum"
└─ ← "LiquidationLibrary: Coll remaining in partially liquidated CDP must be >= minimum"
rayeaster commented
@dapp-whisperer it should work now with this test fix: f0ec8d0 in dev
branch
I verified with the offending counterexample by explicitly setting the parameters in the test testPartiallyLiquidateSingleCDP()
debtAmt = 18446744073709551615;
partialRatioBps = 9974;
and
debtAmt = 17511313325507462441;
partialRatioBps = 9941;