diff --git a/.gas-snapshot b/.gas-snapshot index 490fbf74..1aba2458 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -5,282 +5,283 @@ ArbitrumDAOConstitutionTest:testConstructor() (gas: 259383) ArbitrumDAOConstitutionTest:testMonOwnerCannotSetHash() (gas: 262836) ArbitrumDAOConstitutionTest:testOwnerCanSetHash() (gas: 261148) ArbitrumDAOConstitutionTest:testOwnerCanSetHashTwice() (gas: 263824) -ArbitrumFoundationVestingWalletTest:testBeneficiaryCanSetBeneficiary() (gas: 17150834) -ArbitrumFoundationVestingWalletTest:testMigrateEthToNewWalletWithSlowerVesting() (gas: 20063231) -ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithFasterVesting() (gas: 20067004) -ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithSlowerVesting() (gas: 20066949) -ArbitrumFoundationVestingWalletTest:testMigrationTargetMustBeContract() (gas: 17154167) -ArbitrumFoundationVestingWalletTest:testOnlyBeneficiaryCanRelease() (gas: 17146149) -ArbitrumFoundationVestingWalletTest:testOnlyOwnerCanMigrate() (gas: 17148498) -ArbitrumFoundationVestingWalletTest:testOwnerCanSetBeneficiary() (gas: 17150917) -ArbitrumFoundationVestingWalletTest:testProperlyInits() (gas: 17156286) -ArbitrumFoundationVestingWalletTest:testRandomAddressCantSetBeneficiary() (gas: 17148397) -ArbitrumFoundationVestingWalletTest:testRelease() (gas: 17273676) -ArbitrumVestingWalletFactoryTest:testDeploy() (gas: 4589688) -ArbitrumVestingWalletFactoryTest:testOnlyOwnerCanCreateWallets() (gas: 1504286) -ArbitrumVestingWalletTest:testCastVote() (gas: 17096336) -ArbitrumVestingWalletTest:testCastVoteFailsForNonBeneficiary() (gas: 17020663) -ArbitrumVestingWalletTest:testClaim() (gas: 16851636) -ArbitrumVestingWalletTest:testClaimFailsForNonBeneficiary() (gas: 16786675) -ArbitrumVestingWalletTest:testDelegate() (gas: 16928202) -ArbitrumVestingWalletTest:testDelegateFailsForNonBeneficiary() (gas: 16852303) -ArbitrumVestingWalletTest:testDoesDeploy() (gas: 16790062) -ArbitrumVestingWalletTest:testReleaseAffordance() (gas: 16852517) -ArbitrumVestingWalletTest:testVestedAmountStart() (gas: 16918785) -Cancel:testFuzz_CancelsPendingProposal(uint256) (runs: 256, μ: 318187, ~: 318187) -Cancel:testFuzz_RevertIf_AlreadyCanceled(uint256) (runs: 256, μ: 325445, ~: 325445) -Cancel:testFuzz_RevertIf_NotProposer(uint256,address) (runs: 256, μ: 312789, ~: 312789) -Cancel:testFuzz_RevertIf_ProposalIsActive(uint256) (runs: 256, μ: 317609, ~: 317609) -E2E:testE2E() (gas: 85172474) -Execute:testFuzz_EmitsExecuteEvent(uint256,address) (runs: 256, μ: 571528, ~: 571538) -Execute:testFuzz_ExecutesASucceededProposal(uint256) (runs: 256, μ: 571386, ~: 571386) -Execute:testFuzz_RevertIf_OperationNotReady(uint256,address) (runs: 256, μ: 559933, ~: 559933) -FixedDelegateErc20WalletTest:testInit() (gas: 6131869) -FixedDelegateErc20WalletTest:testInitZeroToken() (gas: 6125399) -FixedDelegateErc20WalletTest:testTransfer() (gas: 6290592) -FixedDelegateErc20WalletTest:testTransferNotOwner() (gas: 6253065) -InboxActionsTest:testPauseAndUpauseInbox() (gas: 370544) -L1AddressRegistryTest:testAddressRegistryAddress() (gas: 47009) -L1ArbitrumTimelockTest:testCancel() (gas: 5349680) -L1ArbitrumTimelockTest:testCancelFailsBadSender() (gas: 5394567) +ArbitrumFoundationVestingWalletTest:testBeneficiaryCanSetBeneficiary() (gas: 16921206) +ArbitrumFoundationVestingWalletTest:testMigrateEthToNewWalletWithSlowerVesting() (gas: 19719095) +ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithFasterVesting() (gas: 19723084) +ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithSlowerVesting() (gas: 19723029) +ArbitrumFoundationVestingWalletTest:testMigrationTargetMustBeContract() (gas: 16924455) +ArbitrumFoundationVestingWalletTest:testOnlyBeneficiaryCanRelease() (gas: 16916407) +ArbitrumFoundationVestingWalletTest:testOnlyOwnerCanMigrate() (gas: 16918774) +ArbitrumFoundationVestingWalletTest:testOwnerCanSetBeneficiary() (gas: 16921289) +ArbitrumFoundationVestingWalletTest:testProperlyInits() (gas: 16926820) +ArbitrumFoundationVestingWalletTest:testRandomAddressCantSetBeneficiary() (gas: 16918655) +ArbitrumFoundationVestingWalletTest:testRelease() (gas: 17044684) +ArbitrumVestingWalletFactoryTest:testDeploy() (gas: 4589694) +ArbitrumVestingWalletFactoryTest:testOnlyOwnerCanCreateWallets() (gas: 1504292) +ArbitrumVestingWalletTest:testCastVote() (gas: 16930552) +ArbitrumVestingWalletTest:testCastVoteFailsForNonBeneficiary() (gas: 16877248) +ArbitrumVestingWalletTest:testClaim() (gas: 16707924) +ArbitrumVestingWalletTest:testClaimFailsForNonBeneficiary() (gas: 16642711) +ArbitrumVestingWalletTest:testDelegate() (gas: 16784670) +ArbitrumVestingWalletTest:testDelegateFailsForNonBeneficiary() (gas: 16708567) +ArbitrumVestingWalletTest:testDoesDeploy() (gas: 16646098) +ArbitrumVestingWalletTest:testReleaseAffordance() (gas: 16708781) +ArbitrumVestingWalletTest:testVestedAmountStart() (gas: 16775433) +Cancel:testFuzz_CancelsPendingProposal(uint256) (runs: 256, μ: 343001, ~: 343001) +Cancel:testFuzz_RevertIf_AlreadyCanceled(uint256) (runs: 256, μ: 350297, ~: 350297) +Cancel:testFuzz_RevertIf_NotProposer(uint256,address) (runs: 256, μ: 337631, ~: 337631) +Cancel:testFuzz_RevertIf_ProposalIsActive(uint256) (runs: 256, μ: 342482, ~: 342482) +E2E:testE2E() (gas: 83338879) +Execute:testFuzz_EmitsExecuteEvent(uint256,address) (runs: 257, μ: 611339, ~: 611339) +Execute:testFuzz_ExecutesASucceededProposal(uint256) (runs: 257, μ: 611129, ~: 611129) +Execute:testFuzz_RevertIf_OperationNotReady(uint256,address) (runs: 257, μ: 599719, ~: 599719) +FixedDelegateErc20WalletTest:testInit() (gas: 5962806) +FixedDelegateErc20WalletTest:testInitZeroToken() (gas: 5956180) +FixedDelegateErc20WalletTest:testTransfer() (gas: 6121973) +FixedDelegateErc20WalletTest:testTransferNotOwner() (gas: 6084194) +InboxActionsTest:testPauseAndUpauseInbox() (gas: 370760) +L1AddressRegistryTest:testAddressRegistryAddress() (gas: 47105) +L1ArbitrumTimelockTest:testCancel() (gas: 5349713) +L1ArbitrumTimelockTest:testCancelFailsBadSender() (gas: 5394603) L1ArbitrumTimelockTest:testDoesDeploy() (gas: 5298115) -L1ArbitrumTimelockTest:testDoesNotDeployZeroInbox() (gas: 5003999) -L1ArbitrumTimelockTest:testDoesNotDeployZeroL2Timelock() (gas: 5001969) -L1ArbitrumTimelockTest:testExecute() (gas: 5430390) -L1ArbitrumTimelockTest:testExecuteInbox() (gas: 5784913) -L1ArbitrumTimelockTest:testExecuteInboxBatch() (gas: 6087778) -L1ArbitrumTimelockTest:testExecuteInboxInvalidData() (gas: 5472118) -L1ArbitrumTimelockTest:testExecuteInboxNotEnoughVal() (gas: 5484716) -L1ArbitrumTimelockTest:testSchedule() (gas: 5382820) -L1ArbitrumTimelockTest:testScheduleFailsBadL2Timelock() (gas: 5311133) -L1ArbitrumTimelockTest:testScheduleFailsBadSender() (gas: 5306117) -L1ArbitrumTokenTest:testBridgeBurn() (gas: 3395571) -L1ArbitrumTokenTest:testBridgeBurnNotGateway() (gas: 3389611) -L1ArbitrumTokenTest:testBridgeMint() (gas: 3390798) -L1ArbitrumTokenTest:testBridgeMintNotGateway() (gas: 3341036) -L1ArbitrumTokenTest:testInit() (gas: 3355939) -L1ArbitrumTokenTest:testInitZeroGateway() (gas: 3177234) -L1ArbitrumTokenTest:testInitZeroNovaGateway() (gas: 3177301) -L1ArbitrumTokenTest:testInitZeroNovaRouter() (gas: 3177235) -L1ArbitrumTokenTest:testRegisterTokenOnL2() (gas: 4568612) -L1ArbitrumTokenTest:testRegisterTokenOnL2NotEnoughVal() (gas: 4425799) -L1GovernanceFactoryTest:testL1GovernanceFactory() (gas: 10796104) -L1GovernanceFactoryTest:testSetMinDelay() (gas: 10771086) -L1GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 10824041) +L1ArbitrumTimelockTest:testDoesNotDeployZeroInbox() (gas: 5004008) +L1ArbitrumTimelockTest:testDoesNotDeployZeroL2Timelock() (gas: 5001978) +L1ArbitrumTimelockTest:testExecute() (gas: 5430420) +L1ArbitrumTimelockTest:testExecuteInbox() (gas: 5784952) +L1ArbitrumTimelockTest:testExecuteInboxBatch() (gas: 6087826) +L1ArbitrumTimelockTest:testExecuteInboxInvalidData() (gas: 5472154) +L1ArbitrumTimelockTest:testExecuteInboxNotEnoughVal() (gas: 5484755) +L1ArbitrumTimelockTest:testSchedule() (gas: 5382865) +L1ArbitrumTimelockTest:testScheduleFailsBadL2Timelock() (gas: 5311169) +L1ArbitrumTimelockTest:testScheduleFailsBadSender() (gas: 5306141) +L1ArbitrumTokenTest:testBridgeBurn() (gas: 3395679) +L1ArbitrumTokenTest:testBridgeBurnNotGateway() (gas: 3389683) +L1ArbitrumTokenTest:testBridgeMint() (gas: 3390882) +L1ArbitrumTokenTest:testBridgeMintNotGateway() (gas: 3341084) +L1ArbitrumTokenTest:testInit() (gas: 3356227) +L1ArbitrumTokenTest:testInitZeroGateway() (gas: 3177270) +L1ArbitrumTokenTest:testInitZeroNovaGateway() (gas: 3177337) +L1ArbitrumTokenTest:testInitZeroNovaRouter() (gas: 3177271) +L1ArbitrumTokenTest:testRegisterTokenOnL2() (gas: 4568996) +L1ArbitrumTokenTest:testRegisterTokenOnL2NotEnoughVal() (gas: 4425871) +L1GovernanceFactoryTest:testL1GovernanceFactory() (gas: 10796764) +L1GovernanceFactoryTest:testSetMinDelay() (gas: 10771242) +L1GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 10824209) L2AddressRegistryTest:testAddressRegistryAddress() (gas: 54702) -L2ArbitrumTokenTest:testCanBurn() (gas: 4375935) -L2ArbitrumTokenTest:testCanMint2Percent() (gas: 4410685) -L2ArbitrumTokenTest:testCanMintLessThan2Percent() (gas: 4410687) -L2ArbitrumTokenTest:testCanMintTwiceWithWarp() (gas: 8808833) -L2ArbitrumTokenTest:testCanMintZero() (gas: 4390766) -L2ArbitrumTokenTest:testCanTransferAndCallContract() (gas: 4520940) -L2ArbitrumTokenTest:testCanTransferAndCallEmpty() (gas: 4406077) -L2ArbitrumTokenTest:testCannotMintMoreThan2Percent() (gas: 4380156) -L2ArbitrumTokenTest:testCannotMintNotOwner() (gas: 4377992) -L2ArbitrumTokenTest:testCannotMintTwice() (gas: 8776585) -L2ArbitrumTokenTest:testCannotMintWithoutFastForward() (gas: 4378417) -L2ArbitrumTokenTest:testCannotTransferAndCallNonReceiver() (gas: 4403338) -L2ArbitrumTokenTest:testCannotTransferAndCallReverter() (gas: 4463884) -L2ArbitrumTokenTest:testDecreaseDVPOnUndelegate() (gas: 4485899) -L2ArbitrumTokenTest:testDoesNotInitialiseZeroInitialSup() (gas: 4108951) -L2ArbitrumTokenTest:testDoesNotInitialiseZeroL1Token() (gas: 4108903) -L2ArbitrumTokenTest:testDoesNotInitialiseZeroOwner() (gas: 4108994) -L2ArbitrumTokenTest:testDvpAdjustment(uint64,int64) (runs: 256, μ: 4423467, ~: 4424046) -L2ArbitrumTokenTest:testDvpAtBlockBeforeFirstCheckpoint() (gas: 4423454) -L2ArbitrumTokenTest:testDvpDecreaseOnTransferFromDelegator() (gas: 4526229) -L2ArbitrumTokenTest:testDvpIncreaseOnTransferToDelegator() (gas: 4517654) -L2ArbitrumTokenTest:testDvpNoChangeOnSelfTransfer() (gas: 4541977) -L2ArbitrumTokenTest:testDvpNoChangeOnTransferToDelegator() (gas: 4595404) -L2ArbitrumTokenTest:testDvpNoChangeOnTransferToNonDelegator() (gas: 4401973) -L2ArbitrumTokenTest:testDvpNoRevertOnUnderflow() (gas: 4506504) -L2ArbitrumTokenTest:testIncreaseDVPOnDelegateToAnother() (gas: 4492355) -L2ArbitrumTokenTest:testIncreaseDVPOnSelfDelegate() (gas: 4492477) -L2ArbitrumTokenTest:testInitialDvpEstimate(uint64) (runs: 256, μ: 4417926, ~: 4417926) -L2ArbitrumTokenTest:testIsInitialised() (gas: 4381576) -L2ArbitrumTokenTest:testNoChangeDVPOnRedelegateToSame() (gas: 4564379) -L2ArbitrumTokenTest:testNoDoublePostUpgradeInit() (gas: 4418459) -L2ArbitrumTokenTest:testNoLogicContractInit() (gas: 3001325) -L2GovernanceFactoryTest:testContractsDeployed() (gas: 29751026) -L2GovernanceFactoryTest:testContractsInitialized() (gas: 29788109) -L2GovernanceFactoryTest:testDeploySteps() (gas: 29762535) -L2GovernanceFactoryTest:testProxyAdminOwnership() (gas: 29760036) -L2GovernanceFactoryTest:testRoles() (gas: 29783023) -L2GovernanceFactoryTest:testSanityCheckValues() (gas: 29807431) -L2GovernanceFactoryTest:testSetMinDelay() (gas: 29756032) -L2GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 29808903) -L2GovernanceFactoryTest:testUpgraderCanCancel() (gas: 30122181) -L2SecurityCouncilMgmtFactoryTest:testMemberElectionGovDeployment() (gas: 30767668) -L2SecurityCouncilMgmtFactoryTest:testNomineeElectionGovDeployment() (gas: 30771899) -L2SecurityCouncilMgmtFactoryTest:testOnlyOwnerCanDeploy() (gas: 25781453) -L2SecurityCouncilMgmtFactoryTest:testRemovalGovDeployment() (gas: 30769899) -L2SecurityCouncilMgmtFactoryTest:testSecurityCouncilManagerDeployment() (gas: 30788992) -MiscTests:testCantReinit() (gas: 14479629) -MiscTests:testDVPQuorumAndClamping() (gas: 14734764) -MiscTests:testExecutorPermissions() (gas: 14516972) -MiscTests:testExecutorPermissionsFail() (gas: 14489330) -MiscTests:testPastCirculatingSupply() (gas: 14483380) -MiscTests:testPastCirculatingSupplyExclude() (gas: 14675601) -MiscTests:testPastCirculatingSupplyMint() (gas: 14552007) -MiscTests:testProperlyInitialized() (gas: 14477337) +L2ArbitrumTokenTest:testCanBurn() (gas: 4206836) +L2ArbitrumTokenTest:testCanMint2Percent() (gas: 4241646) +L2ArbitrumTokenTest:testCanMintLessThan2Percent() (gas: 4241648) +L2ArbitrumTokenTest:testCanMintTwiceWithWarp() (gas: 8470883) +L2ArbitrumTokenTest:testCanMintZero() (gas: 4221727) +L2ArbitrumTokenTest:testCanTransferAndCallContract() (gas: 4351925) +L2ArbitrumTokenTest:testCanTransferAndCallEmpty() (gas: 4237038) +L2ArbitrumTokenTest:testCannotMintMoreThan2Percent() (gas: 4210987) +L2ArbitrumTokenTest:testCannotMintNotOwner() (gas: 4208823) +L2ArbitrumTokenTest:testCannotMintTwice() (gas: 8438506) +L2ArbitrumTokenTest:testCannotMintWithoutFastForward() (gas: 4209248) +L2ArbitrumTokenTest:testCannotTransferAndCallNonReceiver() (gas: 4234323) +L2ArbitrumTokenTest:testCannotTransferAndCallReverter() (gas: 4294869) +L2ArbitrumTokenTest:testDecreaseDVPOnUndelegate() (gas: 4317040) +L2ArbitrumTokenTest:testDoesNotInitialiseZeroInitialSup() (gas: 3939579) +L2ArbitrumTokenTest:testDoesNotInitialiseZeroL1Token() (gas: 3939531) +L2ArbitrumTokenTest:testDoesNotInitialiseZeroOwner() (gas: 3939634) +L2ArbitrumTokenTest:testDvpAdjustment(uint64,int64) (runs: 256, μ: 4254235, ~: 4254851) +L2ArbitrumTokenTest:testDvpAtBlockBeforeFirstCheckpoint() (gas: 4254247) +L2ArbitrumTokenTest:testDvpDecreaseOnTransferFromDelegator() (gas: 4357412) +L2ArbitrumTokenTest:testDvpIncreaseOnTransferToDelegator() (gas: 4348789) +L2ArbitrumTokenTest:testDvpNoChangeOnSelfTransfer() (gas: 4373472) +L2ArbitrumTokenTest:testDvpNoChangeOnTransferToDelegator() (gas: 4426737) +L2ArbitrumTokenTest:testDvpNoChangeOnTransferToNonDelegator() (gas: 4232910) +L2ArbitrumTokenTest:testDvpNoRevertOnUnderflow() (gas: 4337873) +L2ArbitrumTokenTest:testIncreaseDVPOnDelegateToAnother() (gas: 4323322) +L2ArbitrumTokenTest:testIncreaseDVPOnSelfDelegate() (gas: 4323444) +L2ArbitrumTokenTest:testInitialDvpEstimate(uint64) (runs: 256, μ: 4248719, ~: 4248719) +L2ArbitrumTokenTest:testIsInitialised() (gas: 4212423) +L2ArbitrumTokenTest:testNoChangeDVPOnRedelegateToSame() (gas: 4395748) +L2ArbitrumTokenTest:testNoDoublePostUpgradeInit() (gas: 4249264) +L2ArbitrumTokenTest:testNoLogicContractInit() (gas: 2831938) +L2GovernanceFactoryTest:testContractsDeployed() (gas: 29387763) +L2GovernanceFactoryTest:testContractsInitialized() (gas: 29424888) +L2GovernanceFactoryTest:testDeploySteps() (gas: 29399416) +L2GovernanceFactoryTest:testProxyAdminOwnership() (gas: 29396773) +L2GovernanceFactoryTest:testRoles() (gas: 29419760) +L2GovernanceFactoryTest:testSanityCheckValues() (gas: 29444230) +L2GovernanceFactoryTest:testSetMinDelay() (gas: 29392769) +L2GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 29445646) +L2GovernanceFactoryTest:testUpgraderCanCancel() (gas: 29766026) +L2SecurityCouncilMgmtFactoryTest:testMemberElectionGovDeployment() (gas: 29718801) +L2SecurityCouncilMgmtFactoryTest:testNomineeElectionGovDeployment() (gas: 29723152) +L2SecurityCouncilMgmtFactoryTest:testOnlyOwnerCanDeploy() (gas: 24767154) +L2SecurityCouncilMgmtFactoryTest:testRemovalGovDeployment() (gas: 29721032) +L2SecurityCouncilMgmtFactoryTest:testSecurityCouncilManagerDeployment() (gas: 29740353) +MiscTests:testCantReinit() (gas: 14345705) +MiscTests:testDVPQuorumAndClamping() (gas: 14717884) +MiscTests:testExecutorPermissions() (gas: 14383151) +MiscTests:testExecutorPermissionsFail() (gas: 14355476) +MiscTests:testMinMaxQuorumGetters() (gas: 14413247) +MiscTests:testPastCirculatingSupply() (gas: 14349820) +MiscTests:testPastCirculatingSupplyExclude() (gas: 14539332) +MiscTests:testPastCirculatingSupplyMint() (gas: 14416262) +MiscTests:testProperlyInitialized() (gas: 14343456) NomineeGovernorV2UpgradeActionTest:testAction() (gas: 8153) -OfficeHoursActionTest:testConstructor() (gas: 9050) -OfficeHoursActionTest:testFuzzOfficeHoursDeployment(uint256,uint256,int256,uint256,uint256,uint256) (runs: 256, μ: 317050, ~: 317184) -OfficeHoursActionTest:testInvalidConstructorParameters() (gas: 235740) +OfficeHoursActionTest:testConstructor() (gas: 9053) +OfficeHoursActionTest:testFuzzOfficeHoursDeployment(uint256,uint256,int256,uint256,uint256,uint256) (runs: 256, μ: 317104, ~: 317184) +OfficeHoursActionTest:testInvalidConstructorParameters() (gas: 235758) OfficeHoursActionTest:testPerformBeforeMinimumTimestamp() (gas: 8646) OfficeHoursActionTest:testPerformDuringOfficeHours() (gas: 9140) OfficeHoursActionTest:testPerformFridayUTCSaturdayLocal() (gas: 304792) -OfficeHoursActionTest:testPerformMondayUTCSundayLocal() (gas: 304780) +OfficeHoursActionTest:testPerformMondayUTCSundayLocal() (gas: 304783) OfficeHoursActionTest:testPerformOnWeekend() (gas: 9327) OfficeHoursActionTest:testPerformOutsideOfficeHours() (gas: 9537) -OutboxActionsTest:testAddOutbxesAction() (gas: 651443) -OutboxActionsTest:testCantAddEOA() (gas: 969058) -OutboxActionsTest:testCantReAddOutbox() (gas: 974434) -OutboxActionsTest:testRemoveAllOutboxes() (gas: 693079) -OutboxActionsTest:testRemoveOutboxes() (gas: 853972) -Propose:testFuzz_EmitsProposalCreatedEvent(uint256) (runs: 256, μ: 319802, ~: 319802) -Propose:testFuzz_ProposerAboveThresholdCanPropose(uint256) (runs: 256, μ: 309390, ~: 309390) -Propose:testFuzz_ProposerBelowThresholdCannotPropose(address) (runs: 256, μ: 46186, ~: 46186) -ProxyUpgradeAndCallActionTest:testUpgrade() (gas: 137140) -ProxyUpgradeAndCallActionTest:testUpgradeAndCall() (gas: 143087) -Queue:testFuzz_EmitsQueueEvent(uint256) (runs: 256, μ: 503712, ~: 503712) -Queue:testFuzz_QueuesASucceededProposal(uint256) (runs: 256, μ: 523088, ~: 523088) -Queue:testFuzz_RevertIf_ProposalIsNotSucceeded(uint256) (runs: 256, μ: 422327, ~: 422327) -SecurityCouncilManagerTest:testAddMemberAffordances() (gas: 249992) -SecurityCouncilManagerTest:testAddMemberSpecialAddresses() (gas: 20795) -SecurityCouncilManagerTest:testAddMemberToFirstCohort() (gas: 340446) -SecurityCouncilManagerTest:testAddMemberToSecondCohort() (gas: 343742) -SecurityCouncilManagerTest:testAddSC() (gas: 118567) -SecurityCouncilManagerTest:testAddSCAffordances() (gas: 112083) -SecurityCouncilManagerTest:testCantUpdateCohortWithADup() (gas: 123116) -SecurityCouncilManagerTest:testCohortMethods() (gas: 136185) -SecurityCouncilManagerTest:testInitialization() (gas: 193074) -SecurityCouncilManagerTest:testRemoveMember() (gas: 213370) -SecurityCouncilManagerTest:testRemoveMemberAffordances() (gas: 99074) -SecurityCouncilManagerTest:testRemoveSCAffordances() (gas: 81253) -SecurityCouncilManagerTest:testRemoveSeC() (gas: 38309) -SecurityCouncilManagerTest:testReplaceMemberAffordances() (gas: 208560) -SecurityCouncilManagerTest:testReplaceMemberInFirstCohort() (gas: 259129) -SecurityCouncilManagerTest:testReplaceMemberInSecondCohort() (gas: 262646) -SecurityCouncilManagerTest:testRotateMember() (gas: 259133) -SecurityCouncilManagerTest:testUpdateCohortAffordances() (gas: 83026) -SecurityCouncilManagerTest:testUpdateFirstCohort() (gas: 295652) -SecurityCouncilManagerTest:testUpdateRouter() (gas: 76296) -SecurityCouncilManagerTest:testUpdateRouterAffordacnes() (gas: 109879) -SecurityCouncilManagerTest:testUpdateSecondCohort() (gas: 295657) -SecurityCouncilMemberElectionGovernorTest:testCannotUseMoreVotesThanAvailable() (gas: 246997) -SecurityCouncilMemberElectionGovernorTest:testCastBySig() (gas: 302852) -SecurityCouncilMemberElectionGovernorTest:testCastBySigTwice() (gas: 266244) +OutboxActionsTest:testAddOutbxesAction() (gas: 651905) +OutboxActionsTest:testCantAddEOA() (gas: 969460) +OutboxActionsTest:testCantReAddOutbox() (gas: 974878) +OutboxActionsTest:testRemoveAllOutboxes() (gas: 693873) +OutboxActionsTest:testRemoveOutboxes() (gas: 854776) +Propose:testFuzz_EmitsProposalCreatedEvent(uint256) (runs: 256, μ: 344799, ~: 344799) +Propose:testFuzz_ProposerAboveThresholdCanPropose(uint256) (runs: 256, μ: 334217, ~: 334217) +Propose:testFuzz_ProposerBelowThresholdCannotPropose(address) (runs: 256, μ: 46371, ~: 46371) +ProxyUpgradeAndCallActionTest:testUpgrade() (gas: 137146) +ProxyUpgradeAndCallActionTest:testUpgradeAndCall() (gas: 143096) +Queue:testFuzz_EmitsQueueEvent(uint256) (runs: 257, μ: 538170, ~: 538170) +Queue:testFuzz_QueuesASucceededProposal(uint256) (runs: 257, μ: 562826, ~: 562826) +Queue:testFuzz_RevertIf_ProposalIsNotSucceeded(uint256) (runs: 257, μ: 433353, ~: 433353) +SecurityCouncilManagerTest:testAddMemberAffordances() (gas: 251726) +SecurityCouncilManagerTest:testAddMemberSpecialAddresses() (gas: 20837) +SecurityCouncilManagerTest:testAddMemberToFirstCohort() (gas: 344166) +SecurityCouncilManagerTest:testAddMemberToSecondCohort() (gas: 347534) +SecurityCouncilManagerTest:testAddSC() (gas: 118681) +SecurityCouncilManagerTest:testAddSCAffordances() (gas: 112323) +SecurityCouncilManagerTest:testCantUpdateCohortWithADup() (gas: 125183) +SecurityCouncilManagerTest:testCohortMethods() (gas: 137289) +SecurityCouncilManagerTest:testInitialization() (gas: 193842) +SecurityCouncilManagerTest:testRemoveMember() (gas: 214972) +SecurityCouncilManagerTest:testRemoveMemberAffordances() (gas: 99314) +SecurityCouncilManagerTest:testRemoveSCAffordances() (gas: 81379) +SecurityCouncilManagerTest:testRemoveSeC() (gas: 38381) +SecurityCouncilManagerTest:testReplaceMemberAffordances() (gas: 209484) +SecurityCouncilManagerTest:testReplaceMemberInFirstCohort() (gas: 261463) +SecurityCouncilManagerTest:testReplaceMemberInSecondCohort() (gas: 265052) +SecurityCouncilManagerTest:testRotateMember() (gas: 261467) +SecurityCouncilManagerTest:testUpdateCohortAffordances() (gas: 83176) +SecurityCouncilManagerTest:testUpdateFirstCohort() (gas: 299573) +SecurityCouncilManagerTest:testUpdateRouter() (gas: 76374) +SecurityCouncilManagerTest:testUpdateRouterAffordacnes() (gas: 109981) +SecurityCouncilManagerTest:testUpdateSecondCohort() (gas: 299578) +SecurityCouncilMemberElectionGovernorTest:testCannotUseMoreVotesThanAvailable() (gas: 247063) +SecurityCouncilMemberElectionGovernorTest:testCastBySig() (gas: 302942) +SecurityCouncilMemberElectionGovernorTest:testCastBySigTwice() (gas: 266328) SecurityCouncilMemberElectionGovernorTest:testCastVoteReverts() (gas: 35277) -SecurityCouncilMemberElectionGovernorTest:testExecute() (gas: 665450) -SecurityCouncilMemberElectionGovernorTest:testForceSupport() (gas: 165349) -SecurityCouncilMemberElectionGovernorTest:testInitReverts() (gas: 4922497) -SecurityCouncilMemberElectionGovernorTest:testInvalidParams() (gas: 165321) -SecurityCouncilMemberElectionGovernorTest:testMiscVotesViews() (gas: 227939) -SecurityCouncilMemberElectionGovernorTest:testNoVoteForNonCompliantNominee() (gas: 123524) -SecurityCouncilMemberElectionGovernorTest:testNoZeroWeightVotes() (gas: 169595) -SecurityCouncilMemberElectionGovernorTest:testOnlyNomineeElectionGovernorCanPropose() (gas: 111038) +SecurityCouncilMemberElectionGovernorTest:testExecute() (gas: 665669) +SecurityCouncilMemberElectionGovernorTest:testForceSupport() (gas: 165397) +SecurityCouncilMemberElectionGovernorTest:testInitReverts() (gas: 4868350) +SecurityCouncilMemberElectionGovernorTest:testInvalidParams() (gas: 165369) +SecurityCouncilMemberElectionGovernorTest:testMiscVotesViews() (gas: 227999) +SecurityCouncilMemberElectionGovernorTest:testNoVoteForNonCompliantNominee() (gas: 123578) +SecurityCouncilMemberElectionGovernorTest:testNoZeroWeightVotes() (gas: 169643) +SecurityCouncilMemberElectionGovernorTest:testOnlyNomineeElectionGovernorCanPropose() (gas: 111068) SecurityCouncilMemberElectionGovernorTest:testProperInitialization() (gas: 49388) -SecurityCouncilMemberElectionGovernorTest:testProposeReverts() (gas: 32916) -SecurityCouncilMemberElectionGovernorTest:testRelay() (gas: 42229) -SecurityCouncilMemberElectionGovernorTest:testSelectTopNominees(uint256) (runs: 256, μ: 339878, ~: 339880) -SecurityCouncilMemberElectionGovernorTest:testSelectTopNomineesFails() (gas: 273335) -SecurityCouncilMemberElectionGovernorTest:testSetFullWeightDuration() (gas: 34951) -SecurityCouncilMemberElectionGovernorTest:testVotesToWeight() (gas: 152898) -SecurityCouncilMemberRemovalGovernorTest:testInitFails() (gas: 10467559) -SecurityCouncilMemberRemovalGovernorTest:testProposalCreationCallParamRestriction() (gas: 56157) -SecurityCouncilMemberRemovalGovernorTest:testProposalCreationCallRestriction() (gas: 49685) -SecurityCouncilMemberRemovalGovernorTest:testProposalCreationTargetLen() (gas: 35392) -SecurityCouncilMemberRemovalGovernorTest:testProposalCreationTargetRestriction() (gas: 46987) -SecurityCouncilMemberRemovalGovernorTest:testProposalCreationUnexpectedCallDataLen() (gas: 41583) -SecurityCouncilMemberRemovalGovernorTest:testProposalCreationValuesRestriction() (gas: 61908) -SecurityCouncilMemberRemovalGovernorTest:testProposalDoesExpire() (gas: 272415) -SecurityCouncilMemberRemovalGovernorTest:testProposalExpirationDeadline() (gas: 134809) -SecurityCouncilMemberRemovalGovernorTest:testRelay() (gas: 42123) -SecurityCouncilMemberRemovalGovernorTest:testSeparateSelector() (gas: 23536) -SecurityCouncilMemberRemovalGovernorTest:testSetVoteSuccessNumerator() (gas: 30049) -SecurityCouncilMemberRemovalGovernorTest:testSetVoteSuccessNumeratorAffordance() (gas: 47631) -SecurityCouncilMemberRemovalGovernorTest:testSuccessNumeratorInsufficientVotes() (gas: 358195) -SecurityCouncilMemberRemovalGovernorTest:testSuccessNumeratorSufficientVotes() (gas: 361113) -SecurityCouncilMemberRemovalGovernorTest:testSuccessfulProposalAndCantAbstain() (gas: 142630) -SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 8094226) -SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 8095064) -SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 8121127) -SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 8121134) -SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 8085063) -SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 8085063) -SecurityCouncilMemberSyncActionTest:testNonces() (gas: 8385778) -SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 8084162) -SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 8085088) -SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 8085408) -SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 8086269) -SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8327657) -SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8328518) +SecurityCouncilMemberElectionGovernorTest:testProposeReverts() (gas: 32952) +SecurityCouncilMemberElectionGovernorTest:testRelay() (gas: 42235) +SecurityCouncilMemberElectionGovernorTest:testSelectTopNominees(uint256) (runs: 256, μ: 339674, ~: 339572) +SecurityCouncilMemberElectionGovernorTest:testSelectTopNomineesFails() (gas: 273353) +SecurityCouncilMemberElectionGovernorTest:testSetFullWeightDuration() (gas: 34963) +SecurityCouncilMemberElectionGovernorTest:testVotesToWeight() (gas: 152946) +SecurityCouncilMemberRemovalGovernorTest:testInitFails() (gas: 10244398) +SecurityCouncilMemberRemovalGovernorTest:testProposalCreationCallParamRestriction() (gas: 56250) +SecurityCouncilMemberRemovalGovernorTest:testProposalCreationCallRestriction() (gas: 49754) +SecurityCouncilMemberRemovalGovernorTest:testProposalCreationTargetLen() (gas: 35452) +SecurityCouncilMemberRemovalGovernorTest:testProposalCreationTargetRestriction() (gas: 47062) +SecurityCouncilMemberRemovalGovernorTest:testProposalCreationUnexpectedCallDataLen() (gas: 41634) +SecurityCouncilMemberRemovalGovernorTest:testProposalCreationValuesRestriction() (gas: 61959) +SecurityCouncilMemberRemovalGovernorTest:testProposalDoesExpire() (gas: 272715) +SecurityCouncilMemberRemovalGovernorTest:testProposalExpirationDeadline() (gas: 134968) +SecurityCouncilMemberRemovalGovernorTest:testRelay() (gas: 42219) +SecurityCouncilMemberRemovalGovernorTest:testSeparateSelector() (gas: 23599) +SecurityCouncilMemberRemovalGovernorTest:testSetVoteSuccessNumerator() (gas: 30103) +SecurityCouncilMemberRemovalGovernorTest:testSetVoteSuccessNumeratorAffordance() (gas: 47727) +SecurityCouncilMemberRemovalGovernorTest:testSuccessNumeratorInsufficientVotes() (gas: 358561) +SecurityCouncilMemberRemovalGovernorTest:testSuccessNumeratorSufficientVotes() (gas: 361479) +SecurityCouncilMemberRemovalGovernorTest:testSuccessfulProposalAndCantAbstain() (gas: 142792) +SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 7827528) +SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 7828366) +SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 7855341) +SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 7855363) +SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 7822494) +SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 7822494) +SecurityCouncilMemberSyncActionTest:testNonces() (gas: 8124889) +SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 7817392) +SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 7818318) +SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 7819214) +SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 7820075) +SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8065891) +SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8066751) SecurityCouncilMgmtUtilsTests:testIsInArray() (gas: 2102) -SecurityCouncilNomineeElectionGovernorTest:testAddContender() (gas: 270750) -SecurityCouncilNomineeElectionGovernorTest:testCastBySig() (gas: 333730) -SecurityCouncilNomineeElectionGovernorTest:testCastBySigTwice() (gas: 296589) +SecurityCouncilNomineeElectionGovernorTest:testAddContender() (gas: 271338) +SecurityCouncilNomineeElectionGovernorTest:testCastBySig() (gas: 334285) +SecurityCouncilNomineeElectionGovernorTest:testCastBySigTwice() (gas: 297042) SecurityCouncilNomineeElectionGovernorTest:testCastVoteReverts() (gas: 35278) -SecurityCouncilNomineeElectionGovernorTest:testCountVote() (gas: 582574) -SecurityCouncilNomineeElectionGovernorTest:testCreateElection() (gas: 253153) -SecurityCouncilNomineeElectionGovernorTest:testExcludeNominee() (gas: 456505) -SecurityCouncilNomineeElectionGovernorTest:testExecute() (gas: 677159) -SecurityCouncilNomineeElectionGovernorTest:testForceSupport() (gas: 194733) -SecurityCouncilNomineeElectionGovernorTest:testIncludeNominee() (gas: 674020) -SecurityCouncilNomineeElectionGovernorTest:testInvalidInit() (gas: 7256741) -SecurityCouncilNomineeElectionGovernorTest:testProperInitialization() (gas: 78113) -SecurityCouncilNomineeElectionGovernorTest:testProposeFails() (gas: 19740) -SecurityCouncilNomineeElectionGovernorTest:testRelay() (gas: 42427) -SecurityCouncilNomineeElectionGovernorTest:testSetNomineeVetter() (gas: 39905) -SequencerActionsTest:testAddAndRemoveSequencer() (gas: 486652) +SecurityCouncilNomineeElectionGovernorTest:testCountVote() (gas: 584254) +SecurityCouncilNomineeElectionGovernorTest:testCreateElection() (gas: 253465) +SecurityCouncilNomineeElectionGovernorTest:testExcludeNominee() (gas: 457489) +SecurityCouncilNomineeElectionGovernorTest:testExecute() (gas: 678680) +SecurityCouncilNomineeElectionGovernorTest:testForceSupport() (gas: 194997) +SecurityCouncilNomineeElectionGovernorTest:testIncludeNominee() (gas: 675910) +SecurityCouncilNomineeElectionGovernorTest:testInvalidInit() (gas: 6977267) +SecurityCouncilNomineeElectionGovernorTest:testProperInitialization() (gas: 78233) +SecurityCouncilNomineeElectionGovernorTest:testProposeFails() (gas: 19791) +SecurityCouncilNomineeElectionGovernorTest:testRelay() (gas: 42523) +SecurityCouncilNomineeElectionGovernorTest:testSetNomineeVetter() (gas: 40037) +SequencerActionsTest:testAddAndRemoveSequencer() (gas: 486700) SequencerActionsTest:testCantAddZeroAddress() (gas: 235659) -SetInitialGovParamsActionTest:testL1() (gas: 259949) -SetInitialGovParamsActionTest:testL2() (gas: 688895) -SetSequencerInboxMaxTimeVariationActionTest:testSetMaxTimeVariation() (gas: 310296) -SwitchManagerRolesActionTest:testAction() (gas: 6313) -TokenDistributorTest:testClaim() (gas: 6123114) -TokenDistributorTest:testClaimAndDelegate() (gas: 6234360) -TokenDistributorTest:testClaimAndDelegateFailsForExpired() (gas: 6128615) -TokenDistributorTest:testClaimAndDelegateFailsForWrongSender() (gas: 6184412) -TokenDistributorTest:testClaimAndDelegateFailsWrongNonce() (gas: 6184413) -TokenDistributorTest:testClaimFailsAfterEnd() (gas: 6059257) -TokenDistributorTest:testClaimFailsBeforeStart() (gas: 6058752) -TokenDistributorTest:testClaimFailsForFalseTransfer() (gas: 6041468) -TokenDistributorTest:testClaimFailsForTwice() (gas: 6121874) -TokenDistributorTest:testClaimFailsForUnknown() (gas: 6061333) -TokenDistributorTest:testClaimStartAfterClaimEnd() (gas: 4443432) -TokenDistributorTest:testDoesDeploy() (gas: 5648847) -TokenDistributorTest:testDoesDeployAndDeposit() (gas: 5759805) -TokenDistributorTest:testOldClaimStart() (gas: 4443995) -TokenDistributorTest:testSetRecipients() (gas: 6057167) -TokenDistributorTest:testSetRecipientsFailsNotEnoughDeposit() (gas: 6024040) -TokenDistributorTest:testSetRecipientsFailsNotOwner() (gas: 5775581) -TokenDistributorTest:testSetRecipientsFailsWhenAddingTwice() (gas: 6068222) -TokenDistributorTest:testSetRecipientsFailsWrongAmountCount() (gas: 5777051) -TokenDistributorTest:testSetRecipientsFailsWrongRecipientCount() (gas: 5777280) -TokenDistributorTest:testSetRecipientsTwice() (gas: 6746774) -TokenDistributorTest:testSetSweepReceiver() (gas: 6061484) -TokenDistributorTest:testSetSweepReceiverFailsNullAddress() (gas: 6059103) -TokenDistributorTest:testSetSweepReceiverFailsOwner() (gas: 6060064) -TokenDistributorTest:testSweep() (gas: 6132341) -TokenDistributorTest:testSweepAfterClaim() (gas: 6195472) -TokenDistributorTest:testSweepFailsBeforeClaimPeriodEnd() (gas: 6058825) -TokenDistributorTest:testSweepFailsForFailedTransfer() (gas: 6062536) -TokenDistributorTest:testSweepFailsTwice() (gas: 6132167) -TokenDistributorTest:testWithdraw() (gas: 6099572) -TokenDistributorTest:testWithdrawFailsNotOwner() (gas: 6099594) -TokenDistributorTest:testWithdrawFailsTransfer() (gas: 6061039) -TokenDistributorTest:testZeroDelegateTo() (gas: 4441327) -TokenDistributorTest:testZeroOwner() (gas: 4441240) -TokenDistributorTest:testZeroReceiver() (gas: 4441269) -TokenDistributorTest:testZeroToken() (gas: 71889) -TopNomineesGasTest:testTopNomineesGas() (gas: 4502996) -UpgradeExecRouteBuilderTest:testAIP1Point2() (gas: 1444846) -UpgradeExecRouteBuilderTest:testActionType() (gas: 1754290) -UpgradeExecRouteBuilderTest:testRouteBuilderErrors() (gas: 1274775) -UpgradeExecutorTest:testAdminCanChangeExecutor() (gas: 2739548) -UpgradeExecutorTest:testCantExecuteEOA() (gas: 2595534) -UpgradeExecutorTest:testExecute() (gas: 2833808) -UpgradeExecutorTest:testExecuteFailsForAdmin() (gas: 2819427) -UpgradeExecutorTest:testExecuteFailsForNobody() (gas: 2821668) -UpgradeExecutorTest:testInit() (gas: 2583172) -UpgradeExecutorTest:testInitFailsZeroAdmin() (gas: 2444110) \ No newline at end of file +SetInitialGovParamsActionTest:testL1() (gas: 260009) +SetInitialGovParamsActionTest:testL2() (gas: 689085) +SetSequencerInboxMaxTimeVariationActionTest:testSetMaxTimeVariation() (gas: 310404) +SwitchManagerRolesActionTest:testAction() (gas: 6319) +TokenDistributorTest:testClaim() (gas: 5876433) +TokenDistributorTest:testClaimAndDelegate() (gas: 5987949) +TokenDistributorTest:testClaimAndDelegateFailsForExpired() (gas: 5881922) +TokenDistributorTest:testClaimAndDelegateFailsForWrongSender() (gas: 5937905) +TokenDistributorTest:testClaimAndDelegateFailsWrongNonce() (gas: 5937906) +TokenDistributorTest:testClaimFailsAfterEnd() (gas: 5812336) +TokenDistributorTest:testClaimFailsBeforeStart() (gas: 5811825) +TokenDistributorTest:testClaimFailsForFalseTransfer() (gas: 5794547) +TokenDistributorTest:testClaimFailsForTwice() (gas: 5875187) +TokenDistributorTest:testClaimFailsForUnknown() (gas: 5814412) +TokenDistributorTest:testClaimStartAfterClaimEnd() (gas: 4274189) +TokenDistributorTest:testDoesDeploy() (gas: 5401698) +TokenDistributorTest:testDoesDeployAndDeposit() (gas: 5512878) +TokenDistributorTest:testOldClaimStart() (gas: 4274752) +TokenDistributorTest:testSetRecipients() (gas: 5810222) +TokenDistributorTest:testSetRecipientsFailsNotEnoughDeposit() (gas: 5777102) +TokenDistributorTest:testSetRecipientsFailsNotOwner() (gas: 5528624) +TokenDistributorTest:testSetRecipientsFailsWhenAddingTwice() (gas: 5821288) +TokenDistributorTest:testSetRecipientsFailsWrongAmountCount() (gas: 5530088) +TokenDistributorTest:testSetRecipientsFailsWrongRecipientCount() (gas: 5530317) +TokenDistributorTest:testSetRecipientsTwice() (gas: 6499843) +TokenDistributorTest:testSetSweepReceiver() (gas: 5814545) +TokenDistributorTest:testSetSweepReceiverFailsNullAddress() (gas: 5812176) +TokenDistributorTest:testSetSweepReceiverFailsOwner() (gas: 5813131) +TokenDistributorTest:testSweep() (gas: 5885702) +TokenDistributorTest:testSweepAfterClaim() (gas: 5949073) +TokenDistributorTest:testSweepFailsBeforeClaimPeriodEnd() (gas: 5811892) +TokenDistributorTest:testSweepFailsForFailedTransfer() (gas: 5815633) +TokenDistributorTest:testSweepFailsTwice() (gas: 5885510) +TokenDistributorTest:testWithdraw() (gas: 5852909) +TokenDistributorTest:testWithdrawFailsNotOwner() (gas: 5852931) +TokenDistributorTest:testWithdrawFailsTransfer() (gas: 5814112) +TokenDistributorTest:testZeroDelegateTo() (gas: 4272084) +TokenDistributorTest:testZeroOwner() (gas: 4271997) +TokenDistributorTest:testZeroReceiver() (gas: 4272026) +TokenDistributorTest:testZeroToken() (gas: 71812) +TopNomineesGasTest:testTopNomineesGas() (gas: 4533086) +UpgradeExecRouteBuilderTest:testAIP1Point2() (gas: 1408809) +UpgradeExecRouteBuilderTest:testActionType() (gas: 1718332) +UpgradeExecRouteBuilderTest:testRouteBuilderErrors() (gas: 1238856) +UpgradeExecutorTest:testAdminCanChangeExecutor() (gas: 2677248) +UpgradeExecutorTest:testCantExecuteEOA() (gas: 2533144) +UpgradeExecutorTest:testExecute() (gas: 2771532) +UpgradeExecutorTest:testExecuteFailsForAdmin() (gas: 2757061) +UpgradeExecutorTest:testExecuteFailsForNobody() (gas: 2759302) +UpgradeExecutorTest:testInit() (gas: 2520920) +UpgradeExecutorTest:testInitFailsZeroAdmin() (gas: 2381696) \ No newline at end of file diff --git a/foundry.toml b/foundry.toml index 26097a46..0e3f4a50 100644 --- a/foundry.toml +++ b/foundry.toml @@ -4,7 +4,7 @@ src = 'src' out = 'out' libs = ['lib'] optimizer = true -optimizer_runs = 20000 +optimizer_runs = 10000 via_ir = false solc_version = '0.8.16' diff --git a/hardhat.config.ts b/hardhat.config.ts index 7b6985b3..b9d9ac52 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -10,7 +10,7 @@ const solidityProfiles = { settings: { optimizer: { enabled: true, - runs: 20000 + runs: 10000 }, } }, diff --git a/src/L2ArbitrumGovernor.sol b/src/L2ArbitrumGovernor.sol index 79a075ae..170de56c 100644 --- a/src/L2ArbitrumGovernor.sol +++ b/src/L2ArbitrumGovernor.sol @@ -14,6 +14,7 @@ import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorTimelockControlUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/CheckpointsUpgradeable.sol"; import {L2ArbitrumToken} from "./L2ArbitrumToken.sol"; /// @title L2ArbitrumGovernor @@ -31,6 +32,8 @@ contract L2ArbitrumGovernor is GovernorPreventLateQuorumUpgradeable, OwnableUpgradeable { + using CheckpointsUpgradeable for CheckpointsUpgradeable.History; + /// @notice address for which votes will not be counted toward quorum /// @dev A portion of the Arbitrum tokens will be held by entities (eg the treasury) that /// are not eligible to vote. However, even if their voting/delegation is restricted their @@ -43,13 +46,9 @@ contract L2ArbitrumGovernor is address public constant EXCLUDE_ADDRESS = address(0xA4b86); /// @notice Maximum quorum allowed for a proposal - /// @dev Since the setting is not checkpointed, it is possible that an existing proposal - /// with quorum greater than the maximum can have its quorum suddenly jump to equal maximumQuorum - uint256 public maximumQuorum; + CheckpointsUpgradeable.History private _maximumQuorumHistory; /// @notice Minimum quorum allowed for a proposal - /// @dev Since the setting is not checkpointed, it is possible that an existing proposal - /// with quorum lesser than the minimum can have its quorum suddenly jump to equal minimumQuorum - uint256 public minimumQuorum; + CheckpointsUpgradeable.History private _minimumQuorumHistory; /// @notice Mapping from proposal ID to the address of the proposer. /// @dev Used in cancel() to ensure only the proposer can cancel the proposal. @@ -85,6 +84,14 @@ contract L2ArbitrumGovernor is __GovernorVotesQuorumFraction_init(_quorumNumerator); __GovernorPreventLateQuorum_init(_minPeriodAfterQuorum); _transferOwnership(_owner); + _setQuorumMinAndMax(0, type(uint224).max); + } + + /// @notice Initializes the quorum min/max and numerator after an upgrade to DVP based quorum + function postUpgradeInit(uint256 _minimumQuorum, uint256 _maximumQuorum, uint256 _newQuorumNumerator) external onlyOwner { + require(_minimumQuorumHistory._checkpoints.length == 0, "L2ArbitrumGovernor: ALREADY_INITIALIZED"); + _setQuorumMinAndMax(_minimumQuorum, _maximumQuorum); + _updateQuorumNumerator(_newQuorumNumerator); } /// @notice Allows the owner to make calls from the governor @@ -179,16 +186,21 @@ contract L2ArbitrumGovernor is } /// @notice Set the quorum minimum and maximum - /// @dev Since the setting is not checkpointed, it is possible that an existing proposal - /// with quorum outside the new min/max can have its quorum suddenly jump to equal - /// the new min or max + /// @dev This setting is checkpointed, so it will only take effect for proposals + /// whose snapshot block is after the current block. function setQuorumMinAndMax(uint256 _minimumQuorum, uint256 _maximumQuorum) external onlyGovernance + { + _setQuorumMinAndMax(_minimumQuorum, _maximumQuorum); + } + + function _setQuorumMinAndMax(uint256 _minimumQuorum, uint256 _maximumQuorum) + internal { require(_minimumQuorum < _maximumQuorum, "L2ArbitrumGovernor: MIN_GT_MAX"); - minimumQuorum = _minimumQuorum; - maximumQuorum = _maximumQuorum; + _minimumQuorumHistory.push(_minimumQuorum); + _maximumQuorumHistory.push(_maximumQuorum); } /// @notice Get "circulating" votes supply; i.e., total minus excluded vote exclude address. @@ -224,30 +236,54 @@ contract L2ArbitrumGovernor is override(IGovernorUpgradeable, GovernorVotesQuorumFractionUpgradeable) returns (uint256) { + // if we are pre dvp quorum, use the old quorum calculation + // otherwise, proceed to DVP-based calculation + if (blockNumber < dvpQuorumStartBlock()) { + return (getPastCirculatingSupply(blockNumber) * quorumNumerator(blockNumber)) + / quorumDenominator(); + } + + // get past total delegated votes (excluding EXCLUDE_ADDRESS) uint256 pastTotalDelegatedVotes = getPastTotalDelegatedVotes(blockNumber); - // if pastTotalDelegatedVotes is 0, then blockNumber is almost certainly prior to the first totalDelegatedVotes checkpoint - // in this case we should use getPastCirculatingSupply to ensure quorum of pre-existing proposals is unchanged - // in the unlikely event that totalDvp is 0 for a block _after_ the dvp update, getPastCirculatingSupply will be used with a larger quorumNumerator, - // resulting in a much higher calculated quorum. This is okay because quorum is clamped. - uint256 calculatedQuorum = ( - ( - pastTotalDelegatedVotes == 0 - ? getPastCirculatingSupply(blockNumber) - : pastTotalDelegatedVotes - ) * quorumNumerator(blockNumber) - ) / quorumDenominator(); + // calculate quorum based on delegated votes + uint256 calculatedQuorum = + (pastTotalDelegatedVotes * quorumNumerator(blockNumber)) / quorumDenominator(); + + // get min and max quorum at the given block + uint256 _minimumQuorum = _minimumQuorumHistory.getAtBlock(blockNumber); + uint256 _maximumQuorum = _maximumQuorumHistory.getAtBlock(blockNumber); // clamp the calculated quorum between minimumQuorum and maximumQuorum - if (calculatedQuorum < minimumQuorum) { - return minimumQuorum; - } else if (calculatedQuorum > maximumQuorum) { - return maximumQuorum; + if (calculatedQuorum < _minimumQuorum) { + return _minimumQuorum; + } else if (calculatedQuorum > _maximumQuorum) { + return _maximumQuorum; } else { return calculatedQuorum; } } + /// @notice Get the block number at which DVP quorum calculation started + /// @dev Returns the block number at which the minimum quorum was first set + function dvpQuorumStartBlock() public view returns (uint256) { + return _minimumQuorumHistory._checkpoints[0]._blockNumber; + } + + /// @notice Get the maximum quorum at a specific block number + /// @param blockNumber The block number to get the maximum quorum at + /// @dev Returns 0 if blockNumber < dvpQuorumStartBlock() + function maximumQuorum(uint256 blockNumber) external view returns (uint256) { + return _maximumQuorumHistory.getAtBlock(blockNumber); + } + + /// @notice Get the minimum quorum at a specific block number + /// @param blockNumber The block number to get the minimum quorum at + /// @dev Returns 0 if blockNumber < dvpQuorumStartBlock() + function minimumQuorum(uint256 blockNumber) external view returns (uint256) { + return _minimumQuorumHistory.getAtBlock(blockNumber); + } + /// @inheritdoc GovernorVotesQuorumFractionUpgradeable function quorumDenominator() public diff --git a/src/gov-action-contracts/AIPs/ActivateDvpQuorumAction.sol b/src/gov-action-contracts/AIPs/ActivateDvpQuorumAction.sol index cf0b0f96..317a4f58 100644 --- a/src/gov-action-contracts/AIPs/ActivateDvpQuorumAction.sol +++ b/src/gov-action-contracts/AIPs/ActivateDvpQuorumAction.sol @@ -80,48 +80,23 @@ contract ActivateDvpQuorumAction { address payable coreGov = payable(address(IL2AddressRegistry(l2AddressRegistry).coreGov())); govProxyAdmin.upgrade(TransparentUpgradeableProxy(coreGov), newGovernorImpl); - // 4. Set the new quorum numerator for the core governor - L2ArbitrumGovernor(coreGov).relay( - coreGov, - 0, - abi.encodeCall( - GovernorVotesQuorumFractionUpgradeable.updateQuorumNumerator, - (newCoreQuorumNumerator) - ) + // 4. postUpgradeInit on core governor + L2ArbitrumGovernor(coreGov).postUpgradeInit( + coreMinimumQuorum, + coreMaximumQuorum, + newCoreQuorumNumerator ); - // 5. Set the quorum min/max for the core governor - L2ArbitrumGovernor(coreGov).relay( - coreGov, - 0, - abi.encodeCall( - L2ArbitrumGovernor.setQuorumMinAndMax, (coreMinimumQuorum, coreMaximumQuorum) - ) - ); - - // 6. Upgrade the treasury governor contract + // 5. Upgrade the treasury governor contract address payable treasuryGov = payable(address(IL2AddressRegistry(l2AddressRegistry).treasuryGov())); govProxyAdmin.upgrade(TransparentUpgradeableProxy(treasuryGov), newGovernorImpl); - // 7. Set the new quorum numerator for the treasury governor - L2ArbitrumGovernor(treasuryGov).relay( - treasuryGov, - 0, - abi.encodeCall( - GovernorVotesQuorumFractionUpgradeable.updateQuorumNumerator, - (newTreasuryQuorumNumerator) - ) - ); - - // 8. Set the quorum min/max for the treasury governor - L2ArbitrumGovernor(treasuryGov).relay( - treasuryGov, - 0, - abi.encodeCall( - L2ArbitrumGovernor.setQuorumMinAndMax, - (treasuryMinimumQuorum, treasuryMaximumQuorum) - ) + // 6. postUpgradeInit on treasury governor + L2ArbitrumGovernor(treasuryGov).postUpgradeInit( + treasuryMinimumQuorum, + treasuryMaximumQuorum, + newTreasuryQuorumNumerator ); } } diff --git a/test/ArbitrumVestingWallet.t.sol b/test/ArbitrumVestingWallet.t.sol index b48f4d6a..81848bff 100644 --- a/test/ArbitrumVestingWallet.t.sol +++ b/test/ArbitrumVestingWallet.t.sol @@ -86,6 +86,9 @@ contract ArbitrumVestingWalletTest is Test { vm.prank(owner); td.setRecipients(recipients, claims); + vm.prank(address(gov)); + gov.setQuorumMinAndMax(0, type(uint224).max); + return (wallet, token, gov, td); } diff --git a/test/L2ArbitrumGovernor.t.sol b/test/L2ArbitrumGovernor.t.sol index 9d998397..c1e52c73 100644 --- a/test/L2ArbitrumGovernor.t.sol +++ b/test/L2ArbitrumGovernor.t.sol @@ -33,6 +33,8 @@ contract L2ArbitrumGovernorTest is Test { address someRando = address(741); address executor = address(842); + uint256 dvpStartingBlock = 100; + L2ArbitrumGovernor _governor; L2ArbitrumToken _token; ArbitrumTimelock _timelock; @@ -103,6 +105,8 @@ contract L2ArbitrumGovernorTest is Test { L2ArbitrumGovernor l2ArbitrumGovernor = L2ArbitrumGovernor(payable(TestUtil.deployProxy(address(new L2ArbitrumGovernor())))); + + vm.roll(dvpStartingBlock); l2ArbitrumGovernor.initialize( token, timelock, @@ -121,7 +125,7 @@ contract L2ArbitrumGovernorTest is Test { timelock.grantRole(timelock.EXECUTOR_ROLE(), address(l2ArbitrumGovernor)); } - _setQuorumMinAndMax(l2ArbitrumGovernor, 0, type(uint256).max); + _setQuorumMinAndMax(l2ArbitrumGovernor, 1, type(uint224).max); _governorProxyAdmin = abi.decode( abi.encodePacked( vm.load( @@ -157,7 +161,7 @@ contract L2ArbitrumGovernorTest is Test { vm.stopPrank(); vm.prank(proposer); _token.delegate(proposer); - vm.roll(3); + vm.roll(dvpStartingBlock + 3); return proposer; } @@ -249,20 +253,20 @@ contract MiscTests is L2ArbitrumGovernorTest { (L2ArbitrumGovernor l2ArbitrumGovernor, L2ArbitrumToken token,,,) = deployAndInit(); vm.warp(200_000_000_000_000_000); - vm.roll(2); + vm.roll(dvpStartingBlock + 2); vm.prank(tokenOwner); token.mint(someRando, 200); - vm.roll(3); + vm.roll(dvpStartingBlock + 3); assertEq( - l2ArbitrumGovernor.getPastCirculatingSupply(2), + l2ArbitrumGovernor.getPastCirculatingSupply(dvpStartingBlock + 2), initialTokenSupply + 200, "Mint should be reflected in getPastCirculatingSupply" ); assertEq( - l2ArbitrumGovernor.quorum(2), - ((initialTokenSupply + 200) * quorumNumerator) / 10_000, - "Mint should be reflected in quorum" + l2ArbitrumGovernor.quorum(dvpStartingBlock + 2), + 1, + "Mint should not be reflected in quorum" ); } @@ -270,27 +274,27 @@ contract MiscTests is L2ArbitrumGovernorTest { (L2ArbitrumGovernor l2ArbitrumGovernor, L2ArbitrumToken token,,,) = deployAndInit(); address excludeAddress = l2ArbitrumGovernor.EXCLUDE_ADDRESS(); - vm.roll(3); + vm.roll(dvpStartingBlock + 3); vm.warp(300_000_000_000_000_000); vm.prank(tokenOwner); token.mint(excludeListMember, 300); vm.prank(excludeListMember); token.delegate(excludeAddress); - vm.roll(4); + vm.roll(dvpStartingBlock + 4); assertEq( - token.getPastVotes(excludeAddress, 3), 300, "didn't delegate to votes exclude address" + token.getPastVotes(excludeAddress, dvpStartingBlock + 3), 300, "didn't delegate to votes exclude address" ); assertEq( - l2ArbitrumGovernor.getPastCirculatingSupply(3), + l2ArbitrumGovernor.getPastCirculatingSupply(dvpStartingBlock + 3), initialTokenSupply, "votes at exlcude-address member shouldn't affect circulating supply" ); assertEq( - l2ArbitrumGovernor.quorum(3), - (initialTokenSupply * quorumNumerator) / 10_000, - "votes at exlcude-address member shouldn't affect quorum" + l2ArbitrumGovernor.quorum(dvpStartingBlock + 3), + 1, + "should have 1 (clamped) because all votes are delegated to exclude-address" ); } @@ -298,9 +302,9 @@ contract MiscTests is L2ArbitrumGovernorTest { (L2ArbitrumGovernor l2ArbitrumGovernor,,,,) = deployAndInit(); vm.warp(200_000_000_000_000_000); - vm.roll(2); + vm.roll(dvpStartingBlock + 2); assertEq( - l2ArbitrumGovernor.getPastCirculatingSupply(1), + l2ArbitrumGovernor.getPastCirculatingSupply(dvpStartingBlock + 1), initialTokenSupply, "Inital supply error" ); @@ -381,40 +385,84 @@ contract MiscTests is L2ArbitrumGovernorTest { function testDVPQuorumAndClamping() external { (L2ArbitrumGovernor l2ArbitrumGovernor, L2ArbitrumToken token,,,) = deployAndInit(); - vm.roll(2); - - // since total DVP is zero, the governor should fallback to circulating supply - // in this case quorum should be 2500 - assertEq(l2ArbitrumGovernor.quorum(1), 2500, "quorum should be 2500"); - - // test clamping in circ supply mode - _setQuorumMinAndMax(l2ArbitrumGovernor, 3000, 4000); - assertEq(l2ArbitrumGovernor.quorum(1), 3000, "quorum should be clamped to min 3000"); - _setQuorumMinAndMax(l2ArbitrumGovernor, 1, 2000); - assertEq(l2ArbitrumGovernor.quorum(1), 2000, "quorum should be clamped to max 2000"); + vm.roll(dvpStartingBlock + 2); + _setQuorumMinAndMax(l2ArbitrumGovernor, 2000, 4000); + vm.roll(dvpStartingBlock + 3); // delegate some tokens to get into DVP mode vm.prank(tokenOwner); token.delegate(someRando); vm.prank(tokenOwner); token.transfer(address(1), 100); - vm.roll(3); + vm.roll(dvpStartingBlock + 4); - assertEq(token.getTotalDelegationAt(2), initialTokenSupply - 100, "DVP error"); + // test clamping in DVP mode + _setQuorumMinAndMax(l2ArbitrumGovernor, 10000, 20000); + vm.roll(dvpStartingBlock + 5); + _setQuorumMinAndMax(l2ArbitrumGovernor, 1, 2000); + vm.roll(dvpStartingBlock + 6); + // we have 0 delegation, and 0 min, so quorum should be 0 + assertEq(l2ArbitrumGovernor.quorum(dvpStartingBlock + 1), 1, "quorum should be clamped to 1 with no delegation"); + + // we have 0 delegation, and min 2000, so quorum should be clamped to min + assertEq(l2ArbitrumGovernor.quorum(dvpStartingBlock + 2), 2000, "quorum should be clamped to min 2000"); + assertEq(token.getTotalDelegationAt(dvpStartingBlock + 3), initialTokenSupply - 100, "DVP error"); // make sure quorum is calculated based on DVP now - _setQuorumMinAndMax(l2ArbitrumGovernor, 0, type(uint256).max); assertEq( - l2ArbitrumGovernor.quorum(2), + l2ArbitrumGovernor.quorum(dvpStartingBlock + 3), 2495, // ((initialTokenSupply - 100) * quorumNumerator) / 10_000, "quorum should be based on DVP" ); + assertEq(l2ArbitrumGovernor.quorum(dvpStartingBlock + 4), 10000, "quorum should be clamped to min 10000"); + assertEq(l2ArbitrumGovernor.quorum(dvpStartingBlock + 5), 2000, "quorum should be clamped to max 2000"); + } + + function testMinMaxQuorumGetters() external { + (L2ArbitrumGovernor l2ArbitrumGovernor,,,,) = deployAndInit(); + + assertEq( + l2ArbitrumGovernor.dvpQuorumStartBlock(), + dvpStartingBlock, + "dvpQuorumStartBlock not set correctly" + ); - // test clamping in DVP mode - _setQuorumMinAndMax(l2ArbitrumGovernor, 2500, 3000); - assertEq(l2ArbitrumGovernor.quorum(2), 2500, "quorum should be clamped to min 2500"); - _setQuorumMinAndMax(l2ArbitrumGovernor, 1, 2000); - assertEq(l2ArbitrumGovernor.quorum(2), 2000, "quorum should be clamped to max 2000"); + assertEq( + l2ArbitrumGovernor.minimumQuorum(dvpStartingBlock - 1), + 0, + "should be 0 before DVP quorum start block" + ); + assertEq( + l2ArbitrumGovernor.maximumQuorum(dvpStartingBlock - 1), + 0, + "should be 0 before DVP quorum start block" + ); + + vm.roll(dvpStartingBlock + 2); + + _setQuorumMinAndMax(l2ArbitrumGovernor, 1234, 5678); + vm.roll(dvpStartingBlock + 3); + + assertEq( + l2ArbitrumGovernor.minimumQuorum(dvpStartingBlock + 2), + 1234, + "minimum quorum not set correctly" + ); + assertEq( + l2ArbitrumGovernor.maximumQuorum(dvpStartingBlock + 2), + 5678, + "maximum quorum not set correctly" + ); + assertEq( + l2ArbitrumGovernor.minimumQuorum(block.number - 1), + 1234, + "current minimum quorum not set correctly" + ); + assertEq( + l2ArbitrumGovernor.maximumQuorum(block.number - 1), + 5678, + "current maximum quorum not set correctly" + ); } } diff --git a/test/L2GovernanceFactory.t.sol b/test/L2GovernanceFactory.t.sol index 5b5a7023..afb7dc78 100644 --- a/test/L2GovernanceFactory.t.sol +++ b/test/L2GovernanceFactory.t.sol @@ -144,6 +144,9 @@ contract L2GovernanceFactoryTest is Test { l2GovernanceFactory.deployStep1(deployCoreParams); vm.stopPrank(); + vm.prank(address(contracts.coreGov)); + contracts.coreGov.setQuorumMinAndMax(0, type(uint224).max); + // owner shoud successfully carrout out step 3 vm.startPrank(owner); l2GovernanceFactory.deployStep3(aliasedL1Timelock); diff --git a/test/gov-actions/ActivateDvpQuorumAction.t.sol b/test/gov-actions/ActivateDvpQuorumAction.t.sol index 0754cd7e..0201a02d 100644 --- a/test/gov-actions/ActivateDvpQuorumAction.t.sol +++ b/test/gov-actions/ActivateDvpQuorumAction.t.sol @@ -84,24 +84,27 @@ contract ActivateDvpQuorumActionTest is Test { "initial total delegation estimate not set correctly" ); + // roll forward one block so we can call minimumQuorum and maximumQuorum + vm.roll(block.number + 1); + // verify the governors were upgraded by checking minimum and maximum quorum values assertEq( - coreGovernor.minimumQuorum(), + coreGovernor.minimumQuorum(block.number - 1), 250 ether, "core governor minimum quorum not set correctly" ); assertEq( - coreGovernor.maximumQuorum(), + coreGovernor.maximumQuorum(block.number - 1), 250_000_000 ether, "core governor maximum quorum not set correctly" ); assertEq( - treasuryGovernor.minimumQuorum(), + treasuryGovernor.minimumQuorum(block.number - 1), 240 ether, "treasury governor minimum quorum not set correctly" ); assertEq( - treasuryGovernor.maximumQuorum(), + treasuryGovernor.maximumQuorum(block.number - 1), 240_000_000 ether, "treasury governor maximum quorum not set correctly" ); @@ -132,6 +135,13 @@ contract ActivateDvpQuorumActionTest is Test { expectedTreasuryQuorum, "treasury governor quorum not calculated correctly at next block" ); + + // ensure dvpQuorumStartBlock is set correctly + assertEq( + coreGovernor.dvpQuorumStartBlock(), + 23_569_916, + "core governor dvpQuorumStartBlock not set correctly" + ); } } diff --git a/test/signatures/L2ArbitrumGovernor b/test/signatures/L2ArbitrumGovernor index 56ff6c7d..0eaf9f25 100644 --- a/test/signatures/L2ArbitrumGovernor +++ b/test/signatures/L2ArbitrumGovernor @@ -22,6 +22,8 @@ |------------------------------------------------------------------------------------+------------| | castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32) | 03420181 | |------------------------------------------------------------------------------------+------------| +| dvpQuorumStartBlock() | 68c58a5f | +|------------------------------------------------------------------------------------+------------| | execute(address[],uint256[],bytes[],bytes32) | 2656227d | |------------------------------------------------------------------------------------+------------| | getPastCirculatingSupply(uint256) | 6e462680 | @@ -40,9 +42,9 @@ |------------------------------------------------------------------------------------+------------| | lateQuorumVoteExtension() | 32b8113e | |------------------------------------------------------------------------------------+------------| -| maximumQuorum() | 13a2e752 | +| maximumQuorum(uint256) | acd092fa | |------------------------------------------------------------------------------------+------------| -| minimumQuorum() | 8160f0b5 | +| minimumQuorum(uint256) | 5a029541 | |------------------------------------------------------------------------------------+------------| | name() | 06fdde03 | |------------------------------------------------------------------------------------+------------| @@ -54,6 +56,8 @@ |------------------------------------------------------------------------------------+------------| | owner() | 8da5cb5b | |------------------------------------------------------------------------------------+------------| +| postUpgradeInit(uint256,uint256,uint256) | 3b3af665 | +|------------------------------------------------------------------------------------+------------| | proposalDeadline(uint256) | c01f9e37 | |------------------------------------------------------------------------------------+------------| | proposalEta(uint256) | ab58fb8e | diff --git a/test/storage/L2ArbitrumGovernor b/test/storage/L2ArbitrumGovernor index d9a66e7c..baec923c 100644 --- a/test/storage/L2ArbitrumGovernor +++ b/test/storage/L2ArbitrumGovernor @@ -66,9 +66,9 @@ |-------------------------+---------------------------------------------------------------------------+------+--------+-------+-----------------------------------------------| | __gap | uint256[49] | 605 | 0 | 1568 | src/L2ArbitrumGovernor.sol:L2ArbitrumGovernor | |-------------------------+---------------------------------------------------------------------------+------+--------+-------+-----------------------------------------------| -| maximumQuorum | uint256 | 654 | 0 | 32 | src/L2ArbitrumGovernor.sol:L2ArbitrumGovernor | +| _maximumQuorumHistory | struct CheckpointsUpgradeable.History | 654 | 0 | 32 | src/L2ArbitrumGovernor.sol:L2ArbitrumGovernor | |-------------------------+---------------------------------------------------------------------------+------+--------+-------+-----------------------------------------------| -| minimumQuorum | uint256 | 655 | 0 | 32 | src/L2ArbitrumGovernor.sol:L2ArbitrumGovernor | +| _minimumQuorumHistory | struct CheckpointsUpgradeable.History | 655 | 0 | 32 | src/L2ArbitrumGovernor.sol:L2ArbitrumGovernor | |-------------------------+---------------------------------------------------------------------------+------+--------+-------+-----------------------------------------------| | proposers | mapping(uint256 => address) | 656 | 0 | 32 | src/L2ArbitrumGovernor.sol:L2ArbitrumGovernor | |-------------------------+---------------------------------------------------------------------------+------+--------+-------+-----------------------------------------------|