-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Invariant Testing CI / CD #75
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Recon Campaign Started
|
Recon Job CompletedRecon Recap for liquity/V2-gov/mainFuzzer overview
|
Property | Status |
---|---|
property_initiative_ts_matches_user_when_non_zero() | ✅ |
check_unregisterable_consistecy(uint8) | ❌ |
property_resetting_never_reverts() | ✅ |
check_claimable_solvency() | ✅ |
excludeSenders() | ✅ |
property_shouldNeverRevertgetInitiativeState(uint8) | ✅ |
check_realized_claiming_solvency() | ✅ |
targetInterfaces() | ✅ |
property_shouldNeverRevertgetInitiativeSnapshotAndState(uint8) | ✅ |
governance_allocateLQTY_clamped_single_initiative(uint8,uint96,uint96) | ✅ |
property_BI02() | ✅ |
property_computingGlobalPowerNeverReverts() | ✅ |
governance_resetAllocations() | ✅ |
property_global_ts_is_always_greater_than_start() | ✅ |
governance_depositLQTYViaPermit(uint88) | ✅ |
targetSenders() | ✅ |
targetContracts() | ✅ |
property_shouldGetTotalVotesAndState() | ✅ |
property_BI10() | ✅ |
property_shouldNeverRevertcalculateVotingThreshold() | ✅ |
depositTsIsRational(uint88) | ✅ |
helper_accrueBold(uint88) | ✅ |
property_sum_of_user_voting_weights_strict() | ✅ |
property_sum_of_user_initiative_allocations() | ✅ |
depositMustFailOnNonZeroAlloc(uint88) | ✅ |
property_summingInitiativesPowerNeverReverts() | ✅ |
withdrwaMustFailOnNonZeroAcc(uint88) | ✅ |
governance_allocateLQTY_clamped_single_initiative_2nd_user(uint8,uint96,uint96) | ✅ |
helper_deployInitiative() | ✅ |
property_sum_of_lqty_global_user_matches() | ✅ |
property_sum_of_votes_in_bribes_match() | ✅ |
governance_withdrawLQTY_shouldRevertWhenClamped(uint88) | ✅ |
targetArtifactSelectors() | ✅ |
property_sum_of_lqty_initiative_user_matches() | ✅ |
initiative_depositBribe(uint128,uint128,uint16,uint8) | ✅ |
property_GV01() | ✅ |
property_viewCalculateVotingThreshold() | ✅ |
governance_registerInitiative(uint8) | ✅ |
governance_withdrawLQTY(uint88) | ✅ |
property_shouldNeverRevertsnapshotVotesForInitiative(uint8) | ✅ |
property_BI07() | ✅ |
governance_resetAllocations_user_2() | ✅ |
targetArtifacts() | ✅ |
governance_allocateLQTY(int88[],int88[]) | ✅ |
property_sum_of_initatives_matches_total_votes_bounded() | ✅ |
property_BI04() | ✅ |
targetSelectors() | ✅ |
governance_depositLQTY(uint88) | ✅ |
check_warmup_unregisterable_consistency(uint8) | ✅ |
property_ensure_user_alloc_cannot_dos() | ✅ |
property_BI08() | ✅ |
property_sum_of_initatives_matches_total_votes_insolvency_assertion() | ✅ |
property_shouldNeverRevertgetLatestVotingThreshold() | ✅ |
governance_claimForInitiativeDoesntRevert(uint8) | ✅ |
property_BI03() | ✅ |
excludeArtifacts() | ✅ |
check_claim_soundness() | ✅ |
property_shouldNeverRevertsecondsWithinEpoch() | ✅ |
failed() | ✅ |
property_sum_of_user_voting_weights_bounded() | ✅ |
property_BI01() | ✅ |
property_shouldNeverRevertepochStart(uint8) | ✅ |
property_BI09() | ✅ |
property_shouldNeverRevertSnapshotAndState(uint8) | ✅ |
property_shouldNeverRevertlqtyToVotes() | ✅ |
governance_snapshotVotesForInitiative(address) | ✅ |
governance_deployUserProxy() | ✅ |
governance_depositLQTY_2(uint88) | ✅ |
property_allocations_are_never_dangerously_high() | ✅ |
property_alloc_deposit_reset_is_idempotent(uint8,uint96,uint96,uint88) | ✅ |
property_shouldNeverRevertgetTotalVotesAndState() | ✅ |
clamped_claimBribes(uint8) | ✅ |
property_shouldNeverRevertepoch() | ✅ |
governance_claimForInitiative(uint8) | ✅ |
property_GV_09() | ✅ |
excludeContracts() | ✅ |
governance_claimForInitiativeFuzzTest(uint8) | ✅ |
property_user_ts_is_always_greater_than_start() | ✅ |
property_viewTotalVotesAndStateEquivalency() | ✅ |
check_skip_consistecy(uint8) | ✅ |
governance_unregisterInitiative(uint8) | ✅ |
governance_claimFromStakingV1(uint8) | ✅ |
IS_TEST() | ✅ |
initiative_claimBribes(uint16,uint16,uint16,uint8) | ✅ |
property_shouldNeverRevertgetInitiativeState_arbitrary(address) | ✅ |
property_sum_of_initatives_matches_total_votes_strict() | ❌ |
AssertionFailed(..) | ✅ |
Broken Properties
Broken property:
check_unregisterable_consistecy
Sequence
// forge test --match-test test_check_unregisterable_consistecy_ -vv
function test_check_unregisterable_consistecy_() public {
vm.roll(block.number + 46536);
vm.warp(block.timestamp + 577015);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetTotalVotesAndState();
vm.roll(block.number + 1362);
vm.warp(block.timestamp + 332369);
vm.prank(0x0000000000000000000000000000000000020000);
governance_depositLQTY(262322195659734805072413361);
vm.roll(block.number + 33497);
vm.warp(block.timestamp + 65536);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_lqty_initiative_user_matches();
vm.roll(block.number + 43905);
vm.warp(block.timestamp + 58);
vm.prank(0x0000000000000000000000000000000000010000);
check_claim_soundness();
vm.roll(block.number + 55752);
vm.warp(block.timestamp + 178398);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertSnapshotAndState(236);
vm.roll(block.number + 16814);
vm.warp(block.timestamp + 3600);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative(37,0,50113);
vm.roll(block.number + 47864);
vm.warp(block.timestamp + 59984);
vm.prank(0x0000000000000000000000000000000000020000);
governance_resetAllocations();
vm.roll(block.number + 47902);
vm.warp(block.timestamp + 112444);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI03();
vm.roll(block.number + 15392);
vm.warp(block.timestamp + 322160);
vm.prank(0x0000000000000000000000000000000000010000);
check_unregisterable_consistecy(31);
}
Broken property:
property_sum_of_initatives_matches_total_votes_strict
Sequence
// forge test --match-test test_property_sum_of_initatives_matches_total_votes_strict_ -vv
function test_property_sum_of_initatives_matches_total_votes_strict_() public {
vm.roll(block.number + 46536);
vm.warp(block.timestamp + 577015);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetTotalVotesAndState();
vm.roll(block.number + 1362);
vm.warp(block.timestamp + 332369);
vm.prank(0x0000000000000000000000000000000000020000);
governance_depositLQTY(262322195659734805072413361);
vm.roll(block.number + 33497);
vm.warp(block.timestamp + 65536);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_lqty_initiative_user_matches();
vm.roll(block.number + 43905);
vm.warp(block.timestamp + 58);
vm.prank(0x0000000000000000000000000000000000010000);
check_claim_soundness();
vm.roll(block.number + 55752);
vm.warp(block.timestamp + 178398);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertSnapshotAndState(236);
vm.roll(block.number + 3751);
vm.warp(block.timestamp + 149578);
vm.prank(0x0000000000000000000000000000000000020000);
property_BI09();
vm.roll(block.number + 50537);
vm.warp(block.timestamp + 322370);
vm.prank(0x0000000000000000000000000000000000020000);
depositMustFailOnNonZeroAlloc(122);
vm.roll(block.number + 55724);
vm.warp(block.timestamp + 57804);
vm.prank(0x0000000000000000000000000000000000010000);
governance_allocateLQTY_clamped_single_initiative(130,93,0);
vm.roll(block.number + 45819);
vm.warp(block.timestamp + 322357);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertgetInitiativeState(100);
vm.roll(block.number + 21439);
vm.warp(block.timestamp + 365091);
vm.prank(0x0000000000000000000000000000000000030000);
governance_claimForInitiativeFuzzTest(103);
vm.roll(block.number + 2821);
vm.warp(block.timestamp + 304335);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI09();
vm.roll(block.number + 53011);
vm.warp(block.timestamp + 407567);
vm.prank(0x0000000000000000000000000000000000030000);
property_GV_09();
vm.roll(block.number + 4847);
vm.warp(block.timestamp + 471291);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertsecondsWithinEpoch();
vm.roll(block.number + 15505);
vm.warp(block.timestamp + 262143);
vm.prank(0x0000000000000000000000000000000000020000);
initiative_depositBribe(264474546884491357117362731710371217215,254135392087517085278822988830747111655,215,17);
vm.roll(block.number + 13);
vm.warp(block.timestamp + 513169);
vm.prank(0x0000000000000000000000000000000000020000);
governance_registerInitiative(11);
vm.roll(block.number + 60460);
vm.warp(block.timestamp + 61359);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI09();
vm.roll(block.number + 27250);
vm.warp(block.timestamp + 400);
vm.prank(0x0000000000000000000000000000000000020000);
check_claimable_solvency();
vm.roll(block.number + 38703);
vm.warp(block.timestamp + 73444);
vm.prank(0x0000000000000000000000000000000000030000);
property_GV_09();
vm.roll(block.number + 3162);
vm.warp(block.timestamp + 523);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative_2nd_user(70,49906617260552605762047230770,1000000);
vm.roll(block.number + 27174);
vm.warp(block.timestamp + 407567);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimFromStakingV1(252);
vm.roll(block.number + 2821);
vm.warp(block.timestamp + 472846);
vm.prank(0x0000000000000000000000000000000000030000);
check_realized_claiming_solvency();
vm.roll(block.number + 4094);
vm.warp(block.timestamp + 357863);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI05();
vm.roll(block.number + 48072);
vm.warp(block.timestamp + 282472);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative(32,34961718036134411610099238296,133);
vm.roll(block.number + 5016);
vm.warp(block.timestamp + 604762);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetTotalVotesAndState();
vm.roll(block.number + 32958);
vm.warp(block.timestamp + 322143);
vm.prank(0x0000000000000000000000000000000000020000);
check_skip_consistecy(190);
vm.roll(block.number + 51878);
vm.warp(block.timestamp + 124202);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative_2nd_user(194,63,44042324661291034963457523227);
vm.roll(block.number + 10978);
vm.warp(block.timestamp + 344203);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_lqty_global_user_matches();
vm.roll(block.number + 50417);
vm.warp(block.timestamp + 440284);
vm.prank(0x0000000000000000000000000000000000010000);
property_GV_09();
vm.roll(block.number + 4901);
vm.warp(block.timestamp + 326329);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldGetTotalVotesAndState();
vm.roll(block.number + 15504);
vm.warp(block.timestamp + 577014);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetLatestVotingThreshold();
vm.roll(block.number + 4841);
vm.warp(block.timestamp + 482394);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI09();
vm.roll(block.number + 57313);
vm.warp(block.timestamp + 379005);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetInitiativeState_arbitrary(0x00000000000000000000000000000001fffffffE);
vm.roll(block.number + 48887);
vm.warp(block.timestamp + 322198);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiative(92);
vm.roll(block.number + 6295);
vm.warp(block.timestamp + 57803);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI07();
vm.roll(block.number + 13868);
vm.warp(block.timestamp + 322069);
vm.prank(0x0000000000000000000000000000000000030000);
clamped_claimBribes(33);
vm.roll(block.number + 15513);
vm.warp(block.timestamp + 80212);
vm.prank(0x0000000000000000000000000000000000010000);
property_alloc_deposit_reset_is_idempotent(200,1999999999999999999,9831763698359078767883274571,99380824833012099680917693);
vm.roll(block.number + 3662);
vm.warp(block.timestamp + 496936);
vm.prank(0x0000000000000000000000000000000000020000);
governance_claimForInitiative(0);
vm.roll(block.number + 25985);
vm.warp(block.timestamp + 153540);
vm.prank(0x0000000000000000000000000000000000030000);
property_global_ts_is_always_greater_than_start();
vm.roll(block.number + 65);
vm.warp(block.timestamp + 94683);
vm.prank(0x0000000000000000000000000000000000020000);
property_sum_of_user_voting_weights_strict();
vm.roll(block.number + 28997);
vm.warp(block.timestamp + 534786);
vm.prank(0x0000000000000000000000000000000000030000);
governance_depositLQTY_2(10000000000000000);
vm.roll(block.number + 5216);
vm.warp(block.timestamp + 128966);
vm.prank(0x0000000000000000000000000000000000020000);
initiative_depositBribe(94743225334330175067115104350172538975,339738377640345403697157401104375502017,63360,37);
vm.roll(block.number + 3599);
vm.warp(block.timestamp + 137558);
vm.prank(0x0000000000000000000000000000000000010000);
check_claim_soundness();
vm.roll(block.number + 88);
vm.warp(block.timestamp + 586022);
vm.prank(0x0000000000000000000000000000000000010000);
property_shouldNeverRevertgetInitiativeState(102);
vm.roll(block.number + 24966);
vm.warp(block.timestamp + 33);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertsecondsWithinEpoch();
vm.roll(block.number + 15504);
vm.warp(block.timestamp + 385871);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI02();
vm.roll(block.number + 1862);
vm.warp(block.timestamp + 338920);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiative(170);
vm.roll(block.number + 4987);
vm.warp(block.timestamp + 102110);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertcalculateVotingThreshold();
vm.roll(block.number + 60268);
vm.warp(block.timestamp + 322216);
vm.prank(0x0000000000000000000000000000000000020000);
governance_unregisterInitiative(182);
vm.roll(block.number + 45693);
vm.warp(block.timestamp + 352709);
vm.prank(0x0000000000000000000000000000000000010000);
property_shouldNeverRevertsecondsWithinEpoch();
vm.roll(block.number + 8907);
vm.warp(block.timestamp + 417307);
vm.prank(0x0000000000000000000000000000000000020000);
property_sum_of_user_voting_weights_strict();
vm.roll(block.number + 39518);
vm.warp(block.timestamp + 486890);
vm.prank(0x0000000000000000000000000000000000030000);
helper_deployInitiative();
vm.roll(block.number + 125);
vm.warp(block.timestamp + 288562);
vm.prank(0x0000000000000000000000000000000000030000);
property_alloc_deposit_reset_is_idempotent(86,34630418746493929544746664202,65565596280218207006265461316,499999999999999999999);
vm.roll(block.number + 6666);
vm.warp(block.timestamp + 472846);
vm.prank(0x0000000000000000000000000000000000020000);
clamped_claimBribes(134);
vm.roll(block.number + 40000);
vm.warp(block.timestamp + 359581);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_user_voting_weights_strict();
vm.roll(block.number + 60450);
vm.warp(block.timestamp + 488787);
vm.prank(0x0000000000000000000000000000000000030000);
governance_depositLQTY_2(0);
vm.roll(block.number + 2363);
vm.warp(block.timestamp + 92959);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_user_initiative_allocations();
vm.roll(block.number + 8192);
vm.warp(block.timestamp + 193410);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI09();
vm.roll(block.number + 3501);
vm.warp(block.timestamp + 320326);
vm.prank(0x0000000000000000000000000000000000020000);
governance_registerInitiative(53);
vm.roll(block.number + 98);
vm.warp(block.timestamp + 481079);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_user_voting_weights_bounded();
vm.roll(block.number + 16986);
vm.warp(block.timestamp + 130097);
vm.prank(0x0000000000000000000000000000000000020000);
governance_registerInitiative(49);
vm.roll(block.number + 55394);
vm.warp(block.timestamp + 187040);
vm.prank(0x0000000000000000000000000000000000020000);
depositTsIsRational(96505857);
vm.roll(block.number + 39520);
vm.warp(block.timestamp + 566552);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiative(44);
vm.roll(block.number + 39519);
vm.warp(block.timestamp + 161);
vm.prank(0x0000000000000000000000000000000000020000);
helper_deployInitiative();
vm.roll(block.number + 129);
vm.warp(block.timestamp + 356013);
vm.prank(0x0000000000000000000000000000000000010000);
property_initiative_ts_matches_user_when_non_zero();
vm.roll(block.number + 208);
vm.warp(block.timestamp + 143976);
vm.prank(0x0000000000000000000000000000000000010000);
property_global_ts_is_always_greater_than_start();
vm.roll(block.number + 184);
vm.warp(block.timestamp + 264015);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI02();
vm.roll(block.number + 38156);
vm.warp(block.timestamp + 385871);
vm.prank(0x0000000000000000000000000000000000010000);
governance_allocateLQTY_clamped_single_initiative_2nd_user(220,44427865740410136309018159090,0);
vm.roll(block.number + 13547);
vm.warp(block.timestamp + 214);
vm.prank(0x0000000000000000000000000000000000010000);
governance_allocateLQTY_clamped_single_initiative(0,46019483024675071069875065407,1524785993);
vm.roll(block.number + 11413);
vm.warp(block.timestamp + 145412);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI04();
vm.roll(block.number + 18571);
vm.warp(block.timestamp + 522178);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiativeDoesntRevert(64);
vm.roll(block.number + 4148);
vm.warp(block.timestamp + 159);
vm.prank(0x0000000000000000000000000000000000020000);
property_alloc_deposit_reset_is_idempotent(131,15815929122548744098354409702,209,933);
vm.roll(block.number + 49388);
vm.warp(block.timestamp + 385873);
vm.prank(0x0000000000000000000000000000000000020000);
property_alloc_deposit_reset_is_idempotent(125,39999,12568864,293722316941937191872210671);
vm.roll(block.number + 45627);
vm.warp(block.timestamp + 262802);
vm.prank(0x0000000000000000000000000000000000030000);
property_initiative_ts_matches_user_when_non_zero();
vm.roll(block.number + 13869);
vm.warp(block.timestamp + 38);
vm.prank(0x0000000000000000000000000000000000020000);
property_sum_of_votes_in_bribes_match();
vm.roll(block.number + 8865);
vm.warp(block.timestamp + 166300);
vm.prank(0x0000000000000000000000000000000000030000);
governance_depositLQTYViaPermit(80973242180591189004751278);
vm.roll(block.number + 27161);
vm.warp(block.timestamp + 67);
vm.prank(0x0000000000000000000000000000000000010000);
check_skip_consistecy(200);
vm.roll(block.number + 15609);
vm.warp(block.timestamp + 246182);
vm.prank(0x0000000000000000000000000000000000010000);
optimize_max_claim_underpay_assertion();
vm.roll(block.number + 60474);
vm.warp(block.timestamp + 242164);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI04();
vm.roll(block.number + 5140);
vm.warp(block.timestamp + 186939);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_initatives_matches_total_votes_insolvency_assertion_small();
vm.roll(block.number + 60472);
vm.warp(block.timestamp + 332175);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_initatives_matches_total_votes_strict();
}
1 similar comment
Recon Job CompletedRecon Recap for liquity/V2-gov/mainFuzzer overview
|
Property | Status |
---|---|
property_initiative_ts_matches_user_when_non_zero() | ✅ |
check_unregisterable_consistecy(uint8) | ❌ |
property_resetting_never_reverts() | ✅ |
check_claimable_solvency() | ✅ |
excludeSenders() | ✅ |
property_shouldNeverRevertgetInitiativeState(uint8) | ✅ |
check_realized_claiming_solvency() | ✅ |
targetInterfaces() | ✅ |
property_shouldNeverRevertgetInitiativeSnapshotAndState(uint8) | ✅ |
governance_allocateLQTY_clamped_single_initiative(uint8,uint96,uint96) | ✅ |
property_BI02() | ✅ |
property_computingGlobalPowerNeverReverts() | ✅ |
governance_resetAllocations() | ✅ |
property_global_ts_is_always_greater_than_start() | ✅ |
governance_depositLQTYViaPermit(uint88) | ✅ |
targetSenders() | ✅ |
targetContracts() | ✅ |
property_shouldGetTotalVotesAndState() | ✅ |
property_BI10() | ✅ |
property_shouldNeverRevertcalculateVotingThreshold() | ✅ |
depositTsIsRational(uint88) | ✅ |
helper_accrueBold(uint88) | ✅ |
property_sum_of_user_voting_weights_strict() | ✅ |
property_sum_of_user_initiative_allocations() | ✅ |
depositMustFailOnNonZeroAlloc(uint88) | ✅ |
property_summingInitiativesPowerNeverReverts() | ✅ |
withdrwaMustFailOnNonZeroAcc(uint88) | ✅ |
governance_allocateLQTY_clamped_single_initiative_2nd_user(uint8,uint96,uint96) | ✅ |
helper_deployInitiative() | ✅ |
property_sum_of_lqty_global_user_matches() | ✅ |
property_sum_of_votes_in_bribes_match() | ✅ |
governance_withdrawLQTY_shouldRevertWhenClamped(uint88) | ✅ |
targetArtifactSelectors() | ✅ |
property_sum_of_lqty_initiative_user_matches() | ✅ |
initiative_depositBribe(uint128,uint128,uint16,uint8) | ✅ |
property_GV01() | ✅ |
property_viewCalculateVotingThreshold() | ✅ |
governance_registerInitiative(uint8) | ✅ |
governance_withdrawLQTY(uint88) | ✅ |
property_shouldNeverRevertsnapshotVotesForInitiative(uint8) | ✅ |
property_BI07() | ✅ |
governance_resetAllocations_user_2() | ✅ |
targetArtifacts() | ✅ |
governance_allocateLQTY(int88[],int88[]) | ✅ |
property_sum_of_initatives_matches_total_votes_bounded() | ✅ |
property_BI04() | ✅ |
targetSelectors() | ✅ |
governance_depositLQTY(uint88) | ✅ |
check_warmup_unregisterable_consistency(uint8) | ✅ |
property_ensure_user_alloc_cannot_dos() | ✅ |
property_BI08() | ✅ |
property_sum_of_initatives_matches_total_votes_insolvency_assertion() | ✅ |
property_shouldNeverRevertgetLatestVotingThreshold() | ✅ |
governance_claimForInitiativeDoesntRevert(uint8) | ✅ |
property_BI03() | ✅ |
excludeArtifacts() | ✅ |
check_claim_soundness() | ✅ |
property_shouldNeverRevertsecondsWithinEpoch() | ✅ |
failed() | ✅ |
property_sum_of_user_voting_weights_bounded() | ✅ |
property_BI01() | ✅ |
property_shouldNeverRevertepochStart(uint8) | ✅ |
property_BI09() | ✅ |
property_shouldNeverRevertSnapshotAndState(uint8) | ✅ |
property_shouldNeverRevertlqtyToVotes() | ✅ |
governance_snapshotVotesForInitiative(address) | ✅ |
governance_deployUserProxy() | ✅ |
governance_depositLQTY_2(uint88) | ✅ |
property_allocations_are_never_dangerously_high() | ✅ |
property_alloc_deposit_reset_is_idempotent(uint8,uint96,uint96,uint88) | ✅ |
property_shouldNeverRevertgetTotalVotesAndState() | ✅ |
clamped_claimBribes(uint8) | ✅ |
property_shouldNeverRevertepoch() | ✅ |
governance_claimForInitiative(uint8) | ✅ |
property_GV_09() | ✅ |
excludeContracts() | ✅ |
governance_claimForInitiativeFuzzTest(uint8) | ✅ |
property_user_ts_is_always_greater_than_start() | ✅ |
property_viewTotalVotesAndStateEquivalency() | ✅ |
check_skip_consistecy(uint8) | ✅ |
governance_unregisterInitiative(uint8) | ✅ |
governance_claimFromStakingV1(uint8) | ✅ |
IS_TEST() | ✅ |
initiative_claimBribes(uint16,uint16,uint16,uint8) | ✅ |
property_shouldNeverRevertgetInitiativeState_arbitrary(address) | ✅ |
property_sum_of_initatives_matches_total_votes_strict() | ❌ |
AssertionFailed(..) | ✅ |
Broken Properties
Broken property:
check_unregisterable_consistecy
Sequence
// forge test --match-test test_check_unregisterable_consistecy_ -vv
function test_check_unregisterable_consistecy_() public {
vm.roll(block.number + 46536);
vm.warp(block.timestamp + 577015);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetTotalVotesAndState();
vm.roll(block.number + 1362);
vm.warp(block.timestamp + 332369);
vm.prank(0x0000000000000000000000000000000000020000);
governance_depositLQTY(262322195659734805072413361);
vm.roll(block.number + 33497);
vm.warp(block.timestamp + 65536);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_lqty_initiative_user_matches();
vm.roll(block.number + 43905);
vm.warp(block.timestamp + 58);
vm.prank(0x0000000000000000000000000000000000010000);
check_claim_soundness();
vm.roll(block.number + 55752);
vm.warp(block.timestamp + 178398);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertSnapshotAndState(236);
vm.roll(block.number + 16814);
vm.warp(block.timestamp + 3600);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative(37,0,50113);
vm.roll(block.number + 47864);
vm.warp(block.timestamp + 59984);
vm.prank(0x0000000000000000000000000000000000020000);
governance_resetAllocations();
vm.roll(block.number + 47902);
vm.warp(block.timestamp + 112444);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI03();
vm.roll(block.number + 15392);
vm.warp(block.timestamp + 322160);
vm.prank(0x0000000000000000000000000000000000010000);
check_unregisterable_consistecy(31);
}
Broken property:
property_sum_of_initatives_matches_total_votes_strict
Sequence
// forge test --match-test test_property_sum_of_initatives_matches_total_votes_strict_ -vv
function test_property_sum_of_initatives_matches_total_votes_strict_() public {
vm.roll(block.number + 46536);
vm.warp(block.timestamp + 577015);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetTotalVotesAndState();
vm.roll(block.number + 1362);
vm.warp(block.timestamp + 332369);
vm.prank(0x0000000000000000000000000000000000020000);
governance_depositLQTY(262322195659734805072413361);
vm.roll(block.number + 33497);
vm.warp(block.timestamp + 65536);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_lqty_initiative_user_matches();
vm.roll(block.number + 43905);
vm.warp(block.timestamp + 58);
vm.prank(0x0000000000000000000000000000000000010000);
check_claim_soundness();
vm.roll(block.number + 55752);
vm.warp(block.timestamp + 178398);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertSnapshotAndState(236);
vm.roll(block.number + 3751);
vm.warp(block.timestamp + 149578);
vm.prank(0x0000000000000000000000000000000000020000);
property_BI09();
vm.roll(block.number + 50537);
vm.warp(block.timestamp + 322370);
vm.prank(0x0000000000000000000000000000000000020000);
depositMustFailOnNonZeroAlloc(122);
vm.roll(block.number + 55724);
vm.warp(block.timestamp + 57804);
vm.prank(0x0000000000000000000000000000000000010000);
governance_allocateLQTY_clamped_single_initiative(130,93,0);
vm.roll(block.number + 45819);
vm.warp(block.timestamp + 322357);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertgetInitiativeState(100);
vm.roll(block.number + 21439);
vm.warp(block.timestamp + 365091);
vm.prank(0x0000000000000000000000000000000000030000);
governance_claimForInitiativeFuzzTest(103);
vm.roll(block.number + 2821);
vm.warp(block.timestamp + 304335);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI09();
vm.roll(block.number + 53011);
vm.warp(block.timestamp + 407567);
vm.prank(0x0000000000000000000000000000000000030000);
property_GV_09();
vm.roll(block.number + 4847);
vm.warp(block.timestamp + 471291);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldNeverRevertsecondsWithinEpoch();
vm.roll(block.number + 15505);
vm.warp(block.timestamp + 262143);
vm.prank(0x0000000000000000000000000000000000020000);
initiative_depositBribe(264474546884491357117362731710371217215,254135392087517085278822988830747111655,215,17);
vm.roll(block.number + 13);
vm.warp(block.timestamp + 513169);
vm.prank(0x0000000000000000000000000000000000020000);
governance_registerInitiative(11);
vm.roll(block.number + 60460);
vm.warp(block.timestamp + 61359);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI09();
vm.roll(block.number + 27250);
vm.warp(block.timestamp + 400);
vm.prank(0x0000000000000000000000000000000000020000);
check_claimable_solvency();
vm.roll(block.number + 38703);
vm.warp(block.timestamp + 73444);
vm.prank(0x0000000000000000000000000000000000030000);
property_GV_09();
vm.roll(block.number + 3162);
vm.warp(block.timestamp + 523);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative_2nd_user(70,49906617260552605762047230770,1000000);
vm.roll(block.number + 27174);
vm.warp(block.timestamp + 407567);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimFromStakingV1(252);
vm.roll(block.number + 2821);
vm.warp(block.timestamp + 472846);
vm.prank(0x0000000000000000000000000000000000030000);
check_realized_claiming_solvency();
vm.roll(block.number + 4094);
vm.warp(block.timestamp + 357863);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI05();
vm.roll(block.number + 48072);
vm.warp(block.timestamp + 282472);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative(32,34961718036134411610099238296,133);
vm.roll(block.number + 5016);
vm.warp(block.timestamp + 604762);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetTotalVotesAndState();
vm.roll(block.number + 32958);
vm.warp(block.timestamp + 322143);
vm.prank(0x0000000000000000000000000000000000020000);
check_skip_consistecy(190);
vm.roll(block.number + 51878);
vm.warp(block.timestamp + 124202);
vm.prank(0x0000000000000000000000000000000000020000);
governance_allocateLQTY_clamped_single_initiative_2nd_user(194,63,44042324661291034963457523227);
vm.roll(block.number + 10978);
vm.warp(block.timestamp + 344203);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_lqty_global_user_matches();
vm.roll(block.number + 50417);
vm.warp(block.timestamp + 440284);
vm.prank(0x0000000000000000000000000000000000010000);
property_GV_09();
vm.roll(block.number + 4901);
vm.warp(block.timestamp + 326329);
vm.prank(0x0000000000000000000000000000000000020000);
property_shouldGetTotalVotesAndState();
vm.roll(block.number + 15504);
vm.warp(block.timestamp + 577014);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetLatestVotingThreshold();
vm.roll(block.number + 4841);
vm.warp(block.timestamp + 482394);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI09();
vm.roll(block.number + 57313);
vm.warp(block.timestamp + 379005);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertgetInitiativeState_arbitrary(0x00000000000000000000000000000001fffffffE);
vm.roll(block.number + 48887);
vm.warp(block.timestamp + 322198);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiative(92);
vm.roll(block.number + 6295);
vm.warp(block.timestamp + 57803);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI07();
vm.roll(block.number + 13868);
vm.warp(block.timestamp + 322069);
vm.prank(0x0000000000000000000000000000000000030000);
clamped_claimBribes(33);
vm.roll(block.number + 15513);
vm.warp(block.timestamp + 80212);
vm.prank(0x0000000000000000000000000000000000010000);
property_alloc_deposit_reset_is_idempotent(200,1999999999999999999,9831763698359078767883274571,99380824833012099680917693);
vm.roll(block.number + 3662);
vm.warp(block.timestamp + 496936);
vm.prank(0x0000000000000000000000000000000000020000);
governance_claimForInitiative(0);
vm.roll(block.number + 25985);
vm.warp(block.timestamp + 153540);
vm.prank(0x0000000000000000000000000000000000030000);
property_global_ts_is_always_greater_than_start();
vm.roll(block.number + 65);
vm.warp(block.timestamp + 94683);
vm.prank(0x0000000000000000000000000000000000020000);
property_sum_of_user_voting_weights_strict();
vm.roll(block.number + 28997);
vm.warp(block.timestamp + 534786);
vm.prank(0x0000000000000000000000000000000000030000);
governance_depositLQTY_2(10000000000000000);
vm.roll(block.number + 5216);
vm.warp(block.timestamp + 128966);
vm.prank(0x0000000000000000000000000000000000020000);
initiative_depositBribe(94743225334330175067115104350172538975,339738377640345403697157401104375502017,63360,37);
vm.roll(block.number + 3599);
vm.warp(block.timestamp + 137558);
vm.prank(0x0000000000000000000000000000000000010000);
check_claim_soundness();
vm.roll(block.number + 88);
vm.warp(block.timestamp + 586022);
vm.prank(0x0000000000000000000000000000000000010000);
property_shouldNeverRevertgetInitiativeState(102);
vm.roll(block.number + 24966);
vm.warp(block.timestamp + 33);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertsecondsWithinEpoch();
vm.roll(block.number + 15504);
vm.warp(block.timestamp + 385871);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI02();
vm.roll(block.number + 1862);
vm.warp(block.timestamp + 338920);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiative(170);
vm.roll(block.number + 4987);
vm.warp(block.timestamp + 102110);
vm.prank(0x0000000000000000000000000000000000030000);
property_shouldNeverRevertcalculateVotingThreshold();
vm.roll(block.number + 60268);
vm.warp(block.timestamp + 322216);
vm.prank(0x0000000000000000000000000000000000020000);
governance_unregisterInitiative(182);
vm.roll(block.number + 45693);
vm.warp(block.timestamp + 352709);
vm.prank(0x0000000000000000000000000000000000010000);
property_shouldNeverRevertsecondsWithinEpoch();
vm.roll(block.number + 8907);
vm.warp(block.timestamp + 417307);
vm.prank(0x0000000000000000000000000000000000020000);
property_sum_of_user_voting_weights_strict();
vm.roll(block.number + 39518);
vm.warp(block.timestamp + 486890);
vm.prank(0x0000000000000000000000000000000000030000);
helper_deployInitiative();
vm.roll(block.number + 125);
vm.warp(block.timestamp + 288562);
vm.prank(0x0000000000000000000000000000000000030000);
property_alloc_deposit_reset_is_idempotent(86,34630418746493929544746664202,65565596280218207006265461316,499999999999999999999);
vm.roll(block.number + 6666);
vm.warp(block.timestamp + 472846);
vm.prank(0x0000000000000000000000000000000000020000);
clamped_claimBribes(134);
vm.roll(block.number + 40000);
vm.warp(block.timestamp + 359581);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_user_voting_weights_strict();
vm.roll(block.number + 60450);
vm.warp(block.timestamp + 488787);
vm.prank(0x0000000000000000000000000000000000030000);
governance_depositLQTY_2(0);
vm.roll(block.number + 2363);
vm.warp(block.timestamp + 92959);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_user_initiative_allocations();
vm.roll(block.number + 8192);
vm.warp(block.timestamp + 193410);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI09();
vm.roll(block.number + 3501);
vm.warp(block.timestamp + 320326);
vm.prank(0x0000000000000000000000000000000000020000);
governance_registerInitiative(53);
vm.roll(block.number + 98);
vm.warp(block.timestamp + 481079);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_user_voting_weights_bounded();
vm.roll(block.number + 16986);
vm.warp(block.timestamp + 130097);
vm.prank(0x0000000000000000000000000000000000020000);
governance_registerInitiative(49);
vm.roll(block.number + 55394);
vm.warp(block.timestamp + 187040);
vm.prank(0x0000000000000000000000000000000000020000);
depositTsIsRational(96505857);
vm.roll(block.number + 39520);
vm.warp(block.timestamp + 566552);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiative(44);
vm.roll(block.number + 39519);
vm.warp(block.timestamp + 161);
vm.prank(0x0000000000000000000000000000000000020000);
helper_deployInitiative();
vm.roll(block.number + 129);
vm.warp(block.timestamp + 356013);
vm.prank(0x0000000000000000000000000000000000010000);
property_initiative_ts_matches_user_when_non_zero();
vm.roll(block.number + 208);
vm.warp(block.timestamp + 143976);
vm.prank(0x0000000000000000000000000000000000010000);
property_global_ts_is_always_greater_than_start();
vm.roll(block.number + 184);
vm.warp(block.timestamp + 264015);
vm.prank(0x0000000000000000000000000000000000010000);
property_BI02();
vm.roll(block.number + 38156);
vm.warp(block.timestamp + 385871);
vm.prank(0x0000000000000000000000000000000000010000);
governance_allocateLQTY_clamped_single_initiative_2nd_user(220,44427865740410136309018159090,0);
vm.roll(block.number + 13547);
vm.warp(block.timestamp + 214);
vm.prank(0x0000000000000000000000000000000000010000);
governance_allocateLQTY_clamped_single_initiative(0,46019483024675071069875065407,1524785993);
vm.roll(block.number + 11413);
vm.warp(block.timestamp + 145412);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI04();
vm.roll(block.number + 18571);
vm.warp(block.timestamp + 522178);
vm.prank(0x0000000000000000000000000000000000010000);
governance_claimForInitiativeDoesntRevert(64);
vm.roll(block.number + 4148);
vm.warp(block.timestamp + 159);
vm.prank(0x0000000000000000000000000000000000020000);
property_alloc_deposit_reset_is_idempotent(131,15815929122548744098354409702,209,933);
vm.roll(block.number + 49388);
vm.warp(block.timestamp + 385873);
vm.prank(0x0000000000000000000000000000000000020000);
property_alloc_deposit_reset_is_idempotent(125,39999,12568864,293722316941937191872210671);
vm.roll(block.number + 45627);
vm.warp(block.timestamp + 262802);
vm.prank(0x0000000000000000000000000000000000030000);
property_initiative_ts_matches_user_when_non_zero();
vm.roll(block.number + 13869);
vm.warp(block.timestamp + 38);
vm.prank(0x0000000000000000000000000000000000020000);
property_sum_of_votes_in_bribes_match();
vm.roll(block.number + 8865);
vm.warp(block.timestamp + 166300);
vm.prank(0x0000000000000000000000000000000000030000);
governance_depositLQTYViaPermit(80973242180591189004751278);
vm.roll(block.number + 27161);
vm.warp(block.timestamp + 67);
vm.prank(0x0000000000000000000000000000000000010000);
check_skip_consistecy(200);
vm.roll(block.number + 15609);
vm.warp(block.timestamp + 246182);
vm.prank(0x0000000000000000000000000000000000010000);
optimize_max_claim_underpay_assertion();
vm.roll(block.number + 60474);
vm.warp(block.timestamp + 242164);
vm.prank(0x0000000000000000000000000000000000030000);
property_BI04();
vm.roll(block.number + 5140);
vm.warp(block.timestamp + 186939);
vm.prank(0x0000000000000000000000000000000000030000);
property_sum_of_initatives_matches_total_votes_insolvency_assertion_small();
vm.roll(block.number + 60472);
vm.warp(block.timestamp + 332175);
vm.prank(0x0000000000000000000000000000000000010000);
property_sum_of_initatives_matches_total_votes_strict();
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pushes to main will trigger a comment with a report from Recon