diff --git a/packages/contracts-bedrock/.gas-snapshot b/packages/contracts-bedrock/.gas-snapshot index 8cbfa3b8a2f78b2000779387123ff6fcb2f92ccb..7fd774fcbda3d504c60189b99fad732b1c30f368 100644 --- a/packages/contracts-bedrock/.gas-snapshot +++ b/packages/contracts-bedrock/.gas-snapshot @@ -69,46 +69,46 @@ L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds( L1StandardBridge_Getter_Test:test_getters_succeeds() (gas: 31449) L1StandardBridge_Initialize_Test:test_initialize_succeeds() (gas: 22005) L1StandardBridge_Receive_Test:test_receive_succeeds() (gas: 514475) -L2CrossDomainMessenger_Test:testCannot_L2MessengerPause() (gas: 10860) -L2CrossDomainMessenger_Test:test_L1MessengerRelayMessageRevertsOnReentrancy() (gas: 167775) -L2CrossDomainMessenger_Test:test_L2MessengerMessageVersion() (gas: 8389) -L2CrossDomainMessenger_Test:test_L2MessengerPause() (gas: 31802) -L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageFirstStuckSecondSucceeds() (gas: 168269) -L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageSucceeds() (gas: 53204) -L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageToSystemContract() (gas: 36172) -L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageV0Fails() (gas: 18870) -L2CrossDomainMessenger_Test:test_L2MessengerRelayShouldRevertIfPaused() (gas: 41596) -L2CrossDomainMessenger_Test:test_L2MessengerSendMessage() (gas: 122533) -L2CrossDomainMessenger_Test:test_L2MessengerTwiceSendMessage() (gas: 134716) -L2CrossDomainMessenger_Test:test_L2MessengerXDomainSenderReverts() (gas: 10568) -L2CrossDomainMessenger_Test:test_L2MessengerxDomainMessageSenderResets() (gas: 52615) -L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 29434) -L2OutputOracleTest:testCannot_constructWithBadTimestamp() (gas: 70674) -L2OutputOracleTest:testCannot_deleteL2Outputs_afterLatest() (gas: 200324) -L2OutputOracleTest:testCannot_deleteL2Outputs_ifNotChallenger() (gas: 18915) -L2OutputOracleTest:testCannot_deleteL2Outputs_nonExistent() (gas: 103509) -L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 26721) -L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 28678) -L2OutputOracleTest:testCannot_proposeL2Output_ifNotProposer() (gas: 25782) -L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 28941) -L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 28382) -L2OutputOracleTest:test_computeL2Timestamp() (gas: 37185) -L2OutputOracleTest:test_constructor() (gas: 33715) -L2OutputOracleTest:test_deleteOutputs_multipleOutputs() (gas: 286718) -L2OutputOracleTest:test_deleteOutputs_singleOutput() (gas: 173018) -L2OutputOracleTest:test_getL2Output() (gas: 101700) -L2OutputOracleTest:test_getL2OutputIndexAfter_multipleOutputsExist() (gas: 267181) -L2OutputOracleTest:test_getL2OutputIndexAfter_noOutputsExist() (gas: 17938) +L2CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 8367) +L2CrossDomainMessenger_Test:test_pause_notOwner_reverts() (gas: 10859) +L2CrossDomainMessenger_Test:test_pause_succeeds() (gas: 31846) +L2CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 41596) +L2CrossDomainMessenger_Test:test_relayMessage_reentrancy_reverts() (gas: 167766) +L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 168292) +L2CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 53183) +L2CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 36194) +L2CrossDomainMessenger_Test:test_relayMessage_v0_reverts() (gas: 18870) +L2CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 122533) +L2CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 134671) +L2CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 52594) +L2CrossDomainMessenger_Test:test_xDomainSender_senderNotSet_reverts() (gas: 10524) +L2OutputOracleTest:test_computeL2Timestamp_succeeds() (gas: 37184) +L2OutputOracleTest:test_constructor_badTimestamp_reverts() (gas: 70717) +L2OutputOracleTest:test_constructor_succeeds() (gas: 33760) +L2OutputOracleTest:test_deleteL2Outputs_afterLatest_reverts() (gas: 200230) +L2OutputOracleTest:test_deleteL2Outputs_ifNotChallenger_reverts() (gas: 18883) +L2OutputOracleTest:test_deleteL2Outputs_nonExistent_reverts() (gas: 103402) +L2OutputOracleTest:test_deleteOutputs_multipleOutputs_succeeds() (gas: 286560) +L2OutputOracleTest:test_deleteOutputs_singleOutput_succeeds() (gas: 172876) +L2OutputOracleTest:test_getL2OutputIndexAfter_multipleOutputsExist_succeeds() (gas: 267182) +L2OutputOracleTest:test_getL2OutputIndexAfter_noOutputsExis_reverts() (gas: 17914) L2OutputOracleTest:test_getL2OutputIndexAfter_previousBlock_succeeds() (gas: 96086) L2OutputOracleTest:test_getL2OutputIndexAfter_sameBlock_succeeds() (gas: 95994) -L2OutputOracleTest:test_latestBlockNumber() (gas: 96937) -L2OutputOracleTest:test_nextBlockNumber() (gas: 17468) -L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 95251) -L2OutputOracleTest:test_proposingAnotherOutput() (gas: 97175) -L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas: 15171) -L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 20152) -L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas: 26052) -L2OutputOracleUpgradeable_Test:test_upgrading() (gas: 180457) +L2OutputOracleTest:test_getL2Output_succeeds() (gas: 101699) +L2OutputOracleTest:test_latestBlockNumber_succeeds() (gas: 96983) +L2OutputOracleTest:test_nextBlockNumber_succeeds() (gas: 17468) +L2OutputOracleTest:test_proposeL2Output_emptyOutput_reverts() (gas: 26688) +L2OutputOracleTest:test_proposeL2Output_futureTimetamp_reverts() (gas: 28646) +L2OutputOracleTest:test_proposeL2Output_notProposer_reverts() (gas: 25782) +L2OutputOracleTest:test_proposeL2Output_proposeAnotherOutput_succeeds() (gas: 97137) +L2OutputOracleTest:test_proposeL2Output_unexpectedBlockNumber_reverts() (gas: 28402) +L2OutputOracleTest:test_proposeL2Output_unmatchedBlockhash_reverts() (gas: 29446) +L2OutputOracleTest:test_proposeL2Output_wrongFork_reverts() (gas: 29005) +L2OutputOracleTest:test_proposeWithBlockhashAndHeight_succeeds() (gas: 95296) +L2OutputOracleUpgradeable_Test:test_initValuesOnProxy_succeeds() (gas: 26096) +L2OutputOracleUpgradeable_Test:test_initializeImpl_alreadyInitialized_reverts() (gas: 15149) +L2OutputOracleUpgradeable_Test:test_initializeProxy_alreadyInitialized_reverts() (gas: 20131) +L2OutputOracleUpgradeable_Test:test_upgrading_succeeds() (gas: 180413) L2StandardBridge_Test:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 23788) L2StandardBridge_Test:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 23927) L2StandardBridge_Test:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 23838) @@ -122,30 +122,30 @@ L2StandardBridge_Test:test_withdraw_succeeds() (gas: 343975) L2ToL1MessagePasserTest:test_burn_succeeds() (gas: 112572) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract_succeeds() (gas: 70423) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA_succeeds() (gas: 75874) -LegacyERC20ETH_Test:test_approve() (gas: 10723) -LegacyERC20ETH_Test:test_burn() (gas: 10615) -LegacyERC20ETH_Test:test_crossDomain() (gas: 6339) -LegacyERC20ETH_Test:test_decreaseAllowance() (gas: 10657) -LegacyERC20ETH_Test:test_increaseAllowance() (gas: 10667) -LegacyERC20ETH_Test:test_metadata() (gas: 15414) -LegacyERC20ETH_Test:test_mint() (gas: 10649) -LegacyERC20ETH_Test:test_transfer() (gas: 10711) -LegacyERC20ETH_Test:test_transferFrom() (gas: 12887) +LegacyERC20ETH_Test:test_approve_doesNotExist_reverts() (gas: 10701) +LegacyERC20ETH_Test:test_burn_doesNotExist_reverts() (gas: 10615) +LegacyERC20ETH_Test:test_crossDomain_succeeds() (gas: 6362) +LegacyERC20ETH_Test:test_decreaseAllowance_doesNotExist_reverts() (gas: 10679) +LegacyERC20ETH_Test:test_increaseAllowance_doesNotExist_reverts() (gas: 10689) +LegacyERC20ETH_Test:test_metadata_succeeds() (gas: 15414) +LegacyERC20ETH_Test:test_mint_doesNotExist_reverts() (gas: 10649) +LegacyERC20ETH_Test:test_transferFrom_doesNotExist_reverts() (gas: 12887) +LegacyERC20ETH_Test:test_transfer_doesNotExist_reverts() (gas: 10733) LegacyMessagePasser_Test:test_LegacyMessagePasser_passMessageToL1_Succeeds() (gas: 34519) -OptimismMintableERC20_Test:test_bridge() (gas: 7599) -OptimismMintableERC20_Test:test_burn() (gas: 51031) -OptimismMintableERC20_Test:test_burnRevertsFromNotBridge() (gas: 11164) -OptimismMintableERC20_Test:test_erc165_supportsInterface() (gas: 7765) -OptimismMintableERC20_Test:test_l1Token() (gas: 7622) -OptimismMintableERC20_Test:test_l2Bridge() (gas: 7688) -OptimismMintableERC20_Test:test_legacy() (gas: 14300) -OptimismMintableERC20_Test:test_mint() (gas: 63609) -OptimismMintableERC20_Test:test_mintRevertsFromNotBridge() (gas: 11098) -OptimismMintableERC20_Test:test_remoteToken() (gas: 7644) -OptimismMintableTokenFactory_Test:test_bridge() (gas: 7577) -OptimismMintableTokenFactory_Test:test_createStandardL2Token() (gas: 1095274) -OptimismMintableTokenFactory_Test:test_createStandardL2TokenSameTwice() (gas: 2176691) -OptimismMintableTokenFactory_Test:test_createStandardL2TokenShouldRevertIfRemoteIsZero() (gas: 9413) +OptimismMintableERC20_Test:test_bridge_succeeds() (gas: 7643) +OptimismMintableERC20_Test:test_burn_notBridge_reverts() (gas: 11165) +OptimismMintableERC20_Test:test_burn_succeeds() (gas: 51013) +OptimismMintableERC20_Test:test_erc165_supportsInterface_succeeds() (gas: 7742) +OptimismMintableERC20_Test:test_l1Token_succeeds() (gas: 7599) +OptimismMintableERC20_Test:test_l2Bridge_succeeds() (gas: 7665) +OptimismMintableERC20_Test:test_legacy_succeeds() (gas: 14344) +OptimismMintableERC20_Test:test_mint_notBridge_reverts() (gas: 11121) +OptimismMintableERC20_Test:test_mint_succeeds() (gas: 63609) +OptimismMintableERC20_Test:test_remoteToken_succeeds() (gas: 7622) +OptimismMintableTokenFactory_Test:test_bridge_succeeds() (gas: 7577) +OptimismMintableTokenFactory_Test:test_createStandardL2Token_remoteIsZero_succeeds() (gas: 9413) +OptimismMintableTokenFactory_Test:test_createStandardL2Token_sameTwice_succeeds() (gas: 2176713) +OptimismMintableTokenFactory_Test:test_createStandardL2Token_succeeds() (gas: 1095296) OptimismPortalUpgradeable_Test:test_initialize_cannotInitImpl_reverts() (gas: 10791) OptimismPortalUpgradeable_Test:test_initialize_cannotInitProxy_reverts() (gas: 15833) OptimismPortalUpgradeable_Test:test_params_initValuesOnProxy_succeeds() (gas: 16011) diff --git a/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol b/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol index 4c144571994e79e44a868a2cea35f4dd7c5224f8..ea3995144b01669819094f41d6b19e7914fd7f22 100644 --- a/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol +++ b/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol @@ -20,23 +20,23 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { super.setUp(); } - function test_L2MessengerPause() external { + function test_pause_succeeds() external { L2Messenger.pause(); assert(L2Messenger.paused()); } - function testCannot_L2MessengerPause() external { + function test_pause_notOwner_reverts() external { vm.expectRevert("Ownable: caller is not the owner"); vm.prank(address(0xABBA)); L2Messenger.pause(); } - function test_L2MessengerMessageVersion() external { + function test_messageVersion_succeeds() external { (, uint16 version) = Encoding.decodeVersionedNonce(L2Messenger.messageNonce()); assertEq(version, L2Messenger.MESSAGE_VERSION()); } - function test_L2MessengerSendMessage() external { + function test_sendMessage_succeeds() external { bytes memory xDomainCallData = Encoding.encodeCrossDomainMessage( L2Messenger.messageNonce(), alice, @@ -80,7 +80,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { L2Messenger.sendMessage(recipient, hex"ff", uint32(100)); } - function test_L2MessengerTwiceSendMessage() external { + function test_sendMessage_twice_succeeds() external { uint256 nonce = L2Messenger.messageNonce(); L2Messenger.sendMessage(recipient, hex"aa", uint32(500_000)); L2Messenger.sendMessage(recipient, hex"aa", uint32(500_000)); @@ -88,12 +88,12 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { assertEq(nonce + 2, L2Messenger.messageNonce()); } - function test_L2MessengerXDomainSenderReverts() external { + function test_xDomainSender_senderNotSet_reverts() external { vm.expectRevert("CrossDomainMessenger: xDomainMessageSender is not set"); L2Messenger.xDomainMessageSender(); } - function test_L2MessengerRelayMessageV0Fails() external { + function test_relayMessage_v0_reverts() external { address target = address(0xabcd); address sender = address(L1Messenger); address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)); @@ -113,7 +113,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { ); } - function test_L2MessengerRelayMessageSucceeds() external { + function test_relayMessage_succeeds() external { address target = address(0xabcd); address sender = address(L1Messenger); address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)); @@ -151,7 +151,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { } // relayMessage: should revert if attempting to relay a message sent to an L1 system contract - function test_L2MessengerRelayMessageToSystemContract() external { + function test_relayMessage_toSystemContract_reverts() external { address target = address(messagePasser); address sender = address(L1Messenger); address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)); @@ -170,7 +170,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { } // relayMessage: the xDomainMessageSender is reset to the original value - function test_L2MessengerxDomainMessageSenderResets() external { + function test_xDomainMessageSender_reset_succeeds() external { vm.expectRevert("CrossDomainMessenger: xDomainMessageSender is not set"); L2Messenger.xDomainMessageSender(); @@ -190,7 +190,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { } // relayMessage: should revert if paused - function test_L2MessengerRelayShouldRevertIfPaused() external { + function test_relayMessage_paused_reverts() external { vm.prank(L2Messenger.owner()); L2Messenger.pause(); @@ -200,7 +200,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { // relayMessage: should send a successful call to the target contract after the first message // fails and ETH gets stuck, but the second message succeeds - function test_L2MessengerRelayMessageFirstStuckSecondSucceeds() external { + function test_relayMessage_retry_succeeds() external { address target = address(0xabcd); address sender = address(L1Messenger); address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)); @@ -254,7 +254,7 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { } // relayMessage: should revert if recipient is trying to reenter - function test_L1MessengerRelayMessageRevertsOnReentrancy() external { + function test_relayMessage_reentrancy_reverts() external { address target = address(0xabcd); address sender = address(L1Messenger); address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)); diff --git a/packages/contracts-bedrock/contracts/test/L2OutputOracle.t.sol b/packages/contracts-bedrock/contracts/test/L2OutputOracle.t.sol index 7f87e981913e42524a2b7fcb6844cc62f4d427f7..c6325ca6f6d615b801b01b259497c537efe0bb87 100644 --- a/packages/contracts-bedrock/contracts/test/L2OutputOracle.t.sol +++ b/packages/contracts-bedrock/contracts/test/L2OutputOracle.t.sol @@ -14,7 +14,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { super.setUp(); } - function test_constructor() external { + function test_constructor_succeeds() external { assertEq(oracle.PROPOSER(), proposer); assertEq(oracle.CHALLENGER(), owner); assertEq(oracle.SUBMISSION_INTERVAL(), submissionInterval); @@ -23,7 +23,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { assertEq(oracle.startingTimestamp(), startingTimestamp); } - function testCannot_constructWithBadTimestamp() external { + function test_constructor_badTimestamp_reverts() external { vm.expectRevert("L2OutputOracle: starting L2 timestamp must be less than current time"); new L2OutputOracle( @@ -42,7 +42,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { ****************/ // Test: latestBlockNumber() should return the correct value - function test_latestBlockNumber() external { + function test_latestBlockNumber_succeeds() external { uint256 proposedNumber = oracle.nextBlockNumber(); // Roll to after the block number we'll propose @@ -53,7 +53,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { } // Test: getL2Output() should return the correct value - function test_getL2Output() external { + function test_getL2Output_succeeds() external { uint256 nextBlockNumber = oracle.nextBlockNumber(); uint256 nextOutputIndex = oracle.nextOutputIndex(); warpToProposeTime(nextBlockNumber); @@ -96,7 +96,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { } // Test: getL2OutputIndexAfter() returns correct value during binary search - function test_getL2OutputIndexAfter_multipleOutputsExist() external { + function test_getL2OutputIndexAfter_multipleOutputsExist_succeeds() external { bytes32 output1 = keccak256(abi.encode(1)); uint256 nextBlockNumber1 = oracle.nextBlockNumber(); warpToProposeTime(nextBlockNumber1); @@ -135,13 +135,13 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { } // Test: getL2OutputIndexAfter() reverts when no output exists yet - function test_getL2OutputIndexAfter_noOutputsExist() external { + function test_getL2OutputIndexAfter_noOutputsExis_reverts() external { vm.expectRevert("L2OutputOracle: cannot get output as no outputs have been proposed yet"); oracle.getL2OutputIndexAfter(0); } // Test: nextBlockNumber() should return the correct value - function test_nextBlockNumber() external { + function test_nextBlockNumber_succeeds() external { assertEq( oracle.nextBlockNumber(), // The return value should match this arithmetic @@ -149,7 +149,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { ); } - function test_computeL2Timestamp() external { + function test_computeL2Timestamp_succeeds() external { // reverts if timestamp is too low vm.expectRevert(stdError.arithmeticError); oracle.computeL2Timestamp(startingBlockNumber - 1); @@ -177,8 +177,8 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { // Test: proposeL2Output succeeds when given valid input, and no block hash and number are // specified. - function test_proposingAnotherOutput() public { - bytes32 proposedOutput2 = keccak256(abi.encode(2)); + function test_proposeL2Output_proposeAnotherOutput_succeeds() public { + bytes32 proposedOutput2 = keccak256(abi.encode()); uint256 nextBlockNumber = oracle.nextBlockNumber(); warpToProposeTime(nextBlockNumber); uint256 proposedNumber = oracle.latestBlockNumber(); @@ -193,7 +193,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { // Test: proposeL2Output succeeds when given valid input, and when a block hash and number are // specified for reorg protection. - function test_proposeWithBlockhashAndHeight() external { + function test_proposeWithBlockhashAndHeight_succeeds() external { // Get the number and hash of a previous block in the chain uint256 prevL1BlockNumber = block.number - 1; bytes32 prevL1BlockHash = blockhash(prevL1BlockNumber); @@ -209,7 +209,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { ***************************/ // Test: proposeL2Output fails if called by a party that is not the proposer. - function testCannot_proposeL2Output_ifNotProposer() external { + function test_proposeL2Output_notProposer_reverts() external { uint256 nextBlockNumber = oracle.nextBlockNumber(); warpToProposeTime(nextBlockNumber); @@ -219,7 +219,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { } // Test: proposeL2Output fails given a zero blockhash. - function testCannot_proposeEmptyOutput() external { + function test_proposeL2Output_emptyOutput_reverts() external { bytes32 outputToPropose = bytes32(0); uint256 nextBlockNumber = oracle.nextBlockNumber(); warpToProposeTime(nextBlockNumber); @@ -229,7 +229,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { } // Test: proposeL2Output fails if the block number doesn't match the next expected number. - function testCannot_proposeUnexpectedBlockNumber() external { + function test_proposeL2Output_unexpectedBlockNumber_reverts() external { uint256 nextBlockNumber = oracle.nextBlockNumber(); warpToProposeTime(nextBlockNumber); vm.prank(proposer); @@ -238,7 +238,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { } // Test: proposeL2Output fails if it would have a timestamp in the future. - function testCannot_proposeFutureTimetamp() external { + function test_proposeL2Output_futureTimetamp_reverts() external { uint256 nextBlockNumber = oracle.nextBlockNumber(); uint256 nextTimestamp = oracle.computeL2Timestamp(nextBlockNumber); vm.warp(nextTimestamp); @@ -249,7 +249,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { // Test: proposeL2Output fails if a non-existent L1 block hash and number are provided for reorg // protection. - function testCannot_proposeOnWrongFork() external { + function test_proposeL2Output_wrongFork_reverts() external { uint256 nextBlockNumber = oracle.nextBlockNumber(); warpToProposeTime(nextBlockNumber); vm.prank(proposer); @@ -266,7 +266,7 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { // Test: proposeL2Output fails when given valid input, but the block hash and number do not // match. - function testCannot_ProposeWithUnmatchedBlockhash() external { + function test_proposeL2Output_unmatchedBlockhash_reverts() external { // Move ahead to block 100 so that we can reference historical blocks vm.roll(100); @@ -291,9 +291,9 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { event OutputsDeleted(uint256 indexed prevNextOutputIndex, uint256 indexed newNextOutputIndex); - function test_deleteOutputs_singleOutput() external { - test_proposingAnotherOutput(); - test_proposingAnotherOutput(); + function test_deleteOutputs_singleOutput_succeeds() external { + test_proposeL2Output_proposeAnotherOutput_succeeds(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); uint256 latestBlockNumber = oracle.latestBlockNumber(); uint256 latestOutputIndex = oracle.latestOutputIndex(); @@ -315,11 +315,11 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { assertEq(newLatestOutput.timestamp, proposal.timestamp); } - function test_deleteOutputs_multipleOutputs() external { - test_proposingAnotherOutput(); - test_proposingAnotherOutput(); - test_proposingAnotherOutput(); - test_proposingAnotherOutput(); + function test_deleteOutputs_multipleOutputs_succeeds() external { + test_proposeL2Output_proposeAnotherOutput_succeeds(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); uint256 latestBlockNumber = oracle.latestBlockNumber(); uint256 latestOutputIndex = oracle.latestOutputIndex(); @@ -345,15 +345,15 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { * Delete Tests - Sad Path * ***************************/ - function testCannot_deleteL2Outputs_ifNotChallenger() external { + function test_deleteL2Outputs_ifNotChallenger_reverts() external { uint256 latestBlockNumber = oracle.latestBlockNumber(); vm.expectRevert("L2OutputOracle: only the challenger address can delete outputs"); oracle.deleteL2Outputs(latestBlockNumber); } - function testCannot_deleteL2Outputs_nonExistent() external { - test_proposingAnotherOutput(); + function test_deleteL2Outputs_nonExistent_reverts() external { + test_proposeL2Output_proposeAnotherOutput_succeeds(); uint256 latestBlockNumber = oracle.latestBlockNumber(); @@ -362,11 +362,11 @@ contract L2OutputOracleTest is L2OutputOracle_Initializer { oracle.deleteL2Outputs(latestBlockNumber + 1); } - function testCannot_deleteL2Outputs_afterLatest() external { + function test_deleteL2Outputs_afterLatest_reverts() external { // Start by proposing three outputs - test_proposingAnotherOutput(); - test_proposingAnotherOutput(); - test_proposingAnotherOutput(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); + test_proposeL2Output_proposeAnotherOutput_succeeds(); // Delete the latest two outputs uint256 latestOutputIndex = oracle.latestOutputIndex(); @@ -388,7 +388,7 @@ contract L2OutputOracleUpgradeable_Test is L2OutputOracle_Initializer { proxy = Proxy(payable(address(oracle))); } - function test_initValuesOnProxy() external { + function test_initValuesOnProxy_succeeds() external { assertEq(submissionInterval, oracleImpl.SUBMISSION_INTERVAL()); assertEq(l2BlockTime, oracleImpl.L2_BLOCK_TIME()); assertEq(startingBlockNumber, oracleImpl.startingBlockNumber()); @@ -398,17 +398,17 @@ contract L2OutputOracleUpgradeable_Test is L2OutputOracle_Initializer { assertEq(owner, oracleImpl.CHALLENGER()); } - function test_cannotInitProxy() external { + function test_initializeProxy_alreadyInitialized_reverts() external { vm.expectRevert("Initializable: contract is already initialized"); L2OutputOracle(payable(proxy)).initialize(startingBlockNumber, startingTimestamp); } - function test_cannotInitImpl() external { + function test_initializeImpl_alreadyInitialized_reverts() external { vm.expectRevert("Initializable: contract is already initialized"); L2OutputOracle(oracleImpl).initialize(startingBlockNumber, startingTimestamp); } - function test_upgrading() external { + function test_upgrading_succeeds() external { // Check an unused slot before upgrading. bytes32 slot21Before = vm.load(address(oracle), bytes32(uint256(21))); assertEq(bytes32(0), slot21Before); diff --git a/packages/contracts-bedrock/contracts/test/LegacyERC20ETH.t.sol b/packages/contracts-bedrock/contracts/test/LegacyERC20ETH.t.sol index 0fb84a028fa072c4e6f26fa741ac79eb495ca43b..8c5f4ccca582daed9446c1ee911552028e51bee5 100644 --- a/packages/contracts-bedrock/contracts/test/LegacyERC20ETH.t.sol +++ b/packages/contracts-bedrock/contracts/test/LegacyERC20ETH.t.sol @@ -12,48 +12,48 @@ contract LegacyERC20ETH_Test is CommonTest { eth = new LegacyERC20ETH(); } - function test_metadata() external { + function test_metadata_succeeds() external { assertEq(eth.name(), "Ether"); assertEq(eth.symbol(), "ETH"); assertEq(eth.decimals(), 18); } - function test_crossDomain() external { + function test_crossDomain_succeeds() external { assertEq(eth.l2Bridge(), Predeploys.L2_STANDARD_BRIDGE); assertEq(eth.l1Token(), address(0)); } - function test_transfer() external { + function test_transfer_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: transfer is disabled"); eth.transfer(alice, 100); } - function test_approve() external { + function test_approve_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: approve is disabled"); eth.approve(alice, 100); } - function test_transferFrom() external { + function test_transferFrom_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: transferFrom is disabled"); eth.transferFrom(bob, alice, 100); } - function test_increaseAllowance() external { + function test_increaseAllowance_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: increaseAllowance is disabled"); eth.increaseAllowance(alice, 100); } - function test_decreaseAllowance() external { + function test_decreaseAllowance_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: decreaseAllowance is disabled"); eth.decreaseAllowance(alice, 100); } - function test_mint() external { + function test_mint_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: mint is disabled"); eth.mint(alice, 100); } - function test_burn() external { + function test_burn_doesNotExist_reverts() external { vm.expectRevert("LegacyERC20ETH: burn is disabled"); eth.burn(alice, 100); } diff --git a/packages/contracts-bedrock/contracts/test/OptimismMintableERC20.t.sol b/packages/contracts-bedrock/contracts/test/OptimismMintableERC20.t.sol index 7ca54073a8bb2784c439594084bc6d75b46b380a..d6b4ca00d1341435ec60fb2fdc8be71f307722d3 100644 --- a/packages/contracts-bedrock/contracts/test/OptimismMintableERC20.t.sol +++ b/packages/contracts-bedrock/contracts/test/OptimismMintableERC20.t.sol @@ -13,23 +13,23 @@ contract OptimismMintableERC20_Test is Bridge_Initializer { super.setUp(); } - function test_remoteToken() external { + function test_remoteToken_succeeds() external { assertEq(L2Token.remoteToken(), address(L1Token)); } - function test_bridge() external { + function test_bridge_succeeds() external { assertEq(L2Token.bridge(), address(L2Bridge)); } - function test_l1Token() external { + function test_l1Token_succeeds() external { assertEq(L2Token.l1Token(), address(L1Token)); } - function test_l2Bridge() external { + function test_l2Bridge_succeeds() external { assertEq(L2Token.l2Bridge(), address(L2Bridge)); } - function test_legacy() external { + function test_legacy_succeeds() external { // Getters for the remote token assertEq(L2Token.REMOTE_TOKEN(), address(L1Token)); assertEq(L2Token.remoteToken(), address(L1Token)); @@ -40,7 +40,7 @@ contract OptimismMintableERC20_Test is Bridge_Initializer { assertEq(L2Token.l2Bridge(), address(L2Bridge)); } - function test_mint() external { + function test_mint_succeeds() external { vm.expectEmit(true, true, true, true); emit Mint(alice, 100); @@ -50,14 +50,14 @@ contract OptimismMintableERC20_Test is Bridge_Initializer { assertEq(L2Token.balanceOf(alice), 100); } - function test_mintRevertsFromNotBridge() external { + function test_mint_notBridge_reverts() external { // NOT the bridge vm.expectRevert("OptimismMintableERC20: only bridge can mint and burn"); vm.prank(address(alice)); L2Token.mint(alice, 100); } - function test_burn() external { + function test_burn_succeeds() external { vm.prank(address(L2Bridge)); L2Token.mint(alice, 100); @@ -70,14 +70,14 @@ contract OptimismMintableERC20_Test is Bridge_Initializer { assertEq(L2Token.balanceOf(alice), 0); } - function test_burnRevertsFromNotBridge() external { + function test_burn_notBridge_reverts() external { // NOT the bridge vm.expectRevert("OptimismMintableERC20: only bridge can mint and burn"); vm.prank(address(alice)); L2Token.burn(alice, 100); } - function test_erc165_supportsInterface() external { + function test_erc165_supportsInterface_succeeds() external { // The assertEq calls in this test are comparing the manual calculation of the iface, // with what is returned by the solidity's type().interfaceId, just to be safe. bytes4 iface1 = bytes4(keccak256("supportsInterface(bytes4)")); diff --git a/packages/contracts-bedrock/contracts/test/OptimismMintableERC20Factory.t.sol b/packages/contracts-bedrock/contracts/test/OptimismMintableERC20Factory.t.sol index fc2babe0f6e61053c56c62f1e0bc4f4e6845a448..d0114b6f556aa5bffe9dabfc09392aee908bb96d 100644 --- a/packages/contracts-bedrock/contracts/test/OptimismMintableERC20Factory.t.sol +++ b/packages/contracts-bedrock/contracts/test/OptimismMintableERC20Factory.t.sol @@ -16,11 +16,11 @@ contract OptimismMintableTokenFactory_Test is Bridge_Initializer { super.setUp(); } - function test_bridge() external { + function test_bridge_succeeds() external { assertEq(address(L2TokenFactory.bridge()), address(L2Bridge)); } - function test_createStandardL2Token() external { + function test_createStandardL2Token_succeeds() external { address remote = address(4); address local = LibRLP.computeAddress(address(L2TokenFactory), 2); @@ -34,7 +34,7 @@ contract OptimismMintableTokenFactory_Test is Bridge_Initializer { L2TokenFactory.createStandardL2Token(remote, "Beep", "BOOP"); } - function test_createStandardL2TokenSameTwice() external { + function test_createStandardL2Token_sameTwice_succeeds() external { address remote = address(4); vm.prank(alice); @@ -52,7 +52,7 @@ contract OptimismMintableTokenFactory_Test is Bridge_Initializer { L2TokenFactory.createStandardL2Token(remote, "Beep", "BOOP"); } - function test_createStandardL2TokenShouldRevertIfRemoteIsZero() external { + function test_createStandardL2Token_remoteIsZero_succeeds() external { address remote = address(0); vm.expectRevert("OptimismMintableERC20Factory: must provide remote token address"); L2TokenFactory.createStandardL2Token(remote, "Beep", "BOOP");