diff --git a/.gas-snapshot b/.gas-snapshot index 2b52e7281..15ea6c386 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,276 +1,305 @@ -AIP1Point2ActionTest:testAction() (gas: 629593) +AIP1Point2ActionTest:testAction() (gas: 629637) AIPNovaFeeRoutingActionTest:testAction() (gas: 3074) ActivateDvpQuorumActionTest:testAction() (gas: 3074) ArbitrumDAOConstitutionTest:testConstructor() (gas: 259383) ArbitrumDAOConstitutionTest:testMonOwnerCannotSetHash() (gas: 262836) ArbitrumDAOConstitutionTest:testOwnerCanSetHash() (gas: 261148) ArbitrumDAOConstitutionTest:testOwnerCanSetHashTwice() (gas: 263824) -ArbitrumFoundationVestingWalletTest:testBeneficiaryCanSetBeneficiary() (gas: 16332113) -ArbitrumFoundationVestingWalletTest:testMigrateEthToNewWalletWithSlowerVesting() (gas: 19243772) -ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithFasterVesting() (gas: 19247115) -ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithSlowerVesting() (gas: 19247060) -ArbitrumFoundationVestingWalletTest:testMigrationTargetMustBeContract() (gas: 16335446) -ArbitrumFoundationVestingWalletTest:testOnlyBeneficiaryCanRelease() (gas: 16327428) -ArbitrumFoundationVestingWalletTest:testOnlyOwnerCanMigrate() (gas: 16329777) -ArbitrumFoundationVestingWalletTest:testOwnerCanSetBeneficiary() (gas: 16332196) -ArbitrumFoundationVestingWalletTest:testProperlyInits() (gas: 16337566) -ArbitrumFoundationVestingWalletTest:testRandomAddressCantSetBeneficiary() (gas: 16329676) -ArbitrumFoundationVestingWalletTest:testRelease() (gas: 16448651) -ArbitrumVestingWalletFactoryTest:testDeploy() (gas: 4589688) -ArbitrumVestingWalletFactoryTest:testOnlyOwnerCanCreateWallets() (gas: 1504286) -ArbitrumVestingWalletTest:testCastVote() (gas: 16201599) -ArbitrumVestingWalletTest:testCastVoteFailsForNonBeneficiary() (gas: 16151356) -ArbitrumVestingWalletTest:testClaim() (gas: 16007783) -ArbitrumVestingWalletTest:testClaimFailsForNonBeneficiary() (gas: 15967970) -ArbitrumVestingWalletTest:testDelegate() (gas: 16081121) -ArbitrumVestingWalletTest:testDelegateFailsForNonBeneficiary() (gas: 16008450) -ArbitrumVestingWalletTest:testDoesDeploy() (gas: 15971357) -ArbitrumVestingWalletTest:testReleaseAffordance() (gas: 16008664) -ArbitrumVestingWalletTest:testVestedAmountStart() (gas: 16074932) +ArbitrumFoundationVestingWalletTest:testBeneficiaryCanSetBeneficiary() (gas: 16921226) +ArbitrumFoundationVestingWalletTest:testMigrateEthToNewWalletWithSlowerVesting() (gas: 19719120) +ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithFasterVesting() (gas: 19723109) +ArbitrumFoundationVestingWalletTest:testMigrateTokensToNewWalletWithSlowerVesting() (gas: 19723054) +ArbitrumFoundationVestingWalletTest:testMigrationTargetMustBeContract() (gas: 16924475) +ArbitrumFoundationVestingWalletTest:testOnlyBeneficiaryCanRelease() (gas: 16916427) +ArbitrumFoundationVestingWalletTest:testOnlyOwnerCanMigrate() (gas: 16918794) +ArbitrumFoundationVestingWalletTest:testOwnerCanSetBeneficiary() (gas: 16921309) +ArbitrumFoundationVestingWalletTest:testProperlyInits() (gas: 16926840) +ArbitrumFoundationVestingWalletTest:testRandomAddressCantSetBeneficiary() (gas: 16918675) +ArbitrumFoundationVestingWalletTest:testRelease() (gas: 17044704) +ArbitrumVestingWalletFactoryTest:testDeploy() (gas: 4589694) +ArbitrumVestingWalletFactoryTest:testOnlyOwnerCanCreateWallets() (gas: 1504292) +ArbitrumVestingWalletTest:testCastVote() (gas: 16930567) +ArbitrumVestingWalletTest:testCastVoteFailsForNonBeneficiary() (gas: 16877263) +ArbitrumVestingWalletTest:testClaim() (gas: 16707939) +ArbitrumVestingWalletTest:testClaimFailsForNonBeneficiary() (gas: 16642726) +ArbitrumVestingWalletTest:testDelegate() (gas: 16784685) +ArbitrumVestingWalletTest:testDelegateFailsForNonBeneficiary() (gas: 16708582) +ArbitrumVestingWalletTest:testDoesDeploy() (gas: 16646113) +ArbitrumVestingWalletTest:testReleaseAffordance() (gas: 16708796) +ArbitrumVestingWalletTest:testVestedAmountStart() (gas: 16775448) +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) CancelTimelockAndRemoveMemberActionTest:testAction() (gas: 8159) -E2E:testE2E() (gas: 86806023) -FixedDelegateErc20WalletTest:testInit() (gas: 5822585) -FixedDelegateErc20WalletTest:testInitZeroToken() (gas: 5816815) -FixedDelegateErc20WalletTest:testTransfer() (gas: 5932228) -FixedDelegateErc20WalletTest:testTransferNotOwner() (gas: 5897853) -InboxActionsTest:testPauseAndUpauseInbox() (gas: 370544) -L1AddressRegistryTest:testAddressRegistryAddress() (gas: 47009) -L1ArbitrumTimelockTest:testCancel() (gas: 5324647) -L1ArbitrumTimelockTest:testCancelFailsBadSender() (gas: 5369534) -L1ArbitrumTimelockTest:testDoesDeploy() (gas: 5273082) -L1ArbitrumTimelockTest:testDoesNotDeployZeroInbox() (gas: 4978966) -L1ArbitrumTimelockTest:testDoesNotDeployZeroL2Timelock() (gas: 4976936) -L1ArbitrumTimelockTest:testExecute() (gas: 5405357) -L1ArbitrumTimelockTest:testExecuteInbox() (gas: 5746383) -L1ArbitrumTimelockTest:testExecuteInboxBatch() (gas: 6056746) -L1ArbitrumTimelockTest:testExecuteInboxInvalidData() (gas: 5426404) -L1ArbitrumTimelockTest:testExecuteInboxNotEnoughVal() (gas: 5446215) -L1ArbitrumTimelockTest:testSchedule() (gas: 5357787) -L1ArbitrumTimelockTest:testScheduleFailsBadL2Timelock() (gas: 5286100) -L1ArbitrumTimelockTest:testScheduleFailsBadSender() (gas: 5281084) -L1ArbitrumTokenTest:testBridgeBurn() (gas: 3395576) -L1ArbitrumTokenTest:testBridgeBurnNotGateway() (gas: 3389616) -L1ArbitrumTokenTest:testBridgeMint() (gas: 3390803) -L1ArbitrumTokenTest:testBridgeMintNotGateway() (gas: 3341041) -L1ArbitrumTokenTest:testInit() (gas: 3355944) -L1ArbitrumTokenTest:testInitZeroGateway() (gas: 3177239) -L1ArbitrumTokenTest:testInitZeroNovaGateway() (gas: 3177306) -L1ArbitrumTokenTest:testInitZeroNovaRouter() (gas: 3177240) -L1ArbitrumTokenTest:testRegisterTokenOnL2() (gas: 4568617) -L1ArbitrumTokenTest:testRegisterTokenOnL2NotEnoughVal() (gas: 4425804) -L1GovernanceFactoryTest:testL1GovernanceFactory() (gas: 10771066) -L1GovernanceFactoryTest:testSetMinDelay() (gas: 10746048) -L1GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 10799003) -L2AddressRegistryTest:testAddressRegistryAddress() (gas: 54770) -L2ArbitrumGovernorTest:testCantReinit() (gas: 13669504) -L2ArbitrumGovernorTest:testExecutorPermissions() (gas: 13706498) -L2ArbitrumGovernorTest:testExecutorPermissionsFail() (gas: 13679150) -L2ArbitrumGovernorTest:testPastCirculatingSupply() (gas: 13673253) -L2ArbitrumGovernorTest:testPastCirculatingSupplyExclude() (gas: 13812730) -L2ArbitrumGovernorTest:testPastCirculatingSupplyMint() (gas: 13737233) -L2ArbitrumGovernorTest:testProperlyInitialized() (gas: 13664721) -L2ArbitrumTokenTest:testCanBurn() (gas: 4066835) -L2ArbitrumTokenTest:testCanMint2Percent() (gas: 4101512) -L2ArbitrumTokenTest:testCanMintLessThan2Percent() (gas: 4101514) -L2ArbitrumTokenTest:testCanMintTwiceWithWarp() (gas: 8190691) -L2ArbitrumTokenTest:testCanMintZero() (gas: 4081635) -L2ArbitrumTokenTest:testCanTransferAndCallContract() (gas: 4211883) -L2ArbitrumTokenTest:testCanTransferAndCallEmpty() (gas: 4096932) -L2ArbitrumTokenTest:testCannotMintMoreThan2Percent() (gas: 4071458) -L2ArbitrumTokenTest:testCannotMintNotOwner() (gas: 4069341) -L2ArbitrumTokenTest:testCannotMintTwice() (gas: 8158921) -L2ArbitrumTokenTest:testCannotMintWithoutFastForward() (gas: 4069700) -L2ArbitrumTokenTest:testCannotTransferAndCallNonReceiver() (gas: 4094203) -L2ArbitrumTokenTest:testCannotTransferAndCallReverter() (gas: 4154761) -L2ArbitrumTokenTest:testDoesNotInitialiseZeroInitialSup() (gas: 3800718) -L2ArbitrumTokenTest:testDoesNotInitialiseZeroL1Token() (gas: 3800726) -L2ArbitrumTokenTest:testDoesNotInitialiseZeroOwner() (gas: 3800739) -L2ArbitrumTokenTest:testIsInitialised() (gas: 4072777) -L2ArbitrumTokenTest:testNoLogicContractInit() (gas: 2693127) -L2GovernanceFactoryTest:testContractsDeployed() (gas: 28514933) -L2GovernanceFactoryTest:testContractsInitialized() (gas: 28551928) -L2GovernanceFactoryTest:testDeploySteps() (gas: 28526442) -L2GovernanceFactoryTest:testProxyAdminOwnership() (gas: 28523943) -L2GovernanceFactoryTest:testRoles() (gas: 28546930) -L2GovernanceFactoryTest:testSanityCheckValues() (gas: 28571182) -L2GovernanceFactoryTest:testSetMinDelay() (gas: 28519939) -L2GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 28572810) -L2GovernanceFactoryTest:testUpgraderCanCancel() (gas: 28812928) -L2SecurityCouncilMgmtFactoryTest:testMemberElectionGovDeployment() (gas: 32271955) -L2SecurityCouncilMgmtFactoryTest:testNomineeElectionGovDeployment() (gas: 32276230) -L2SecurityCouncilMgmtFactoryTest:testOnlyOwnerCanDeploy() (gas: 27215045) -L2SecurityCouncilMgmtFactoryTest:testRemovalGovDeployment() (gas: 32274186) -L2SecurityCouncilMgmtFactoryTest:testSecurityCouncilManagerDeployment() (gas: 32295541) +E2E:testE2E() (gas: 85158392) +Execute:testFuzz_EmitsExecuteEvent(uint256,address) (runs: 256, μ: 611319, ~: 611339) +Execute:testFuzz_ExecutesASucceededProposal(uint256) (runs: 256, μ: 611129, ~: 611129) +Execute:testFuzz_RevertIf_OperationNotReady(uint256,address) (runs: 256, μ: 599719, ~: 599719) +FixedDelegateErc20WalletTest:testInit() (gas: 5962816) +FixedDelegateErc20WalletTest:testInitZeroToken() (gas: 5956190) +FixedDelegateErc20WalletTest:testTransfer() (gas: 6121983) +FixedDelegateErc20WalletTest:testTransferNotOwner() (gas: 6084204) +InboxActionsTest:testPauseAndUpauseInbox() (gas: 370760) +L1AddressRegistryTest:testAddressRegistryAddress() (gas: 47105) +L1ArbitrumTimelockTest:testCancel() (gas: 5349718) +L1ArbitrumTimelockTest:testCancelFailsBadSender() (gas: 5394608) +L1ArbitrumTimelockTest:testDoesDeploy() (gas: 5298120) +L1ArbitrumTimelockTest:testDoesNotDeployZeroInbox() (gas: 5004013) +L1ArbitrumTimelockTest:testDoesNotDeployZeroL2Timelock() (gas: 5001983) +L1ArbitrumTimelockTest:testExecute() (gas: 5430425) +L1ArbitrumTimelockTest:testExecuteInbox() (gas: 5784957) +L1ArbitrumTimelockTest:testExecuteInboxBatch() (gas: 6087831) +L1ArbitrumTimelockTest:testExecuteInboxInvalidData() (gas: 5472159) +L1ArbitrumTimelockTest:testExecuteInboxNotEnoughVal() (gas: 5484760) +L1ArbitrumTimelockTest:testSchedule() (gas: 5382870) +L1ArbitrumTimelockTest:testScheduleFailsBadL2Timelock() (gas: 5311174) +L1ArbitrumTimelockTest:testScheduleFailsBadSender() (gas: 5306146) +L1ArbitrumTokenTest:testBridgeBurn() (gas: 3395684) +L1ArbitrumTokenTest:testBridgeBurnNotGateway() (gas: 3389688) +L1ArbitrumTokenTest:testBridgeMint() (gas: 3390887) +L1ArbitrumTokenTest:testBridgeMintNotGateway() (gas: 3341089) +L1ArbitrumTokenTest:testInit() (gas: 3356232) +L1ArbitrumTokenTest:testInitZeroGateway() (gas: 3177275) +L1ArbitrumTokenTest:testInitZeroNovaGateway() (gas: 3177342) +L1ArbitrumTokenTest:testInitZeroNovaRouter() (gas: 3177276) +L1ArbitrumTokenTest:testRegisterTokenOnL2() (gas: 4569001) +L1ArbitrumTokenTest:testRegisterTokenOnL2NotEnoughVal() (gas: 4425876) +L1GovernanceFactoryTest:testL1GovernanceFactory() (gas: 10796764) +L1GovernanceFactoryTest:testSetMinDelay() (gas: 10771242) +L1GovernanceFactoryTest:testSetMinDelayRevertsForCoreAddress() (gas: 10824209) +L2AddressRegistryTest:testAddressRegistryAddress() (gas: 54814) +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, μ: 4252589, ~: 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: 31350700) +L2SecurityCouncilMgmtFactoryTest:testNomineeElectionGovDeployment() (gas: 31355095) +L2SecurityCouncilMgmtFactoryTest:testOnlyOwnerCanDeploy() (gas: 26328868) +L2SecurityCouncilMgmtFactoryTest:testRemovalGovDeployment() (gas: 31352931) +L2SecurityCouncilMgmtFactoryTest:testSecurityCouncilManagerDeployment() (gas: 31374298) +MiscTests:testCantReinit() (gas: 14345720) +MiscTests:testDVPQuorumAndClamping() (gas: 14717899) +MiscTests:testExecutorPermissions() (gas: 14383166) +MiscTests:testExecutorPermissionsFail() (gas: 14355491) +MiscTests:testMinMaxQuorumGetters() (gas: 14413262) +MiscTests:testPastCirculatingSupply() (gas: 14349835) +MiscTests:testPastCirculatingSupplyExclude() (gas: 14539347) +MiscTests:testPastCirculatingSupplyMint() (gas: 14416277) +MiscTests:testProperlyInitialized() (gas: 14343471) NomineeGovernorV2UpgradeActionTest:testAction() (gas: 8153) -OfficeHoursActionTest:testConstructor() (gas: 9050) -OfficeHoursActionTest:testFuzzOfficeHoursDeployment(uint256,uint256,int256,uint256,uint256,uint256) (runs: 256, μ: 317090, ~: 317184) -OfficeHoursActionTest:testInvalidConstructorParameters() (gas: 235740) +OfficeHoursActionTest:testConstructor() (gas: 9053) +OfficeHoursActionTest:testFuzzOfficeHoursDeployment(uint256,uint256,int256,uint256,uint256,uint256) (runs: 256, μ: 317098, ~: 317184) +OfficeHoursActionTest:testInvalidConstructorParameters() (gas: 235758) OfficeHoursActionTest:testPerformBeforeMinimumTimestamp() (gas: 8646) OfficeHoursActionTest:testPerformDuringOfficeHours() (gas: 9140) OfficeHoursActionTest:testPerformFridayUTCSaturdayLocal() (gas: 304792) 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) -ProxyUpgradeAndCallActionTest:testUpgrade() (gas: 137140) -ProxyUpgradeAndCallActionTest:testUpgradeAndCall() (gas: 143087) -SecurityCouncilManagerTest:testAddMemberAffordances() (gas: 253879) +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: 256, μ: 538170, ~: 538170) +Queue:testFuzz_QueuesASucceededProposal(uint256) (runs: 256, μ: 562826, ~: 562826) +Queue:testFuzz_RevertIf_ProposalIsNotSucceeded(uint256) (runs: 256, μ: 433353, ~: 433353) +SecurityCouncilManagerTest:testAddMemberAffordances() (gas: 254008) SecurityCouncilManagerTest:testAddMemberSpecialAddresses() (gas: 20770) -SecurityCouncilManagerTest:testAddMemberToFirstCohort() (gas: 349200) -SecurityCouncilManagerTest:testAddMemberToSecondCohort() (gas: 352635) +SecurityCouncilManagerTest:testAddMemberToFirstCohort() (gas: 349341) +SecurityCouncilManagerTest:testAddMemberToSecondCohort() (gas: 352791) SecurityCouncilManagerTest:testAddSC() (gas: 118742) -SecurityCouncilManagerTest:testAddSCAffordances() (gas: 112428) -SecurityCouncilManagerTest:testCantUpdateCohortWithADup() (gas: 136633) -SecurityCouncilManagerTest:testCohortMethods() (gas: 137890) -SecurityCouncilManagerTest:testInitialization() (gas: 206665) -SecurityCouncilManagerTest:testPostUpgradeInit() (gas: 5000887) -SecurityCouncilManagerTest:testRemoveMember() (gas: 217459) -SecurityCouncilManagerTest:testRemoveMemberAffordances() (gas: 101567) -SecurityCouncilManagerTest:testRemoveMemberRotated() (gas: 423573) -SecurityCouncilManagerTest:testRemoveSCAffordances() (gas: 81441) +SecurityCouncilManagerTest:testAddSCAffordances() (gas: 112449) +SecurityCouncilManagerTest:testCantUpdateCohortWithADup() (gas: 136636) +SecurityCouncilManagerTest:testCohortMethods() (gas: 137950) +SecurityCouncilManagerTest:testInitialization() (gas: 206767) +SecurityCouncilManagerTest:testPostUpgradeInit() (gas: 4958794) +SecurityCouncilManagerTest:testRemoveMember() (gas: 217537) +SecurityCouncilManagerTest:testRemoveMemberAffordances() (gas: 101588) +SecurityCouncilManagerTest:testRemoveMemberRotated() (gas: 423744) +SecurityCouncilManagerTest:testRemoveSCAffordances() (gas: 81462) SecurityCouncilManagerTest:testRemoveSeC() (gas: 38383) -SecurityCouncilManagerTest:testReplaceMemberAffordances() (gas: 216447) -SecurityCouncilManagerTest:testReplaceMemberInFirstCohort() (gas: 266641) -SecurityCouncilManagerTest:testReplaceMemberInFirstCohortAfterRotation() (gas: 471806) -SecurityCouncilManagerTest:testReplaceMemberInSecondCohort() (gas: 479028) -SecurityCouncilManagerTest:testReplaceMemberInSecondCohortAfterRotation() (gas: 270210) -SecurityCouncilManagerTest:testRotateMember() (gas: 1015787) -SecurityCouncilManagerTest:testRotateMemberNotContender() (gas: 4080567) -SecurityCouncilManagerTest:testSetMinRotationPeriod() (gas: 65814) -SecurityCouncilManagerTest:testUpdateCohortAffordances() (gas: 83252) -SecurityCouncilManagerTest:testUpdateFirstCohort() (gas: 313830) +SecurityCouncilManagerTest:testReplaceMemberAffordances() (gas: 216513) +SecurityCouncilManagerTest:testReplaceMemberInFirstCohort() (gas: 266719) +SecurityCouncilManagerTest:testReplaceMemberInFirstCohortAfterRotation() (gas: 472001) +SecurityCouncilManagerTest:testReplaceMemberInSecondCohort() (gas: 479223) +SecurityCouncilManagerTest:testReplaceMemberInSecondCohortAfterRotation() (gas: 270288) +SecurityCouncilManagerTest:testRotateMember() (gas: 1016270) +SecurityCouncilManagerTest:testRotateMemberNotContender() (gas: 4106808) +SecurityCouncilManagerTest:testSetMinRotationPeriod() (gas: 65820) +SecurityCouncilManagerTest:testUpdateCohortAffordances() (gas: 83279) +SecurityCouncilManagerTest:testUpdateFirstCohort() (gas: 313896) SecurityCouncilManagerTest:testUpdateRouter() (gas: 76407) -SecurityCouncilManagerTest:testUpdateRouterAffordances() (gas: 109974) -SecurityCouncilManagerTest:testUpdateSecondCohort() (gas: 313924) -SecurityCouncilMemberElectionGovernorTest:testCannotUseMoreVotesThanAvailable() (gas: 247018) -SecurityCouncilMemberElectionGovernorTest:testCastBySig() (gas: 302873) -SecurityCouncilMemberElectionGovernorTest:testCastBySigTwice() (gas: 266265) +SecurityCouncilManagerTest:testUpdateRouterAffordances() (gas: 109980) +SecurityCouncilManagerTest:testUpdateSecondCohort() (gas: 313990) +SecurityCouncilMemberElectionGovernorTest:testCannotUseMoreVotesThanAvailable() (gas: 247084) +SecurityCouncilMemberElectionGovernorTest:testCastBySig() (gas: 302963) +SecurityCouncilMemberElectionGovernorTest:testCastBySigTwice() (gas: 266349) SecurityCouncilMemberElectionGovernorTest:testCastVoteReverts() (gas: 35277) -SecurityCouncilMemberElectionGovernorTest:testExecute() (gas: 665669) -SecurityCouncilMemberElectionGovernorTest:testForceSupport() (gas: 165397) +SecurityCouncilMemberElectionGovernorTest:testExecute() (gas: 666230) +SecurityCouncilMemberElectionGovernorTest:testForceSupport() (gas: 165418) SecurityCouncilMemberElectionGovernorTest:testInitReverts() (gas: 4868350) -SecurityCouncilMemberElectionGovernorTest:testInvalidParams() (gas: 165369) -SecurityCouncilMemberElectionGovernorTest:testMiscVotesViews() (gas: 227999) -SecurityCouncilMemberElectionGovernorTest:testNoVoteForNonCompliantNominee() (gas: 123578) -SecurityCouncilMemberElectionGovernorTest:testNoZeroWeightVotes() (gas: 169643) +SecurityCouncilMemberElectionGovernorTest:testInvalidParams() (gas: 165390) +SecurityCouncilMemberElectionGovernorTest:testMiscVotesViews() (gas: 228020) +SecurityCouncilMemberElectionGovernorTest:testNoVoteForNonCompliantNominee() (gas: 123599) +SecurityCouncilMemberElectionGovernorTest:testNoZeroWeightVotes() (gas: 169664) SecurityCouncilMemberElectionGovernorTest:testOnlyNomineeElectionGovernorCanPropose() (gas: 111068) SecurityCouncilMemberElectionGovernorTest:testProperInitialization() (gas: 49388) -SecurityCouncilMemberElectionGovernorTest:testProposeReverts() (gas: 32916) -SecurityCouncilMemberElectionGovernorTest:testRelay() (gas: 42229) -SecurityCouncilMemberElectionGovernorTest:testSelectTopNominees(uint256) (runs: 256, μ: 339752, ~: 339539) -SecurityCouncilMemberElectionGovernorTest:testSelectTopNomineesFails() (gas: 273467) -SecurityCouncilMemberElectionGovernorTest:testSetFullWeightDuration() (gas: 34951) -SecurityCouncilMemberElectionGovernorTest:testVotesToWeight() (gas: 152898) -SecurityCouncilMemberRemovalGovernorTest:testInitFails() (gas: 10159203) -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: 272525) -SecurityCouncilMemberRemovalGovernorTest:testProposalExpirationDeadline() (gas: 134831) -SecurityCouncilMemberRemovalGovernorTest:testRelay() (gas: 42123) -SecurityCouncilMemberRemovalGovernorTest:testSeparateSelector() (gas: 23536) -SecurityCouncilMemberRemovalGovernorTest:testSetVoteSuccessNumerator() (gas: 30049) -SecurityCouncilMemberRemovalGovernorTest:testSetVoteSuccessNumeratorAffordance() (gas: 47631) -SecurityCouncilMemberRemovalGovernorTest:testSuccessNumeratorInsufficientVotes() (gas: 358327) -SecurityCouncilMemberRemovalGovernorTest:testSuccessNumeratorSufficientVotes() (gas: 361245) -SecurityCouncilMemberRemovalGovernorTest:testSuccessfulProposalAndCantAbstain() (gas: 142674) -SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 8094882) -SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 8095720) -SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 8121132) -SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 8121139) -SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 8085068) -SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 8085068) -SecurityCouncilMemberSyncActionTest:testNonces() (gas: 8389038) -SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 8084818) -SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 8085744) -SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 8086006) -SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 8086867) -SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8328313) -SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8329174) +SecurityCouncilMemberElectionGovernorTest:testProposeReverts() (gas: 32952) +SecurityCouncilMemberElectionGovernorTest:testRelay() (gas: 42235) +SecurityCouncilMemberElectionGovernorTest:testSelectTopNominees(uint256) (runs: 256, μ: 339907, ~: 339738) +SecurityCouncilMemberElectionGovernorTest:testSelectTopNomineesFails() (gas: 273485) +SecurityCouncilMemberElectionGovernorTest:testSetFullWeightDuration() (gas: 34963) +SecurityCouncilMemberElectionGovernorTest:testVotesToWeight() (gas: 152946) +SecurityCouncilMemberRemovalGovernorTest:testInitFails() (gas: 10244408) +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: 7828184) +SecurityCouncilMemberSyncActionTest:testAddOne() (gas: 7829022) +SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 7855346) +SecurityCouncilMemberSyncActionTest:testCantDropBelowThreshhold() (gas: 7855368) +SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 7822499) +SecurityCouncilMemberSyncActionTest:testGetPrevOwner() (gas: 7822499) +SecurityCouncilMemberSyncActionTest:testNonces() (gas: 8128149) +SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 7818048) +SecurityCouncilMemberSyncActionTest:testNoopUpdate() (gas: 7818974) +SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 7819812) +SecurityCouncilMemberSyncActionTest:testRemoveOne() (gas: 7820673) +SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8066547) +SecurityCouncilMemberSyncActionTest:testUpdateCohort() (gas: 8067407) SecurityCouncilMgmtUtilsTests:testIsInArray() (gas: 2102) -SecurityCouncilNomineeElectionGovernorTest:testAddContender() (gas: 418681) -SecurityCouncilNomineeElectionGovernorTest:testCadenceWithLargeValues() (gas: 52898) -SecurityCouncilNomineeElectionGovernorTest:testCastBySig() (gas: 338857) -SecurityCouncilNomineeElectionGovernorTest:testCastBySigTwice() (gas: 301672) +SecurityCouncilNomineeElectionGovernorTest:testAddContender() (gas: 282987) +SecurityCouncilNomineeElectionGovernorTest:testCadenceWithLargeValues() (gas: 52961) +SecurityCouncilNomineeElectionGovernorTest:testCastBySig() (gas: 338352) +SecurityCouncilNomineeElectionGovernorTest:testCastBySigTwice() (gas: 301062) SecurityCouncilNomineeElectionGovernorTest:testCastVoteReverts() (gas: 35303) -SecurityCouncilNomineeElectionGovernorTest:testCountVote() (gas: 593835) -SecurityCouncilNomineeElectionGovernorTest:testCreateElection() (gas: 257942) +SecurityCouncilNomineeElectionGovernorTest:testCountVote() (gas: 592371) +SecurityCouncilNomineeElectionGovernorTest:testCreateElection() (gas: 258275) SecurityCouncilNomineeElectionGovernorTest:testDefaultCadence() (gas: 14950) -SecurityCouncilNomineeElectionGovernorTest:testElectionTimestampsWithDefaultCadence() (gas: 37625) -SecurityCouncilNomineeElectionGovernorTest:testExcludeNominee() (gas: 461806) -SecurityCouncilNomineeElectionGovernorTest:testExecute() (gas: 679489) -SecurityCouncilNomineeElectionGovernorTest:testForceSupport() (gas: 199892) -SecurityCouncilNomineeElectionGovernorTest:testIncludeNominee() (gas: 678878) -SecurityCouncilNomineeElectionGovernorTest:testInvalidInit() (gas: 7782964) -SecurityCouncilNomineeElectionGovernorTest:testMultipleCadenceChanges() (gas: 238915) -SecurityCouncilNomineeElectionGovernorTest:testProperInitialization() (gas: 78159) -SecurityCouncilNomineeElectionGovernorTest:testProposeFails() (gas: 19786) -SecurityCouncilNomineeElectionGovernorTest:testRelay() (gas: 42411) -SecurityCouncilNomineeElectionGovernorTest:testRotateNominee() (gas: 680405) -SecurityCouncilNomineeElectionGovernorTest:testSetCadenceAfterElections() (gas: 227636) -SecurityCouncilNomineeElectionGovernorTest:testSetCadenceBeforeFirstElection() (gas: 42502) -SecurityCouncilNomineeElectionGovernorTest:testSetCadenceInvalidValue() (gas: 26056) -SecurityCouncilNomineeElectionGovernorTest:testSetCadenceOnlyOwner() (gas: 16090) -SecurityCouncilNomineeElectionGovernorTest:testSetCadenceTooSoonReverts() (gas: 148112) -SecurityCouncilNomineeElectionGovernorTest:testSetNomineeVetter() (gas: 40024) -SecurityCouncilUpgradeActionTest:testAction() (gas: 8153) -SequencerActionsTest:testAddAndRemoveSequencer() (gas: 486652) +SecurityCouncilNomineeElectionGovernorTest:testElectionTimestampsWithDefaultCadence() (gas: 37631) +SecurityCouncilNomineeElectionGovernorTest:testExcludeNominee() (gas: 461718) +SecurityCouncilNomineeElectionGovernorTest:testExecute() (gas: 680974) +SecurityCouncilNomineeElectionGovernorTest:testForceSupport() (gas: 199102) +SecurityCouncilNomineeElectionGovernorTest:testIncludeNominee() (gas: 679693) +SecurityCouncilNomineeElectionGovernorTest:testInvalidInit() (gas: 7452727) +SecurityCouncilNomineeElectionGovernorTest:testMultipleCadenceChanges() (gas: 239269) +SecurityCouncilNomineeElectionGovernorTest:testProperInitialization() (gas: 78279) +SecurityCouncilNomineeElectionGovernorTest:testProposeFails() (gas: 19837) +SecurityCouncilNomineeElectionGovernorTest:testRelay() (gas: 42501) +SecurityCouncilNomineeElectionGovernorTest:testRotateNominee() (gas: 688690) +SecurityCouncilNomineeElectionGovernorTest:testSetCadenceAfterElections() (gas: 227915) +SecurityCouncilNomineeElectionGovernorTest:testSetCadenceBeforeFirstElection() (gas: 42562) +SecurityCouncilNomineeElectionGovernorTest:testSetCadenceInvalidValue() (gas: 26149) +SecurityCouncilNomineeElectionGovernorTest:testSetCadenceOnlyOwner() (gas: 16096) +SecurityCouncilNomineeElectionGovernorTest:testSetCadenceTooSoonReverts() (gas: 148292) +SecurityCouncilNomineeElectionGovernorTest:testSetNomineeVetter() (gas: 40150) +SecurityCouncilUpgradeActionTest:testAction() (gas: 8159) +SequencerActionsTest:testAddAndRemoveSequencer() (gas: 486700) SequencerActionsTest:testCantAddZeroAddress() (gas: 235659) SetInitialGovParamsActionTest:testL1() (gas: 260009) -SetInitialGovParamsActionTest:testL2() (gas: 689085) +SetInitialGovParamsActionTest:testL2() (gas: 689152) 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:testClaim() (gas: 5876438) +TokenDistributorTest:testClaimAndDelegate() (gas: 5987954) +TokenDistributorTest:testClaimAndDelegateFailsForExpired() (gas: 5881927) +TokenDistributorTest:testClaimAndDelegateFailsForWrongSender() (gas: 5937910) +TokenDistributorTest:testClaimAndDelegateFailsWrongNonce() (gas: 5937911) +TokenDistributorTest:testClaimFailsAfterEnd() (gas: 5812341) +TokenDistributorTest:testClaimFailsBeforeStart() (gas: 5811830) +TokenDistributorTest:testClaimFailsForFalseTransfer() (gas: 5794552) +TokenDistributorTest:testClaimFailsForTwice() (gas: 5875192) +TokenDistributorTest:testClaimFailsForUnknown() (gas: 5814417) +TokenDistributorTest:testClaimStartAfterClaimEnd() (gas: 4274194) +TokenDistributorTest:testDoesDeploy() (gas: 5401703) +TokenDistributorTest:testDoesDeployAndDeposit() (gas: 5512883) +TokenDistributorTest:testOldClaimStart() (gas: 4274757) +TokenDistributorTest:testSetRecipients() (gas: 5810227) +TokenDistributorTest:testSetRecipientsFailsNotEnoughDeposit() (gas: 5777107) +TokenDistributorTest:testSetRecipientsFailsNotOwner() (gas: 5528629) +TokenDistributorTest:testSetRecipientsFailsWhenAddingTwice() (gas: 5821293) +TokenDistributorTest:testSetRecipientsFailsWrongAmountCount() (gas: 5530093) +TokenDistributorTest:testSetRecipientsFailsWrongRecipientCount() (gas: 5530322) +TokenDistributorTest:testSetRecipientsTwice() (gas: 6499848) +TokenDistributorTest:testSetSweepReceiver() (gas: 5814550) +TokenDistributorTest:testSetSweepReceiverFailsNullAddress() (gas: 5812181) +TokenDistributorTest:testSetSweepReceiverFailsOwner() (gas: 5813136) +TokenDistributorTest:testSweep() (gas: 5885707) +TokenDistributorTest:testSweepAfterClaim() (gas: 5949078) +TokenDistributorTest:testSweepFailsBeforeClaimPeriodEnd() (gas: 5811897) +TokenDistributorTest:testSweepFailsForFailedTransfer() (gas: 5815638) +TokenDistributorTest:testSweepFailsTwice() (gas: 5885515) +TokenDistributorTest:testWithdraw() (gas: 5852914) +TokenDistributorTest:testWithdrawFailsNotOwner() (gas: 5852936) +TokenDistributorTest:testWithdrawFailsTransfer() (gas: 5814117) +TokenDistributorTest:testZeroDelegateTo() (gas: 4272089) +TokenDistributorTest:testZeroOwner() (gas: 4272002) +TokenDistributorTest:testZeroReceiver() (gas: 4272031) TokenDistributorTest:testZeroToken() (gas: 71812) -TopNomineesGasTest:testTopNomineesGas() (gas: 4533086) +TopNomineesGasTest:testTopNomineesGas() (gas: 4537586) 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) +UpgradeExecutorTest:testAdminCanChangeExecutor() (gas: 2677253) +UpgradeExecutorTest:testCantExecuteEOA() (gas: 2533149) +UpgradeExecutorTest:testExecute() (gas: 2771537) +UpgradeExecutorTest:testExecuteFailsForAdmin() (gas: 2757066) +UpgradeExecutorTest:testExecuteFailsForNobody() (gas: 2759307) +UpgradeExecutorTest:testInit() (gas: 2520925) +UpgradeExecutorTest:testInitFailsZeroAdmin() (gas: 2381701) \ No newline at end of file diff --git a/scripts/proposals/sec-council-upgrade-rotation/data.json b/scripts/proposals/sec-council-upgrade-rotation/data.json new file mode 100644 index 000000000..638211af6 --- /dev/null +++ b/scripts/proposals/sec-council-upgrade-rotation/data.json @@ -0,0 +1,12 @@ +{ + "actionChainIds": [ + 42161 + ], + "actionAddresses": [ + "0xeF98Fc7A7F08De47Ed01f3F11f07319c22106445" + ], + "arbSysSendTxToL1Args": { + "l1Timelock": "0xE6841D92B0C345144506576eC13ECf5103aC7f49", + "calldata": "0x8f2a0bb000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000d078d01ffb5a3a5eac98137cbe898b2f21c1114069936d04a90b74ee9806e3f5000000000000000000000000000000000000000000000000000000000003f4800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a723c008e76e379c55599d2e4d93879beafda79c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f000000000000000000000000cf57572261c7c2bcf21ffd220ea7d1a27d40a82700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000841cff79cd000000000000000000000000ef98fc7a7f08de47ed01f3f11f07319c2210644500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004b147f40c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } +} \ No newline at end of file diff --git a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilUpgradeAction.sol b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilUpgradeAction.sol index e289dffde..e49da924d 100644 --- a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilUpgradeAction.sol +++ b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilUpgradeAction.sol @@ -12,7 +12,6 @@ import "../../../security-council-mgmt/governors/SecurityCouncilNomineeElectionG /// - Upgrade the sec council manager to allow member rotation and sets min rotation vars /// - Upgrade the sec council nominee election governor to allow modifying the cadence of election /// - Adjusting the qualification threshold of the Member Election phase from 0.2% to 0.1% -/// - Allowing existing sec council members to automatically progress from the Nominee Selection phase /// - Updating the ArbitrumDAO Constitution to reflect these changes contract SecurityCouncilUpgradeAction { IL2AddressRegistry public immutable l2AddressRegistry; @@ -47,7 +46,7 @@ contract SecurityCouncilUpgradeAction { payable(address(l2AddressRegistry.scNomineeElectionGovernor())) ); require( - scNomineeElectionGovernor.electionCount() == 5, + scNomineeElectionGovernor.electionCount() == 6, "SecurityCouncilUpgradeAction: not expected timing" ); @@ -73,7 +72,6 @@ contract SecurityCouncilUpgradeAction { ); // Upgrade the sec council nominee election governor to allow modifying the cadence of election - // Allowing existing sec council members to automatically progress from the Nominee Selection phase l2AddressRegistry.govProxyAdmin().upgradeAndCall( TransparentUpgradeableProxy(payable(address(scNomineeElectionGovernor))), scNomineeElectionGovernorImpl, diff --git a/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol b/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol index f805ff0e6..dfbc90106 100644 --- a/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol +++ b/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol @@ -93,6 +93,8 @@ contract SecurityCouncilNomineeElectionGovernor is error ProposalNotInVettingPeriod(uint256 blockNumber, uint256 vettingDeadline); error ProposalNotInRotationPeriod(uint256 blockNumber, uint256 rotationDeadline); error NomineeAlreadyExcluded(address nominee); + error OnlyContenderNomineeCanRotate(); + error NewNomineeIsContender(address newNominee); error CompliantNomineeTargetHit(uint256 nomineeCount, uint256 expectedCount); error ProposalInVettingPeriod(uint256 blockNumber, uint256 vettingDeadline); error InsufficientCompliantNomineeCount(uint256 compliantNomineeCount, uint256 expectedCount); @@ -277,12 +279,6 @@ contract SecurityCouncilNomineeElectionGovernor is election.isContender[signer] = true; emit ContenderAdded(proposalId, signer); - - // if the signer is part of the outgoing cohort, we automatically add them as a nominee - if (securityCouncilManager.cohortIncludes(currentCohort(), signer)) { - // no need to check for duplicate nominees as we already checked - _addNominee(proposalId, signer); - } } /// @notice Allows the owner to change the nomineeVetter @@ -383,6 +379,14 @@ contract SecurityCouncilNomineeElectionGovernor is revert InvalidSignature(); } + if (!isContender(proposalId, msg.sender)) { + revert OnlyContenderNomineeCanRotate(); + } + + if (isContender(proposalId, newNomineeAddress)) { + revert NewNomineeIsContender(newNomineeAddress); + } + // rotation by first excluding the nominee and then adding the new nominee election.isExcluded[msg.sender] = true; election.excludedNomineeCount++; diff --git a/test/gov-actions/CancelTimelockAndRemoveMemberActionTest.t.sol b/test/gov-actions/CancelTimelockAndRemoveMemberActionTest.t.sol index 11de8e816..eb513922f 100644 --- a/test/gov-actions/CancelTimelockAndRemoveMemberActionTest.t.sol +++ b/test/gov-actions/CancelTimelockAndRemoveMemberActionTest.t.sol @@ -117,6 +117,14 @@ contract CancelTimelockAndRemoveMemberActionTest is Test { } function ensureLatestScm(L2AddressRegistry reg) internal { + ISecurityCouncilManager scm = reg.securityCouncilManager(); + if ( + proxyAdmin.getProxyImplementation(TransparentUpgradeableProxy(payable(address(scm)))) + != oldImplementation + ) { + return; // already upgraded on-chain + } + address newImplementation = address(new SecurityCouncilManager()); address newNomineeElectionGovernorImplementation = address(new SecurityCouncilNomineeElectionGovernor()); @@ -124,11 +132,6 @@ contract CancelTimelockAndRemoveMemberActionTest is Test { uint256 minRotationPeriod = 1 weeks; uint256 cadenceInMonths = 12; - SecurityCouncilNomineeElectionGovernor scNomineeElectionGovernor = - SecurityCouncilNomineeElectionGovernor(payable(address(reg.scNomineeElectionGovernor()))); - vm.warp(1_757_937_601); // After the 2025 Sep election - scNomineeElectionGovernor.createElection(); - SecurityCouncilUpgradeAction action = new SecurityCouncilUpgradeAction( reg, newImplementation, diff --git a/test/gov-actions/SecurityCouncilUpgradeAction.t.sol b/test/gov-actions/SecurityCouncilUpgradeAction.t.sol index 56136357f..48455b333 100644 --- a/test/gov-actions/SecurityCouncilUpgradeAction.t.sol +++ b/test/gov-actions/SecurityCouncilUpgradeAction.t.sol @@ -49,8 +49,6 @@ contract SecurityCouncilUpgradeActionTest is Test { SecurityCouncilNomineeElectionGovernor scNomineeElectionGovernor = SecurityCouncilNomineeElectionGovernor(payable(address(reg.scNomineeElectionGovernor()))); - vm.warp(1_757_937_601); // After the 2025 Sep election - scNomineeElectionGovernor.createElection(); address newImplementation = address(new SecurityCouncilManager()); address newNomineeElectionGovernorImplementation = @@ -82,8 +80,8 @@ contract SecurityCouncilUpgradeActionTest is Test { uint256 electionCount = scNomineeElectionGovernor.electionCount(); assertEq( scNomineeElectionGovernor.electionToTimestamp(electionCount), - 1_789_473_600, - "not September 15, 2026 12:00:00 PM" + 1_805_112_000, + "not March 15, 2027 12:00:00 PM" ); } diff --git a/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol b/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol index 672d23b02..128c693da 100644 --- a/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol +++ b/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol @@ -308,35 +308,6 @@ contract SecurityCouncilNomineeElectionGovernorTest is Test { ) ); governor.addContender(proposalId, sig); - - // adding a member up for reelection should succeed and automatically add them as a nominee - _mockCohortIncludes(Cohort.FIRST, _contender(1), true); - _mockCohortIncludes(Cohort.SECOND, _contender(1), false); - sig = sigUtils.signAddContenderMessage(proposalId, _contenderPrivKey(1)); - governor.addContender(proposalId, sig); - - // check that it correctly mutated the state - assertTrue(governor.isContender(proposalId, _contender(1))); - assertTrue(governor.isNominee(proposalId, _contender(1))); - - // reelection member should not be able to receive votes - vm.roll(governor.proposalSnapshot(proposalId) + 1); - _mockGetPastVotes(_voter(0), governor.quorum(proposalId)); - vm.prank(_voter(0)); - vm.expectRevert( - abi.encodeWithSelector( - SecurityCouncilNomineeElectionGovernorCountingUpgradeable - .NomineeAlreadyAdded - .selector, - _contender(1) - ) - ); - governor.castVoteWithReasonAndParams({ - proposalId: proposalId, - support: 1, - reason: "", - params: abi.encode(_contender(1), 1) - }); } function testSetNomineeVetter() public {