-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollect.json
1 lines (1 loc) · 11.2 KB
/
collect.json
1
{"original": "https://prover.certora.com/output/548871/45ef7e21309d435dbf9a71f26a35d100?anonymousKey=ff768893235c9bd753351c6a35db4b8c93f01a4c", "mutants": [{"gambit_mutant": {"filename": "gambit_out/mutants/1/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/1", "id": "1", "diff": "--- original\n+++ mutant\n@@ -325,7 +325,8 @@\n \n // if the in/out destination is the LMPVault then the in/out token must be the baseAsset\n // if the in/out is not the LMPVault then the in/out token must match the destinations underlying token\n- if (params.destinationIn == address(lmpVault)) {\n+ /// IfStatementMutation(`params.destinationIn == address(lmpVault)` |==> `false`) of: `if (params.destinationIn == address(lmpVault)) {`\n+ if (false) {\n if (params.tokenIn != baseAsset) {\n revert RebalanceDestinationUnderlyerMismatch(params.destinationIn, params.tokenIn, baseAsset);\n }\n", "description": "IfStatementMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/2/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/2", "id": "2", "diff": "--- original\n+++ mutant\n@@ -556,7 +556,8 @@\n (lmpVault.totalAssets() + params.amountIn + destValueAfterRebalance - currentDebt);\n \n // trimming may occur over multiple rebalances, so we only want to ensure we aren't removing too much\n- if (lmpAssetsAfterRebalance > 0) {\n+ /// IfStatementMutation(`lmpAssetsAfterRebalance > 0` |==> `false`) of: `if (lmpAssetsAfterRebalance > 0) {`\n+ if (false) {\n return destValueAfterRebalance * 1e18 / lmpAssetsAfterRebalance >= trimAmount;\n } else {\n // LMP assets after rebalance are 0\n", "description": "IfStatementMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/3/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/3", "id": "3", "diff": "--- original\n+++ mutant\n@@ -710,7 +710,8 @@\n interimStats.maxPremium = discount;\n }\n // slither-disable-next-line timestamp\n- if (discount > interimStats.maxDiscount) {\n+ /// IfStatementMutation(`discount > interimStats.maxDiscount` |==> `true`) of: `if (discount > interimStats.maxDiscount) {`\n+ if (true) {\n interimStats.maxDiscount = discount;\n }\n }\n", "description": "IfStatementMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/4/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/4", "id": "4", "diff": "--- original\n+++ mutant\n@@ -731,7 +731,8 @@\n result.maxDiscount = interimStats.maxDiscount;\n \n uint256 returnExPrice = (\n- result.baseApr * weightBase / 1e6 + result.feeApr * weightFee / 1e6\n+ /// BinaryOpMutation(`+` |==> `-`) of: `result.baseApr * weightBase / 1e6 + result.feeApr * weightFee / 1e6`\n+ result.baseApr * weightBase / 1e6-result.feeApr * weightFee / 1e6\n + result.incentiveApr * weightIncentive / 1e6\n );\n \n", "description": "BinaryOpMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/5/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/5", "id": "5", "diff": "--- original\n+++ mutant\n@@ -795,7 +795,8 @@\n // slither-disable-next-line timestamp\n if (periodFinish > block.timestamp) {\n // tokenPrice is 1e18 and we want 1e18 out, so divide by the token decimals\n- totalRewards += rewardRate * tokenPrice / rewardDivisor;\n+ /// BinaryOpMutation(`/` |==> `-`) of: `totalRewards += rewardRate * tokenPrice / rewardDivisor;`\n+ totalRewards += rewardRate * tokenPrice-rewardDivisor;\n }\n } else {\n // when adding to a destination, count incentives only when either of the following conditions are\n", "description": "BinaryOpMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/6/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/6", "id": "6", "diff": "--- original\n+++ mutant\n@@ -863,7 +863,8 @@\n uint40[5] memory discountTimestampByPercent = data.discountTimestampByPercent;\n \n // 1e16 means a 1% LST discount where fullscale is 1e18.\n- if (discount > 1e16) {\n+ /// IfStatementMutation(`discount > 1e16` |==> `false`) of: `if (discount > 1e16) {`\n+ if (false) {\n // linear approximation for exponential function with approx. half life of 30 days\n uint256 halfLifeSec = 30 * 24 * 60 * 60;\n uint256 len = data.discountTimestampByPercent.length;\n", "description": "IfStatementMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/7/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/7", "id": "7", "diff": "--- original\n+++ mutant\n@@ -876,7 +876,8 @@\n scalingFactor >>= (timeSinceDiscountSec / halfLifeSec);\n // slither-disable-next-line weak-prng\n timeSinceDiscountSec %= halfLifeSec;\n- scalingFactor -= scalingFactor * timeSinceDiscountSec / halfLifeSec / 2;\n+ /// BinaryOpMutation(`/` |==> `-`) of: `scalingFactor -= scalingFactor * timeSinceDiscountSec / halfLifeSec / 2;`\n+ scalingFactor -= scalingFactor * timeSinceDiscountSec-halfLifeSec / 2;\n break;\n }\n }\n", "description": "BinaryOpMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/8/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/8", "id": "8", "diff": "--- original\n+++ mutant\n@@ -986,7 +986,8 @@\n uint16 newSwapCostOffset = 0;\n \n if (currentSwapOffset > swapCostOffsetTightenStepInDays) {\n- newSwapCostOffset = currentSwapOffset - swapCostOffsetTightenStepInDays;\n+ /// BinaryOpMutation(`-` |==> `*`) of: `newSwapCostOffset = currentSwapOffset - swapCostOffsetTightenStepInDays;`\n+ newSwapCostOffset = currentSwapOffset*swapCostOffsetTightenStepInDays;\n }\n \n // slither-disable-next-line timestamp\n", "description": "BinaryOpMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/9/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/9", "id": "9", "diff": "--- original\n+++ mutant\n@@ -1003,7 +1003,8 @@\n uint40 pauseRebalanceInSeconds = uint40(pauseRebalancePeriodInDays) * 1 days;\n \n // slither-disable-next-line timestamp\n- return uint40(block.timestamp) - lastPausedTimestamp <= pauseRebalanceInSeconds;\n+ /// BinaryOpMutation(`-` |==> `**`) of: `return uint40(block.timestamp) - lastPausedTimestamp <= pauseRebalanceInSeconds;`\n+ return uint40(block.timestamp)**lastPausedTimestamp <= pauseRebalanceInSeconds;\n }\n \n function ensureNotPaused() internal view {\n", "description": "BinaryOpMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "gambit_out/mutants/10/src/strategy/LMPStrategy.sol", "original_filename": "src/strategy/LMPStrategy.sol", "directory": "gambit_out/mutants/10", "id": "10", "diff": "--- original\n+++ mutant\n@@ -1016,7 +1016,8 @@\n }\n \n function clearExpiredPause() internal returns (bool) {\n- if (!expiredPauseState()) return false;\n+ /// IfStatementMutation(`!expiredPauseState()` |==> `true`) of: `if (!expiredPauseState()) return false;`\n+ if (true) return false;\n \n lastPausedTimestamp = 0;\n _swapCostOffsetPeriod = swapCostOffsetMinInDays;\n", "description": "IfStatementMutation"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy/LMPStrategy_P2.sol", "original_filename": "/root/Tokemak_FV_kirkeelee/src/strategy/LMPStrategy.sol", "directory": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy", "id": "m1", "diff": "497a498,500\n> // mutation: set maxSlippage to 0, nullifying all scenarios\n> maxSlippage = 0;\n> \n", "description": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy/LMPStrategy_P2.sol"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy/LMPStrategy_P0.sol", "original_filename": "/root/Tokemak_FV_kirkeelee/src/strategy/LMPStrategy.sol", "directory": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy", "id": "m2", "diff": "380c380,381\n< uint256 outPrice = params.destinationOut != lmpVaultAddress\n---\n> // mutation: replace `params.destinationOut != lmpVaultAddress` with `true`\n> uint256 outPrice = true\n389c390,391\n< uint256 outEthValue = params.destinationOut != lmpVaultAddress\n---\n> // mutation: replace `params.destinationOut != lmpVaultAddress` with `true`\n> uint256 outEthValue = true\n", "description": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy/LMPStrategy_P0.sol"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}, {"gambit_mutant": {"filename": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy/LMPStrategy_P1.sol", "original_filename": "/root/Tokemak_FV_kirkeelee/src/strategy/LMPStrategy.sol", "directory": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy", "id": "m3", "diff": "435c435,436\n< if (((priceSafe * 1.0e18 / priceSpot - 1.0e18) * 10_000) / 1.0e18 > tolerance) {\n---\n> // mutation: fail to divide by scaler \n> if (((priceSafe * 1.0e18 / priceSpot - 1.0e18) * 10_000) > tolerance) {\n", "description": "/root/Tokemak_FV_kirkeelee/certora/confs/mutation/../../mutations/LMPStrategy/LMPStrategy_P1.sol"}, "link": null, "success": true, "run_directory": null, "rule_report_link": null}]}