From d8e1df6e3a017850546d15cad3bbd7110603e1bb Mon Sep 17 00:00:00 2001 From: Rens Rooimans Date: Thu, 26 Sep 2024 12:56:06 +0200 Subject: [PATCH] improve test --- contracts/gas-snapshots/ccip.gas-snapshot | 1953 +++++++++-------- .../src/v0.8/ccip/test/rmn/RMNHome.t.sol | 364 ++- .../src/v0.8/ccip/test/rmn/RMNHomeTest.t.sol | 330 --- 3 files changed, 1335 insertions(+), 1312 deletions(-) delete mode 100644 contracts/src/v0.8/ccip/test/rmn/RMNHomeTest.t.sol diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index 263cb7dadf..9625940002 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -5,853 +5,854 @@ ARMProxyStandaloneTest:test_SetARMzero() (gas: 12144) ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 49764) ARMProxyTest:test_ARMIsBlessed_Success() (gas: 39781) ARMProxyTest:test_ARMIsCursed_Success() (gas: 51846) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 27118) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19871) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41586) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15452) -AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10537) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17531) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21414) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16586) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18357) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13078) -AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 19016) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17546) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30393) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32407) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28842) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55271) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 244024) -BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 24166) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27609) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55271) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241912) -BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17851) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28805) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56253) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112391) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28842) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55271) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 244050) -BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 24170) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2052431) -CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9508) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 87751) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 359022) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 478323) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443187) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 31646) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 64324) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 64262) -CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11734) -CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8783) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 308111) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 48274) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 27945) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 368614) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 116145) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 149842) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 368354) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 149909) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9632) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1798048) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1040966) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1040997) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9665) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16115) -CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9596) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 185139) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 347170) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20599) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 270867) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14943) -CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9617) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370770) -CCIPConfig_constructor:test_constructor_Success() (gas: 3275156) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61370) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 24518) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21077) -CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9654) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1092200) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2043837) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2043872) -CCIPConfig_validateConfig:test__validateConfigLessTransmittersThanSigners_Success() (gas: 334491) -CCIPConfig_validateConfig:test__validateConfigSmallerFChain_Success() (gas: 465605) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 289551) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_RMNHomeAddressCannotBeZero_Reverts() (gas: 289846) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 292593) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 289185) -CCIPConfig_validateConfig:test__validateConfig_FChainTooHigh_Reverts() (gas: 336851) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 290977) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 290416) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 343692) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmittersEmptyAddresses_Reverts() (gas: 309173) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1211220) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 289247) -CCIPConfig_validateConfig:test__validateConfig_RMNHomeAddressCannotBeZero_Reverts() (gas: 289485) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 300450) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 790349) -CCIPConfig_validateConfig:test__validateConfig_ZeroP2PId_Reverts() (gas: 293748) -CCIPConfig_validateConfig:test__validateConfig_ZeroSignerKey_Reverts() (gas: 293820) -CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9596) -CommitStore_constructor:test_Constructor_Success() (gas: 2855567) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73954) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28739) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28679) -CommitStore_report:test_InvalidRootRevert() (gas: 27912) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53448) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59286) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53446) -CommitStore_report:test_Paused_Revert() (gas: 21319) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84485) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56342) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 64077) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 117309) -CommitStore_report:test_Unhealthy_Revert() (gas: 44823) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98929) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27707) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11376) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 144186) -CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37314) -CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37483) -CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129329) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11099) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20690) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11098) -CommitStore_verify:test_Blessed_Success() (gas: 96581) -CommitStore_verify:test_NotBlessed_Success() (gas: 61473) -CommitStore_verify:test_Paused_Revert() (gas: 18568) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36848) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200200) -DefensiveExampleTest:test_Recovery() (gas: 424476) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1106985) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 38322) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104438) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 86026) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37365) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95013) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40341) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 87189) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 381594) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 140568) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 798833) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 178400) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29681) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 67146) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43605) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 208068) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 219365) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 127774) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 237406) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246039) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 329283) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 310166) -EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17048) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153120) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5212732) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 143845) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21507) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36936) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 52324) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 473387) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 48346) -EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 153019) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103946) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 165358) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 180107) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 43157) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 160119) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 175497) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 237901) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 115048) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 406606) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54774) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 132556) -EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52786) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 564471) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 494719) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35887) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 546333) -EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 65298) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 124107) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 144365) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 394187) -EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18685) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 275257) -EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18815) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 223182) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 48391) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47823) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 311554) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70839) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 232136) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 281170) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 262488) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 230645) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 132092) -EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38626) -EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3397486) -EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 84833) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 188280) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27574) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 46457) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27948) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 531330) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 344463) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 189760) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2195128) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 362054) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 145457) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 365283) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 450711) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 192223) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 155387) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 60494) -EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8895) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40357) -EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38419) -EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 142469) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162818) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16936) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197985) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5056698) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 36063) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 99010) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114925) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114967) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130991) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 139431) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 130607) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38647) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38830) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25726) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25545) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 84266) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36847) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29327) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107850) -EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22823) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 226568) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53432) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25757) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57722) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 182247) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 180718) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 133236) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3573653) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30472) -EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43480) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110111) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 316020) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 113033) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72824) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 714726) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 148808) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 192679) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 123243) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 96028) -EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20598) -EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20966) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74894) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 80393) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 230742) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16943) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95505) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 154010) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24323) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 114740) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 20142) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 63070) -EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10532) -EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35297) -EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 43218) -EVM2EVMOnRamp_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 33280) -EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 28551) -EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 122690) -EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15403) -EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28359) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21353) -EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28382) -EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38899) -EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29674) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32756) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 135247) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143660) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29196) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127718) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133580) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146947) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141522) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 298719) -EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15378) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42524) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21426) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 54301) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13530) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16497) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14036) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61872) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 470835) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57370) -EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14779) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 85200) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60868) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 174097) -EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 193503) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53711) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14616) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14427) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 85487) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17468) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83617) -EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15353) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272851) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53566) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12875) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96907) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49775) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17435) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15728) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99909) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76138) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99931) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 145010) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80373) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80560) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 96064) -EtherSenderReceiverTest_constructor:test_constructor() (gas: 17553) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27346) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20375) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16724) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25457) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25307) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17925) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25329) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26370) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16686) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16588) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16630) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 40326) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12483) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 137553) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80348) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12687) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11547) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54684) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 45130) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12332) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 87721) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13233) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17278) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12330) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106501) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 110851) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 110904) -FeeQuoter_constructor:test_Setup_Success() (gas: 4972944) -FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 68383) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29076) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94781) -FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14670) -FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20550) -FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 68298) -FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16892) -FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16188) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43667) -FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 66273) -FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 78322) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39244) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34880) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27954) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 97513) -FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20468) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27829) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27785) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40376) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29503) -FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18315) -FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 82344) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52638) -FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 238762) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22555) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29847) -FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100292) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 141892) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21172) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 113309) -FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22691) -FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62714) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 1973907) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 1973865) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 1953984) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 1973639) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 1973843) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 1973655) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 64610) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 64490) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 58894) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 1973352) -FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61764) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116495) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 14037) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 1972029) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43631) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23492) -FeeQuoter_onReport:test_onReport_Success() (gas: 80094) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26860) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17284) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21428) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18516) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert() (gas: 18034) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18390) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18512) -FeeQuoter_processMessageArgs:test_processMessageArgs_InvalidEVMAddressDestToken_Revert() (gas: 44703) -FeeQuoter_processMessageArgs:test_processMessageArgs_InvalidExtraArgs_Revert() (gas: 19914) -FeeQuoter_processMessageArgs:test_processMessageArgs_MalformedEVMExtraArgs_Revert() (gas: 20333) -FeeQuoter_processMessageArgs:test_processMessageArgs_MessageFeeTooHigh_Revert() (gas: 17904) -FeeQuoter_processMessageArgs:test_processMessageArgs_SourceTokenDataTooLarge_Revert() (gas: 122709) -FeeQuoter_processMessageArgs:test_processMessageArgs_TokenAmountArraysMismatching_Revert() (gas: 42032) -FeeQuoter_processMessageArgs:test_processMessageArgs_WitEVMExtraArgsV2_Success() (gas: 28518) -FeeQuoter_processMessageArgs:test_processMessageArgs_WithConvertedTokenAmount_Success() (gas: 29949) -FeeQuoter_processMessageArgs:test_processMessageArgs_WithCorrectPoolReturnData_Success() (gas: 76145) -FeeQuoter_processMessageArgs:test_processMessageArgs_WithEVMExtraArgsV1_Success() (gas: 28116) -FeeQuoter_processMessageArgs:test_processMessageArgs_WithEmptyEVMExtraArgs_Success() (gas: 25987) -FeeQuoter_processMessageArgs:test_processMessageArgs_WithLinkTokenAmount_Success() (gas: 19523) -FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12176) -FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23730) -FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 28505) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74598) -FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 145320) -FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50875) -FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63847) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 20142) -FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 89470) -FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 51121) -FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12437) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10655) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 4001603) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10839) -FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6731) -FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6511) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 209248) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135879) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 107090) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144586) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214817) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 423641) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268928) -HybridUSDCTokenPoolMigrationTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 111484) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39362) -HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 33189) -HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12669) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 13329) -HybridUSDCTokenPoolMigrationTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160900) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 255982) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 165921) -HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_destChain_Success() (gas: 154242) -HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_homeChain_Success() (gas: 463740) -HybridUSDCTokenPoolTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 209230) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135880) -HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 107135) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144607) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214795) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 423619) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268910) -HybridUSDCTokenPoolTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 111528) -HybridUSDCTokenPoolTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160845) -HybridUSDCTokenPoolTests:test_transferLiquidity_Success() (gas: 165904) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10989) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 18028) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3051552) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3047988) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11489) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 10196) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60187) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11464) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 2836138) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30062) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79943) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59620) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 2832618) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11489) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72743) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56352) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225548) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11011) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18094) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10196) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83231) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55953) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60187) -LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11464) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11054) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35060) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5478) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3585) -MerkleMultiProofTest:test_MerkleRoot256() (gas: 394891) -MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3661) -MerkleMultiProofTest:test_SpecSync_gas() (gas: 34129) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34037) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60842) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126576) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63455) -MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 44012) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 133528) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 315630) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17864) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76453) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 76369) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38736) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53869) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17109) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12436) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 1958738) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2075046) -MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30794) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 48099) -MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15929) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17525) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21408) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14617) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 210107) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58416) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17743) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45162) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46370) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76561) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 308233) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50558) -MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073669578) -MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19302) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15913) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209885) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60182) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46935) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 48179) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77728) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 308237) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 52346) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11337) -MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19090) -MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10609) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18878) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 280256) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254729) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204595) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28826) -MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18324) -MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18253) -MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59397) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 44190) -MultiOCR3Base_setOCR3Configs:test_MoreTransmittersThanSigners_Revert() (gas: 104822) -MultiOCR3Base_setOCR3Configs:test_NoTransmitters_Revert() (gas: 18886) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283736) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422361) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511918) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSignersMismatchingTransmitters_Success() (gas: 680323) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828900) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 457292) -MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12481) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2141722) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141835) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807623) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158867) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112335) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254201) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 861206) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475852) -MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42956) -MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48639) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 77138) -MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65912) -MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33495) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79795) -MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33664) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47200) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25768) -MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18745) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24234) -MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61275) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39933) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 33049) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 233701) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1500580) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37934) -NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23706) -NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38778) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71901) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 262159) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 265836) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 329824) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 300784) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 249120) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 237027) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 153748) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168256) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 219631) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 126745) -NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 106975) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 123102) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 43079) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64408) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42943) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66666) -NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12070) -NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9705) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12210) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42431) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84597) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38177) -OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24308) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17499) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26798) -OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) -OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21335) -OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12216) -OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12372) -OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14919) -OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45469) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155220) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24425) -OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20535) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47316) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19668) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37749) -OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55360) -OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20989) -OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) -OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23511) -OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39707) -OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20584) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5656596) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 469391) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99637) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12591) -OffRamp_applySourceChainConfigUpdates:test_InvalidOnRampUpdate_Revert() (gas: 205322) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101437) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 111307) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13441) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72702) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15497) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 177979) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 335646) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 278912) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 169308) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 189031) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 157132) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 554208) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10600) -OffRamp_ccipReceive:test_Reverts() (gas: 15385) -OffRamp_commit:test_CommitOnRampMismatch_Revert() (gas: 92905) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64099) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 68124) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 64291) -OffRamp_commit:test_InvalidRootRevert() (gas: 63356) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6260756) -OffRamp_commit:test_NoConfig_Revert() (gas: 5844428) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113042) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121403) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113063) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 355198) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 164351) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 139364) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 146555) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59858) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 232074) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 125409) -OffRamp_commit:test_Unhealthy_Revert() (gas: 58633) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 206729) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51722) -OffRamp_constructor:test_Constructor_Success() (gas: 5845416) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 135514) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 102949) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 100843) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 161040) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 100763) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 100801) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17639) -OffRamp_execute:test_LargeBatch_Success() (gas: 3426635) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 373095) -OffRamp_execute:test_MultipleReports_Success() (gas: 301009) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6669661) -OffRamp_execute:test_NoConfig_Revert() (gas: 5894136) -OffRamp_execute:test_NonArray_Revert() (gas: 27562) -OffRamp_execute:test_SingleReport_Success() (gas: 176364) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 148382) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6672410) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17361) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18511) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 244057) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 20759) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 205094) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49316) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48760) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 218081) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85349) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 274194) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithVInterception_Success() (gas: 91809) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28260) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 22062) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 481748) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 48372) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33959) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28436) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 188084) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198518) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 40741) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 413233) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 249776) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 193590) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 213624) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 249506) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 142151) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 409289) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 58293) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 73868) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 583401) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 532115) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33717) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 549738) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 549752) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 460495) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135910) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 165615) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3868658) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 120474) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 89178) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 81284) -OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 74161) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 173244) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 214189) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 27152) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 165098) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27689) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 55260) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 498614) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 316158) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2245360) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 165602) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 227234) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 227774) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 781510) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 347431) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 37634) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 104404) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 85342) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36752) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94382) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39741) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86516) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 162381) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 23903) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 62751) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 79790) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 174512) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 176424) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 187723) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11269) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13884) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithInterceptor_Success() (gas: 46421) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24463) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 219355) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 227977) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 295350) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 277894) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 390842) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 18030) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 67426) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 325083) -OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 65095) -OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13422) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94996) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92938) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97971) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92972) -OnRamp_constructor:test_Constructor_Success() (gas: 2734391) -OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114527) -OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145328) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 144925) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143086) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145122) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144520) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 144604) -OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 38554) -OnRamp_forwardFromRouter:test_MessageInterceptionError_Revert() (gas: 143051) -OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 36596) -OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 36527) -OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 18291) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 38431) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 23640) -OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 183954) -OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210338) -OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 146154) -OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 160259) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3613942) -OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 24010) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 75866) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 38599) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithInterception_Success() (gas: 279390) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 98513) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64645) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 86177) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 35097) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113639) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17061) -OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10474) -OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35348) -OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11536) -OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13195) -OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigInvalidConfig_Revert() (gas: 11522) -OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigOnlyOwner_Revert() (gas: 16850) -OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigReentrancyGuardEnteredEqTrue_Revert() (gas: 13265) -OnRamp_setDynamicConfig:test_setDynamicConfig_Success() (gas: 56369) -OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97302) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 151349) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20310) -PingPong_plumbing:test_Pausing_Success() (gas: 17810) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 162091) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 181509) -RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_DuplicateOffchainPublicKey_reverts() (gas: 18822) -RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_DuplicatePeerId_reverts() (gas: 18682) -RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_DuplicateSourceChain_reverts() (gas: 20371) -RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_MinObserversTooHigh_reverts() (gas: 20810) -RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_OutOfBoundsNodesLength_reverts() (gas: 137268) -RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_OutOfBoundsObserverNodeIndex_reverts() (gas: 20472) -RMNHome_promoteCandidateAndRevokeActive:test_promoteCandidateAndRevokeActive_ConfigDigestMismatch_reverts() (gas: 23802) -RMNHome_promoteCandidateAndRevokeActive:test_promoteCandidateAndRevokeActive_OnlyOwner_reverts() (gas: 10957) -RMNHome_promoteCandidateAndRevokeActive:test_promoteCandidateAndRevokeActive_success() (gas: 1059318) -RMNHome_revokeCandidate:test_revokeCandidate_ConfigDigestMismatch_reverts() (gas: 19073) -RMNHome_revokeCandidate:test_revokeCandidate_OnlyOwner_reverts() (gas: 10984) -RMNHome_revokeCandidate:test_revokeCandidate_success() (gas: 28184) -RMNHome_setCandidate:test_setCandidate_ConfigDigestMismatch_reverts() (gas: 594772) -RMNHome_setCandidate:test_setCandidate_OnlyOwner_reverts() (gas: 15177) -RMNHome_setCandidate:test_setCandidate_success() (gas: 588430) -RMNHome_setDynamicConfig:test_setDynamicConfig_DigestNotFound_reverts() (gas: 30159) -RMNHome_setDynamicConfig:test_setDynamicConfig_MinObserversTooHigh_reverts() (gas: 18848) -RMNHome_setDynamicConfig:test_setDynamicConfig_OnlyOwner_reverts() (gas: 14115) -RMNHome_setDynamicConfig:test_setDynamicConfig_success() (gas: 103992) -RMNRemote_constructor:test_constructor_success() (gas: 8334) -RMNRemote_constructor:test_constructor_zeroChainSelector_reverts() (gas: 59165) -RMNRemote_curse:test_curse_AlreadyCursed_duplicateSubject_reverts() (gas: 154457) -RMNRemote_curse:test_curse_calledByNonOwner_reverts() (gas: 18780) -RMNRemote_curse:test_curse_success() (gas: 149365) -RMNRemote_global_and_legacy_curses:test_global_and_legacy_curses_success() (gas: 133464) -RMNRemote_setConfig:test_setConfig_addSigner_removeSigner_success() (gas: 976479) -RMNRemote_setConfig:test_setConfig_duplicateOnChainPublicKey_reverts() (gas: 323272) -RMNRemote_setConfig:test_setConfig_invalidSignerOrder_reverts() (gas: 80138) -RMNRemote_setConfig:test_setConfig_minSignersIs0_success() (gas: 700548) -RMNRemote_setConfig:test_setConfig_minSignersTooHigh_reverts() (gas: 54024) -RMNRemote_uncurse:test_uncurse_NotCursed_duplicatedUncurseSubject_reverts() (gas: 51912) -RMNRemote_uncurse:test_uncurse_calledByNonOwner_reverts() (gas: 18748) -RMNRemote_uncurse:test_uncurse_success() (gas: 40151) -RMNRemote_verify_withConfigNotSet:test_verify_reverts() (gas: 13650) -RMNRemote_verify_withConfigSet:test_verify_InvalidSignature_reverts() (gas: 78519) -RMNRemote_verify_withConfigSet:test_verify_OutOfOrderSignatures_duplicateSignature_reverts() (gas: 76336) -RMNRemote_verify_withConfigSet:test_verify_OutOfOrderSignatures_not_sorted_reverts() (gas: 83399) -RMNRemote_verify_withConfigSet:test_verify_ThresholdNotMet_reverts() (gas: 153002) -RMNRemote_verify_withConfigSet:test_verify_UnexpectedSigner_reverts() (gas: 387667) -RMNRemote_verify_withConfigSet:test_verify_minSignersIsZero_success() (gas: 184524) -RMNRemote_verify_withConfigSet:test_verify_success() (gas: 68207) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 31944) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 23227) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 55032) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 17640) +AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 11188) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 21368) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 25888) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 20854) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 19835) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13880) +AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 20448) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 19396) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 38776) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 41521) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293700) +BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28203) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 31296) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 291204) +BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 20610) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 34256) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63377) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 122166) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293726) +BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28207) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 3189509) +CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 10878) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 145955) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 434848) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 633140) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 579055) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 44684) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 99080) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 99041) +CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 14350) +CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 10424) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 354500) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 78209) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 41446) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 457703) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 195187) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 253066) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 457354) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 253155) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 10901) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1897356) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1103679) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1103764) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 10637) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 18376) +CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 10878) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 194798) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 367676) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 27219) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 283298) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 16519) +CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 10966) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 408014) +CCIPConfig_constructor:test_constructor_Success() (gas: 4899381) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 64285) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 33146) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 27881) +CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 10900) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1177115) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2179462) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2179496) +CCIPConfig_validateConfig:test__validateConfigLessTransmittersThanSigners_Success() (gas: 380391) +CCIPConfig_validateConfig:test__validateConfigSmallerFChain_Success() (gas: 563776) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 322801) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_RMNHomeAddressCannotBeZero_Reverts() (gas: 323274) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 326366) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 322049) +CCIPConfig_validateConfig:test__validateConfig_FChainTooHigh_Reverts() (gas: 394891) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 325079) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 323956) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 404808) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmittersEmptyAddresses_Reverts() (gas: 353906) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1443999) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 322100) +CCIPConfig_validateConfig:test__validateConfig_RMNHomeAddressCannotBeZero_Reverts() (gas: 322572) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 338914) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 1176289) +CCIPConfig_validateConfig:test__validateConfig_ZeroP2PId_Reverts() (gas: 328486) +CCIPConfig_validateConfig:test__validateConfig_ZeroSignerKey_Reverts() (gas: 328576) +CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 10988) +CommitStore_constructor:test_Constructor_Success() (gas: 4361942) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 83130) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 32885) +CommitStore_report:test_InvalidInterval_Revert() (gas: 32781) +CommitStore_report:test_InvalidRootRevert() (gas: 31537) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 61004) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 70437) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 61025) +CommitStore_report:test_Paused_Revert() (gas: 22402) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 94701) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 60020) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 72243) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 136763) +CommitStore_report:test_Unhealthy_Revert() (gas: 46665) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 116937) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 32226) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 12082) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 172098) +CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 44708) +CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 44671) +CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 150735) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11970) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 22566) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11969) +CommitStore_verify:test_Blessed_Success() (gas: 108814) +CommitStore_verify:test_NotBlessed_Success() (gas: 69299) +CommitStore_verify:test_Paused_Revert() (gas: 19843) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 85894) +DefensiveExampleTest:test_HappyPath_Success() (gas: 247055) +DefensiveExampleTest:test_Recovery() (gas: 483144) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1459037) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 48827) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 122487) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 100439) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 45166) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 110906) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 47409) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 102213) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 452793) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 163533) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 947445) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 207677) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 37420) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 81689) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 52840) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 248387) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 256427) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 150186) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 280928) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 291045) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 425921) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 368465) +EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 20655) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 162623) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 7939916) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 152500) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 24199) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 47203) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 67004) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 578501) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 61423) +EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 175550) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 139288) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 192927) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 215419) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 55720) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 208494) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 220462) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 290662) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 134108) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 490970) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 68824) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 158417) +EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 65640) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 699587) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 607548) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 45035) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 699898) +EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 91821) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 157284) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 175420) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 601571) +EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 23052) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 315290) +EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 23338) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 258353) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 59576) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 58690) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 368147) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 93587) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 279051) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 351951) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 326170) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 303514) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 154916) +EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 42076) +EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 5016070) +EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 104111) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 234610) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 37344) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 67784) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 37732) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 673237) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 416742) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 235356) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 3548576) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 442167) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 173700) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 447336) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 681724) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 239038) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 188679) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 80150) +EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 10174) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 47737) +EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 46206) +EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 182870) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 171983) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 25219) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 205572) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 7995985) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 40118) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 112063) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 136127) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 136125) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 147732) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 160359) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 146970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 43162) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 43265) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 28899) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28541) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 93166) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 40651) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 33116) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 119271) +EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 25711) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 263611) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 60811) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 28656) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 66594) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 246017) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 231059) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 148693) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 5451750) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 36372) +EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 46651) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 119388) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 357179) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 122802) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 79581) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 931861) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 170805) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 233734) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 149106) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 111551) +EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 28790) +EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 29664) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 103386) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 102775) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 274795) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 19531) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 105736) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 246841) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 28335) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 174801) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 24852) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 81035) +EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 11166) +EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 41957) +EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 54001) +EVM2EVMOnRamp_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 43066) +EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 37875) +EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 190349) +EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 17641) +EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 37525) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 24786) +EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 37548) +EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 49698) +EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 38218) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 36639) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 145939) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 157645) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 32428) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 135001) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 141695) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 161181) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 155453) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 328800) +EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15878) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 49643) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 28163) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 68220) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14432) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 17635) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14948) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 67974) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 551687) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 61776) +EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 16548) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 96806) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 64532) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 185469) +EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 415502) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 58089) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 17784) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 15545) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 117548) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 18795) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 92590) +EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 16405) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 326944) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 58679) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 13676) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 103814) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 54732) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 21881) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 20674) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 116467) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 91360) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 116371) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 167929) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 98200) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 98574) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 117880) +EtherSenderReceiverTest_constructor:test_constructor() (gas: 19659) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 41207) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 22872) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 18390) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 18420) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 34950) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 34697) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 23796) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 34674) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 36305) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 21287) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 21260) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 21273) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 49746) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 13305) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 168513) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 92061) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 14447) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12564) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 61121) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 48797) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 13248) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 118031) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 14427) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 21388) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13659) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 127807) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 132149) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 132196) +FeeQuoter_constructor:test_Setup_Success() (gas: 7908400) +FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 74951) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 34055) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 124958) +FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 20691) +FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 33048) +FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 73952) +FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 19223) +FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 17728) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 47642) +FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 74567) +FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 87892) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 51274) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 46576) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 39182) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 161432) +FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 25553) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 38832) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 38788) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 53538) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 40215) +FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 23180) +FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 126780) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 65331) +FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 298759) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 27952) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 37814) +FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 113039) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 244565) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 26700) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 189634) +FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 29755) +FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 82721) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 3425326) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 3425261) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 3405403) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 3425009) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 3425222) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 3425016) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 71128) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 70962) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 63583) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 3424704) +FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 66998) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 122906) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 15635) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 3422488) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 55021) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 27666) +FeeQuoter_onReport:test_onReport_Success() (gas: 98820) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 31209) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 23993) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 28138) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 25276) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert() (gas: 24171) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 25547) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 26085) +FeeQuoter_processMessageArgs:test_processMessageArgs_InvalidEVMAddressDestToken_Revert() (gas: 53875) +FeeQuoter_processMessageArgs:test_processMessageArgs_InvalidExtraArgs_Revert() (gas: 22252) +FeeQuoter_processMessageArgs:test_processMessageArgs_MalformedEVMExtraArgs_Revert() (gas: 22714) +FeeQuoter_processMessageArgs:test_processMessageArgs_MessageFeeTooHigh_Revert() (gas: 20791) +FeeQuoter_processMessageArgs:test_processMessageArgs_SourceTokenDataTooLarge_Revert() (gas: 159879) +FeeQuoter_processMessageArgs:test_processMessageArgs_TokenAmountArraysMismatching_Revert() (gas: 49920) +FeeQuoter_processMessageArgs:test_processMessageArgs_WitEVMExtraArgsV2_Success() (gas: 37697) +FeeQuoter_processMessageArgs:test_processMessageArgs_WithConvertedTokenAmount_Success() (gas: 36217) +FeeQuoter_processMessageArgs:test_processMessageArgs_WithCorrectPoolReturnData_Success() (gas: 96367) +FeeQuoter_processMessageArgs:test_processMessageArgs_WithEVMExtraArgsV1_Success() (gas: 36520) +FeeQuoter_processMessageArgs:test_processMessageArgs_WithEmptyEVMExtraArgs_Success() (gas: 33576) +FeeQuoter_processMessageArgs:test_processMessageArgs_WithLinkTokenAmount_Success() (gas: 22717) +FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 13531) +FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 27566) +FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 32627) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 83557) +FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 165439) +FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 57411) +FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 75829) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 22380) +FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 101508) +FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 57373) +FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 13342) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 12222) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 5634878) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 12371) +FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 7769) +FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 7345) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 234768) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150751) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113661) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154754) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 233895) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 509579) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 327065) +HybridUSDCTokenPoolMigrationTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 122081) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 41448) +HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 35499) +HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12889) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 15409) +HybridUSDCTokenPoolMigrationTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 167516) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 283817) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 176428) +HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_destChain_Success() (gas: 176729) +HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_homeChain_Success() (gas: 538840) +HybridUSDCTokenPoolTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 234786) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150729) +HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113683) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154776) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 233917) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 509534) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 327020) +HybridUSDCTokenPoolTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 122147) +HybridUSDCTokenPoolTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 167494) +HybridUSDCTokenPoolTests:test_transferLiquidity_Success() (gas: 176445) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 11968) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 19761) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 5147538) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 5143388) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 12683) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 11613) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 64820) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 12647) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 4775338) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 33986) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 91128) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 64965) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 4771254) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 12661) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 81914) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63333) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 274666) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11990) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 19783) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11613) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 88490) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 59808) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 64803) +LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 12647) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 12033) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 36728) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 6372) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 4019) +MerkleMultiProofTest:test_MerkleRoot256() (gas: 668330) +MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 4074) +MerkleMultiProofTest:test_SpecSync_gas() (gas: 49338) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 37132) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 64034) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 135267) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 68119) +MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 48403) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 150584) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 357431) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 20693) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 85456) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 85382) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 49626) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 68052) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 19536) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 13331) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 3286151) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 3403578) +MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 38652) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 63823) +MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 18548) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 20837) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 25361) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 17951) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 242409) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 68454) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 21034) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 53968) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 56502) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 108389) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 344604) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 60097) +MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073657377) +MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 21497) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 18167) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 240199) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 69225) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 54803) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 57316) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 105576) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 342731) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 60912) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 12286) +MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 20439) +MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 11124) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 26352) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 292916) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 265872) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 214939) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 32607) +MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 21085) +MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 20891) +MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 72005) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 49229) +MultiOCR3Base_setOCR3Configs:test_MoreTransmittersThanSigners_Revert() (gas: 115903) +MultiOCR3Base_setOCR3Configs:test_NoTransmitters_Revert() (gas: 23219) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 296831) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 437346) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 557001) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSignersMismatchingTransmitters_Success() (gas: 719687) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 874847) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 486312) +MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 13373) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2266810) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 152944) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 841242) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 312041) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 261347) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 266581) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 930576) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 516830) +MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 49771) +MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 56488) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 87043) +MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 75511) +MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 38453) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 92076) +MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 39865) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 52756) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 30083) +MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 21035) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 29105) +MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 69917) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 42537) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 37478) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 304717) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1921934) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 40448) +NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 27403) +NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 41879) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 79874) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 316259) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 322432) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 417132) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 375380) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 327638) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 313211) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 183405) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 192881) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 266908) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 153619) +NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 125041) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 134448) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 47118) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 69128) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 46949) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 72431) +NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12892) +NonceManager_typeAndVersion:test_typeAndVersion() (gas: 10623) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 15443) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 48841) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 97138) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 75615) +OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 32515) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 20081) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 29888) +OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 30530) +OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 25249) +OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 15449) +OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 15725) +OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 21647) +OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 56234) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 169648) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 32751) +OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 34759) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 55992) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 22520) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 42561) +OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 62252) +OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 24538) +OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 58490) +OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 27448) +OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 45597) +OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 23593) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 8902529) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 495132) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 107802) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 13418) +OffRamp_applySourceChainConfigUpdates:test_InvalidOnRampUpdate_Revert() (gas: 231022) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 110522) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 124535) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 15757) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 77820) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 17894) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 224083) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 425996) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 368952) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 208104) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 239311) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 188653) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 717329) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 12088) +OffRamp_ccipReceive:test_Reverts() (gas: 18753) +OffRamp_commit:test_CommitOnRampMismatch_Revert() (gas: 109720) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 77314) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 83071) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 77116) +OffRamp_commit:test_InvalidRootRevert() (gas: 75631) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 9548401) +OffRamp_commit:test_NoConfig_Revert() (gas: 9122532) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 130728) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 147353) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 130749) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 424203) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 190103) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 161941) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 176263) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 72480) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 280739) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 144515) +OffRamp_commit:test_Unhealthy_Revert() (gas: 71728) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 250379) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 61202) +OffRamp_constructor:test_Constructor_Success() (gas: 9121263) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 148706) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 112646) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 110448) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 174260) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 110450) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 110395) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 19670) +OffRamp_execute:test_LargeBatch_Success() (gas: 4789035) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 462387) +OffRamp_execute:test_MultipleReports_Success() (gas: 392392) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 9972739) +OffRamp_execute:test_NoConfig_Revert() (gas: 9179658) +OffRamp_execute:test_NonArray_Revert() (gas: 34048) +OffRamp_execute:test_SingleReport_Success() (gas: 209314) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 173200) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 9980482) +OffRamp_execute:test_ZeroReports_Revert() (gas: 19285) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 23977) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 277738) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 26476) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 236582) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 60990) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 60132) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 267137) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 98126) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 320798) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithVInterception_Success() (gas: 108714) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 36766) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 24545) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 595814) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 60468) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 42455) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 37212) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 221890) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 237935) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 52346) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 625018) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 297913) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 252901) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 271928) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 307332) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 168258) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 502204) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 71999) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 86531) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 733681) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 666498) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 42450) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 710720) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 710723) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 574134) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 172776) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 202237) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 5703276) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 148004) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 111520) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 128026) +OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 103971) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 208382) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 261275) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 37688) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 267627) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 38216) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 73056) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 742494) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 408960) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 3574005) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 199720) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 279997) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 280693) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 1033763) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 461923) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 47648) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 121919) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 99377) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 44074) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 109868) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 46405) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 101128) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 187037) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 28901) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 74851) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 94066) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 206891) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 209712) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 217613) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 12524) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 15529) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithInterceptor_Success() (gas: 50816) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 28782) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 259624) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 269734) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 386633) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 329701) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 508639) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 21134) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 80371) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 354856) +OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 78476) +OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 15598) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 102315) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 100221) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 105207) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 100252) +OnRamp_constructor:test_Constructor_Success() (gas: 4347361) +OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 133398) +OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 165326) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 164235) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 161377) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 164476) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 163517) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 162302) +OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 42724) +OnRamp_forwardFromRouter:test_MessageInterceptionError_Revert() (gas: 159155) +OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 41378) +OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 40275) +OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 20626) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 44273) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 26244) +OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 245705) +OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 272872) +OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 165989) +OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 184473) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 5507485) +OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 26986) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 83046) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 43372) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithInterception_Success() (gas: 328207) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 137801) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 78643) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 112828) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 41569) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 167530) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 19992) +OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 11166) +OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 42064) +OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 13223) +OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 15545) +OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigInvalidConfig_Revert() (gas: 13277) +OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigOnlyOwner_Revert() (gas: 21138) +OnRamp_setDynamicConfig:test_setDynamicConfig_InvalidConfigReentrancyGuardEnteredEqTrue_Revert() (gas: 15612) +OnRamp_setDynamicConfig:test_setDynamicConfig_Success() (gas: 65013) +OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 104728) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 175023) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 21848) +PingPong_plumbing:test_Pausing_Success() (gas: 19077) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 197173) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 215989) +RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_DuplicateOffchainPublicKey_reverts() (gas: 27051) +RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_DuplicatePeerId_reverts() (gas: 26895) +RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_DuplicateSourceChain_reverts() (gas: 29030) +RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_MinObserversTooHigh_reverts() (gas: 29826) +RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_OutOfBoundsNodesLength_reverts() (gas: 370101) +RMNHome__validateStaticAndDynamicConfig:test_validateStaticAndDynamicConfig_OutOfBoundsObserverNodeIndex_reverts() (gas: 29288) +RMNHome_getConfigDigests:test_getConfigDigests_success() (gas: 1136659) +RMNHome_promoteCandidateAndRevokeActive:test_promoteCandidateAndRevokeActive_ConfigDigestMismatch_reverts() (gas: 27121) +RMNHome_promoteCandidateAndRevokeActive:test_promoteCandidateAndRevokeActive_OnlyOwner_reverts() (gas: 12189) +RMNHome_promoteCandidateAndRevokeActive:test_promoteCandidateAndRevokeActive_success() (gas: 1151180) +RMNHome_revokeCandidate:test_revokeCandidate_ConfigDigestMismatch_reverts() (gas: 20826) +RMNHome_revokeCandidate:test_revokeCandidate_OnlyOwner_reverts() (gas: 11983) +RMNHome_revokeCandidate:test_revokeCandidate_success() (gas: 34651) +RMNHome_setCandidate:test_setCandidate_ConfigDigestMismatch_reverts() (gas: 657563) +RMNHome_setCandidate:test_setCandidate_OnlyOwner_reverts() (gas: 19560) +RMNHome_setCandidate:test_setCandidate_success() (gas: 632678) +RMNHome_setDynamicConfig:test_setDynamicConfig_DigestNotFound_reverts() (gas: 35639) +RMNHome_setDynamicConfig:test_setDynamicConfig_MinObserversTooHigh_reverts() (gas: 21659) +RMNHome_setDynamicConfig:test_setDynamicConfig_OnlyOwner_reverts() (gas: 16974) +RMNHome_setDynamicConfig:test_setDynamicConfig_success() (gas: 127980) +RMNRemote_constructor:test_constructor_success() (gas: 8853) +RMNRemote_constructor:test_constructor_zeroChainSelector_reverts() (gas: 61072) +RMNRemote_curse:test_curse_AlreadyCursed_duplicateSubject_reverts() (gas: 156801) +RMNRemote_curse:test_curse_calledByNonOwner_reverts() (gas: 20544) +RMNRemote_curse:test_curse_success() (gas: 157167) +RMNRemote_global_and_legacy_curses:test_global_and_legacy_curses_success() (gas: 141492) +RMNRemote_setConfig:test_setConfig_addSigner_removeSigner_success() (gas: 1097399) +RMNRemote_setConfig:test_setConfig_duplicateOnChainPublicKey_reverts() (gas: 339136) +RMNRemote_setConfig:test_setConfig_invalidSignerOrder_reverts() (gas: 91696) +RMNRemote_setConfig:test_setConfig_minSignersIs0_success() (gas: 773860) +RMNRemote_setConfig:test_setConfig_minSignersTooHigh_reverts() (gas: 64566) +RMNRemote_uncurse:test_uncurse_NotCursed_duplicatedUncurseSubject_reverts() (gas: 53942) +RMNRemote_uncurse:test_uncurse_calledByNonOwner_reverts() (gas: 20525) +RMNRemote_uncurse:test_uncurse_success() (gas: 44264) +RMNRemote_verify_withConfigNotSet:test_verify_reverts() (gas: 14954) +RMNRemote_verify_withConfigSet:test_verify_InvalidSignature_reverts() (gas: 88745) +RMNRemote_verify_withConfigSet:test_verify_OutOfOrderSignatures_duplicateSignature_reverts() (gas: 86340) +RMNRemote_verify_withConfigSet:test_verify_OutOfOrderSignatures_not_sorted_reverts() (gas: 93570) +RMNRemote_verify_withConfigSet:test_verify_ThresholdNotMet_reverts() (gas: 177181) +RMNRemote_verify_withConfigSet:test_verify_UnexpectedSigner_reverts() (gas: 429818) +RMNRemote_verify_withConfigSet:test_verify_minSignersIsZero_success() (gas: 230707) +RMNRemote_verify_withConfigSet:test_verify_success() (gas: 77919) RMN_constructor:test_Constructor_Success() (gas: 63037) RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 24609) RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 159340) @@ -908,137 +909,137 @@ RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 126446) RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 102691) RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 151187) -RateLimiter_constructor:test_Constructor_Success() (gas: 19734) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16042) -RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22390) -RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31518) -RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20381) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40687) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15822) -RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25798) -RateLimiter_consume:test_Refill_Success() (gas: 37444) -RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18388) -RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24886) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38944) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46849) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38506) +RateLimiter_constructor:test_Constructor_Success() (gas: 22964) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 19839) +RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 28311) +RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 39405) +RateLimiter_consume:test_ConsumeTokens_Success() (gas: 21919) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 57402) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 19531) +RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 33020) +RateLimiter_consume:test_Refill_Success() (gas: 48170) +RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 22450) +RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 31057) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 49681) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 63750) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 48188) RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36711) RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 22517) RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 137341) RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 22359) RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 137182) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89366) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10662612) -Router_applyRampUpdates:test_OnRampDisable() (gas: 56007) -Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12356) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114599) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 202430) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126968) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 214801) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64520) -Router_ccipSend:test_InvalidMsgValue() (gas: 32155) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 67177) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 170385) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 54279) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 168901) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 239227) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24854) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44811) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 171189) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 241701) -Router_constructor:test_Constructor_Success() (gas: 13128) -Router_getArmProxy:test_getArmProxy() (gas: 10573) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44673) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17192) -Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10532) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11334) -Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20267) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11171) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 358049) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52480) -Router_routeMessage:test_AutoExec_Success() (gas: 42816) -Router_routeMessage:test_ExecutionEvent_Success() (gas: 158520) -Router_routeMessage:test_ManualExec_Success() (gas: 35546) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25224) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44799) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10998) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55660) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 421258) -SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20181) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51163) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 44004) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12653) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67056) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11362) -TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17602) -TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39962) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 106006) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104346) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15610) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15155) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112962) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107965) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 116067) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12609) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54524) -TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19316) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18137) -TokenAdminRegistry_setPool:test_setPool_Success() (gas: 36135) -TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30842) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18103) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49438) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5586499) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5617969) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 5793246) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3070731) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6434801) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 6634934) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 1979943) -TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12113) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23476) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177848) -TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 23764) -TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8375) -TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24867) -TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271569) -TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542359) -TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11469) -TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 479160) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157422) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70484) -TokenPool_constructor:test_immutableFields_Success() (gas: 20586) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274181) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277296) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 290028) -TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 350050) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277036) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 254065) -TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 305106) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17187) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15227) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15671) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13219) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282125) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17226) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134605) -TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 16000) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 244013) -TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16384) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 262651) -TokenProxy_constructor:test_Constructor() (gas: 13836) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16899) -TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12706) -TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15885) -TokenProxy_getFee:test_GetFee_Success() (gas: 85240) -USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25704) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35481) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30235) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133508) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 478182) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268672) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50952) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98987) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66393) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11363) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10041) \ No newline at end of file +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 93496) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 12348645) +Router_applyRampUpdates:test_OnRampDisable() (gas: 65150) +Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 13275) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 133309) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 240131) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 147975) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 254777) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 78020) +Router_ccipSend:test_InvalidMsgValue() (gas: 35871) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 80832) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 203317) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 65179) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 201073) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 266824) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 28660) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 48532) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 205616) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 282163) +Router_constructor:test_Constructor_Success() (gas: 14515) +Router_getArmProxy:test_getArmProxy() (gas: 11328) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 55552) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 20945) +Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 11166) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 12807) +Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 21382) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 12776) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 603372) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 59811) +Router_routeMessage:test_AutoExec_Success() (gas: 52571) +Router_routeMessage:test_ExecutionEvent_Success() (gas: 183071) +Router_routeMessage:test_ManualExec_Success() (gas: 41748) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 28290) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 47722) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 11766) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 62294) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 560135) +SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 22195) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 58611) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 50532) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 14159) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 70293) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 12680) +TokenAdminRegistry_getPool:test_getPool_Success() (gas: 18649) +TokenAdminRegistry_getPools:test_getPools_Success() (gas: 48161) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 113861) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 109470) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 17535) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 16768) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 123148) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 114227) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 123889) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 14115) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 58226) +TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 21992) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 20133) +TokenAdminRegistry_setPool:test_setPool_Success() (gas: 41047) +TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 35795) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 20198) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 54721) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 8984851) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 9017404) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 9314221) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 5168919) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 9975724) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 10174033) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 3418174) +TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 13392) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 26742) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 189536) +TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 25742) +TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8788) +TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 28100) +TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 282666) +TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 580050) +TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 22750) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 12333) +TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 534354) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 165350) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 74247) +TokenPool_constructor:test_immutableFields_Success() (gas: 23251) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 285082) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 287212) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 305616) +TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 361142) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 286591) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 269389) +TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 315814) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 19578) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 17926) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 17612) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 15337) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 293732) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 20582) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 158368) +TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 18599) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 288755) +TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 19019) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 310931) +TokenProxy_constructor:test_Constructor() (gas: 15309) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 20176) +TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 14693) +TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 18513) +TokenProxy_getFee:test_GetFee_Success() (gas: 117905) +USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 37856) +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 40114) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 34440) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 147394) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 546719) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 326433) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 59047) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 112325) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 74539) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 12298) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11479) \ No newline at end of file diff --git a/contracts/src/v0.8/ccip/test/rmn/RMNHome.t.sol b/contracts/src/v0.8/ccip/test/rmn/RMNHome.t.sol index 40cb1e4a07..34751f43d5 100644 --- a/contracts/src/v0.8/ccip/test/rmn/RMNHome.t.sol +++ b/contracts/src/v0.8/ccip/test/rmn/RMNHome.t.sol @@ -3,13 +3,365 @@ pragma solidity 0.8.24; import {Internal} from "../../libraries/Internal.sol"; import {RMNHome} from "../../rmn/RMNHome.sol"; -import {BaseTest} from "../BaseTest.t.sol"; +import {Test} from "forge-std/Test.sol"; +import {Vm} from "forge-std/Vm.sol"; -contract RMNHomeTest is BaseTest { - RMNHome public s_rmnHome; +contract RMNHomeTest is Test { + struct Config { + RMNHome.StaticConfig staticConfig; + RMNHome.DynamicConfig dynamicConfig; + } + + bytes32 internal constant ZERO_DIGEST = bytes32(uint256(0)); + RMNHome public s_rmnHome = new RMNHome(); + + function _getBaseConfig() internal pure returns (Config memory) { + RMNHome.Node[] memory nodes = new RMNHome.Node[](3); + nodes[0] = RMNHome.Node({peerId: keccak256("peerId_0"), offchainPublicKey: keccak256("offchainPublicKey_0")}); + nodes[1] = RMNHome.Node({peerId: keccak256("peerId_1"), offchainPublicKey: keccak256("offchainPublicKey_1")}); + nodes[2] = RMNHome.Node({peerId: keccak256("peerId_2"), offchainPublicKey: keccak256("offchainPublicKey_2")}); + + RMNHome.SourceChain[] memory sourceChains = new RMNHome.SourceChain[](2); + // Observer 0 for source chain 9000 + sourceChains[0] = RMNHome.SourceChain({chainSelector: 9000, minObservers: 1, observerNodesBitmap: 1 << 0}); + // Observers 1 and 2 for source chain 9001 + sourceChains[1] = RMNHome.SourceChain({chainSelector: 9001, minObservers: 2, observerNodesBitmap: 1 << 1 | 1 << 2}); + + return Config({ + staticConfig: RMNHome.StaticConfig({nodes: nodes, offchainConfig: abi.encode("static_config")}), + dynamicConfig: RMNHome.DynamicConfig({sourceChains: sourceChains, offchainConfig: abi.encode("dynamic_config")}) + }); + } + + uint256 private constant PREFIX_MASK = type(uint256).max << (256 - 16); // 0xFFFF00..00 + uint256 private constant PREFIX = 0x000b << (256 - 16); // 0x000b00..00 + + function _getConfigDigest(bytes memory staticConfig, uint32 version) internal view returns (bytes32) { + return bytes32( + (PREFIX & PREFIX_MASK) + | ( + uint256( + keccak256(bytes.concat(abi.encode(bytes32("EVM"), block.chainid, address(s_rmnHome), version), staticConfig)) + ) & ~PREFIX_MASK + ) + ); + } +} + +contract RMNHome_getConfigDigests is RMNHomeTest { + function test_getConfigDigests_success() public { + (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, ZERO_DIGEST); + assertEq(candidateDigest, ZERO_DIGEST); + + Config memory config = _getBaseConfig(); + bytes32 firstDigest = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + + (activeDigest, candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, ZERO_DIGEST); + assertEq(candidateDigest, firstDigest); + + s_rmnHome.promoteCandidateAndRevokeActive(firstDigest, ZERO_DIGEST); + + (activeDigest, candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, firstDigest); + assertEq(candidateDigest, ZERO_DIGEST); + + bytes32 secondDigest = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + + (activeDigest, candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, firstDigest); + assertEq(candidateDigest, secondDigest); + + assertEq(activeDigest, s_rmnHome.getActiveDigest()); + assertEq(candidateDigest, s_rmnHome.getCandidateDigest()); + } +} + +contract RMNHome_setCandidate is RMNHomeTest { + function test_setCandidate_success() public { + Config memory config = _getBaseConfig(); + RMNHome.VersionedConfig memory versionedConfig = RMNHome.VersionedConfig({ + version: 1, + staticConfig: config.staticConfig, + dynamicConfig: config.dynamicConfig, + configDigest: ZERO_DIGEST + }); + + versionedConfig.configDigest = _getConfigDigest(abi.encode(versionedConfig.staticConfig), versionedConfig.version); + + vm.expectEmit(); + emit RMNHome.ConfigSet( + versionedConfig.configDigest, versionedConfig.version, versionedConfig.staticConfig, versionedConfig.dynamicConfig + ); + + s_rmnHome.setCandidate(versionedConfig.staticConfig, versionedConfig.dynamicConfig, ZERO_DIGEST); + + (RMNHome.VersionedConfig memory storedVersionedConfig, bool ok) = s_rmnHome.getConfig(versionedConfig.configDigest); + assertTrue(ok); + assertEq(storedVersionedConfig.version, versionedConfig.version); + RMNHome.StaticConfig memory storedStaticConfig = storedVersionedConfig.staticConfig; + RMNHome.DynamicConfig memory storedDynamicConfig = storedVersionedConfig.dynamicConfig; + + assertEq(storedStaticConfig.nodes.length, versionedConfig.staticConfig.nodes.length); + for (uint256 i = 0; i < storedStaticConfig.nodes.length; i++) { + RMNHome.Node memory storedNode = storedStaticConfig.nodes[i]; + assertEq(storedNode.peerId, versionedConfig.staticConfig.nodes[i].peerId); + assertEq(storedNode.offchainPublicKey, versionedConfig.staticConfig.nodes[i].offchainPublicKey); + } + + assertEq(storedDynamicConfig.sourceChains.length, versionedConfig.dynamicConfig.sourceChains.length); + for (uint256 i = 0; i < storedDynamicConfig.sourceChains.length; i++) { + RMNHome.SourceChain memory storedSourceChain = storedDynamicConfig.sourceChains[i]; + assertEq(storedSourceChain.chainSelector, versionedConfig.dynamicConfig.sourceChains[i].chainSelector); + assertEq(storedSourceChain.minObservers, versionedConfig.dynamicConfig.sourceChains[i].minObservers); + assertEq(storedSourceChain.observerNodesBitmap, versionedConfig.dynamicConfig.sourceChains[i].observerNodesBitmap); + } + assertEq(storedDynamicConfig.offchainConfig, versionedConfig.dynamicConfig.offchainConfig); + assertEq(storedStaticConfig.offchainConfig, versionedConfig.staticConfig.offchainConfig); + } + + function test_setCandidate_ConfigDigestMismatch_reverts() public { + Config memory config = _getBaseConfig(); + + bytes32 digest = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + + vm.expectRevert(abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, digest, ZERO_DIGEST)); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + + vm.expectEmit(); + emit RMNHome.ConfigRevoked(digest); + + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, digest); + } + + function test_setCandidate_OnlyOwner_reverts() public { + Config memory config = _getBaseConfig(); + + vm.startPrank(address(0)); + + vm.expectRevert("Only callable by owner"); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } +} + +contract RMNHome_revokeCandidate is RMNHomeTest { + // Sets two configs + function setUp() public { + Config memory config = _getBaseConfig(); + bytes32 digest = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + s_rmnHome.promoteCandidateAndRevokeActive(digest, ZERO_DIGEST); + + config.dynamicConfig.sourceChains[0].minObservers--; + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_revokeCandidate_success() public { + (bytes32 priorActiveDigest, bytes32 priorCandidateDigest) = s_rmnHome.getConfigDigests(); + + vm.expectEmit(); + emit RMNHome.ConfigRevoked(priorCandidateDigest); + + s_rmnHome.revokeCandidate(priorCandidateDigest); + + (RMNHome.VersionedConfig memory storedVersionedConfig, bool ok) = s_rmnHome.getConfig(priorCandidateDigest); + assertFalse(ok); + // Ensure no old data is returned, even though it's still in storage + assertEq(storedVersionedConfig.version, 0); + assertEq(storedVersionedConfig.staticConfig.nodes.length, 0); + assertEq(storedVersionedConfig.dynamicConfig.sourceChains.length, 0); + + // Asser the active digest is unaffected but the candidate digest is set to zero + (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, priorActiveDigest); + assertEq(candidateDigest, ZERO_DIGEST); + assertTrue(candidateDigest != priorCandidateDigest); + } + + function test_revokeCandidate_ConfigDigestMismatch_reverts() public { + (, bytes32 priorCandidateDigest) = s_rmnHome.getConfigDigests(); + + bytes32 wrongDigest = keccak256("wrong_digest"); + vm.expectRevert(abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, priorCandidateDigest, wrongDigest)); + s_rmnHome.revokeCandidate(wrongDigest); + } + + function test_revokeCandidate_OnlyOwner_reverts() public { + vm.startPrank(address(0)); + + vm.expectRevert("Only callable by owner"); + s_rmnHome.revokeCandidate(keccak256("configDigest")); + } +} + +contract RMNHome_promoteCandidateAndRevokeActive is RMNHomeTest { + function test_promoteCandidateAndRevokeActive_success() public { + Config memory config = _getBaseConfig(); + bytes32 firstConfigToPromote = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + + vm.expectEmit(); + emit RMNHome.ConfigPromoted(firstConfigToPromote); + + s_rmnHome.promoteCandidateAndRevokeActive(firstConfigToPromote, ZERO_DIGEST); + + // Assert the active digest is updated and the candidate digest is set to zero + (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, firstConfigToPromote); + assertEq(candidateDigest, ZERO_DIGEST); + + // Set a new candidate to promote over a non-zero active config. + config.staticConfig.offchainConfig = abi.encode("new_static_config"); + config.dynamicConfig.offchainConfig = abi.encode("new_dynamic_config"); + bytes32 secondConfigToPromote = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + + vm.expectEmit(); + emit RMNHome.ConfigRevoked(firstConfigToPromote); + + vm.expectEmit(); + emit RMNHome.ConfigPromoted(secondConfigToPromote); + + s_rmnHome.promoteCandidateAndRevokeActive(secondConfigToPromote, firstConfigToPromote); + + (RMNHome.VersionedConfig memory activeConfig, RMNHome.VersionedConfig memory candidateConfig) = + s_rmnHome.getAllConfigs(); + assertEq(activeConfig.configDigest, secondConfigToPromote); + assertEq(activeConfig.staticConfig.offchainConfig, config.staticConfig.offchainConfig); + assertEq(activeConfig.dynamicConfig.offchainConfig, config.dynamicConfig.offchainConfig); + + assertEq(candidateConfig.configDigest, ZERO_DIGEST); + } + + function test_promoteCandidateAndRevokeActive_ConfigDigestMismatch_reverts() public { + (bytes32 priorActiveDigest, bytes32 priorCandidateDigest) = s_rmnHome.getConfigDigests(); + bytes32 wrongActiveDigest = keccak256("wrongActiveDigest"); + bytes32 wrongCandidateDigest = keccak256("wrongCandidateDigest"); + + vm.expectRevert( + abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, priorActiveDigest, wrongCandidateDigest) + ); + s_rmnHome.promoteCandidateAndRevokeActive(wrongCandidateDigest, wrongActiveDigest); + + vm.expectRevert(abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, priorActiveDigest, wrongActiveDigest)); + + s_rmnHome.promoteCandidateAndRevokeActive(priorCandidateDigest, wrongActiveDigest); + } + + function test_promoteCandidateAndRevokeActive_OnlyOwner_reverts() public { + vm.startPrank(address(0)); + + vm.expectRevert("Only callable by owner"); + s_rmnHome.promoteCandidateAndRevokeActive(keccak256("toPromote"), keccak256("ToRevoke")); + } +} + +contract RMNHome__validateStaticAndDynamicConfig is RMNHomeTest { + function test_validateStaticAndDynamicConfig_OutOfBoundsNodesLength_reverts() public { + Config memory config = _getBaseConfig(); + config.staticConfig.nodes = new RMNHome.Node[](257); + + vm.expectRevert(RMNHome.OutOfBoundsNodesLength.selector); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_validateStaticAndDynamicConfig_DuplicatePeerId_reverts() public { + Config memory config = _getBaseConfig(); + config.staticConfig.nodes[1].peerId = config.staticConfig.nodes[0].peerId; + + vm.expectRevert(RMNHome.DuplicatePeerId.selector); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_validateStaticAndDynamicConfig_DuplicateOffchainPublicKey_reverts() public { + Config memory config = _getBaseConfig(); + config.staticConfig.nodes[1].offchainPublicKey = config.staticConfig.nodes[0].offchainPublicKey; + + vm.expectRevert(RMNHome.DuplicateOffchainPublicKey.selector); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_validateStaticAndDynamicConfig_DuplicateSourceChain_reverts() public { + Config memory config = _getBaseConfig(); + config.dynamicConfig.sourceChains[1].chainSelector = config.dynamicConfig.sourceChains[0].chainSelector; + + vm.expectRevert(RMNHome.DuplicateSourceChain.selector); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_validateStaticAndDynamicConfig_OutOfBoundsObserverNodeIndex_reverts() public { + Config memory config = _getBaseConfig(); + config.dynamicConfig.sourceChains[0].observerNodesBitmap = 1 << config.staticConfig.nodes.length; + + vm.expectRevert(RMNHome.OutOfBoundsObserverNodeIndex.selector); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_validateStaticAndDynamicConfig_MinObserversTooHigh_reverts() public { + Config memory config = _getBaseConfig(); + config.dynamicConfig.sourceChains[0].minObservers++; + + vm.expectRevert(RMNHome.MinObserversTooHigh.selector); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } +} + +contract RMNHome_setDynamicConfig is RMNHomeTest { + function setUp() public { + Config memory config = _getBaseConfig(); + s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); + } + + function test_setDynamicConfig_success() public { + (bytes32 priorActiveDigest,) = s_rmnHome.getConfigDigests(); + + Config memory config = _getBaseConfig(); + config.dynamicConfig.sourceChains[0].minObservers--; + + (, bytes32 candidateConfigDigest) = s_rmnHome.getConfigDigests(); + + vm.expectEmit(); + emit RMNHome.DynamicConfigSet(candidateConfigDigest, config.dynamicConfig); + + s_rmnHome.setDynamicConfig(config.dynamicConfig, candidateConfigDigest); + + (RMNHome.VersionedConfig memory storedVersionedConfig, bool ok) = s_rmnHome.getConfig(candidateConfigDigest); + assertTrue(ok); + assertEq( + storedVersionedConfig.dynamicConfig.sourceChains[0].minObservers, + config.dynamicConfig.sourceChains[0].minObservers + ); + + // Asser the digests don't change when updating the dynamic config + (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); + assertEq(activeDigest, priorActiveDigest); + assertEq(candidateDigest, candidateConfigDigest); + } + + // Asserts the validation function is being called + function test_setDynamicConfig_MinObserversTooHigh_reverts() public { + Config memory config = _getBaseConfig(); + config.dynamicConfig.sourceChains[0].minObservers++; + + vm.expectRevert(abi.encodeWithSelector(RMNHome.DigestNotFound.selector, ZERO_DIGEST)); + s_rmnHome.setDynamicConfig(config.dynamicConfig, ZERO_DIGEST); + } + + function test_setDynamicConfig_DigestNotFound_reverts() public { + // Zero always reverts + vm.expectRevert(abi.encodeWithSelector(RMNHome.DigestNotFound.selector, ZERO_DIGEST)); + s_rmnHome.setDynamicConfig(_getBaseConfig().dynamicConfig, ZERO_DIGEST); + + // Non-existent digest reverts + bytes32 nonExistentDigest = keccak256("nonExistentDigest"); + vm.expectRevert(abi.encodeWithSelector(RMNHome.DigestNotFound.selector, nonExistentDigest)); + s_rmnHome.setDynamicConfig(_getBaseConfig().dynamicConfig, nonExistentDigest); + } + + function test_setDynamicConfig_OnlyOwner_reverts() public { + Config memory config = _getBaseConfig(); + + vm.startPrank(address(0)); - function setUp() public virtual override { - super.setUp(); - s_rmnHome = new RMNHome(); + vm.expectRevert("Only callable by owner"); + s_rmnHome.setDynamicConfig(config.dynamicConfig, keccak256("configDigest")); } } diff --git a/contracts/src/v0.8/ccip/test/rmn/RMNHomeTest.t.sol b/contracts/src/v0.8/ccip/test/rmn/RMNHomeTest.t.sol deleted file mode 100644 index a971104062..0000000000 --- a/contracts/src/v0.8/ccip/test/rmn/RMNHomeTest.t.sol +++ /dev/null @@ -1,330 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -pragma solidity 0.8.24; - -import {Internal} from "../../libraries/Internal.sol"; -import {RMNHome} from "../../rmn/RMNHome.sol"; -import {Test} from "forge-std/Test.sol"; -import {Vm} from "forge-std/Vm.sol"; - -contract RMNHomeTest is Test { - struct Config { - RMNHome.StaticConfig staticConfig; - RMNHome.DynamicConfig dynamicConfig; - } - - bytes32 internal constant ZERO_DIGEST = bytes32(uint256(0)); - RMNHome public s_rmnHome = new RMNHome(); - - function _getBaseConfig() internal pure returns (Config memory) { - RMNHome.Node[] memory nodes = new RMNHome.Node[](3); - nodes[0] = RMNHome.Node({peerId: keccak256("peerId_0"), offchainPublicKey: keccak256("offchainPublicKey_0")}); - nodes[1] = RMNHome.Node({peerId: keccak256("peerId_1"), offchainPublicKey: keccak256("offchainPublicKey_1")}); - nodes[2] = RMNHome.Node({peerId: keccak256("peerId_2"), offchainPublicKey: keccak256("offchainPublicKey_2")}); - - RMNHome.SourceChain[] memory sourceChains = new RMNHome.SourceChain[](2); - // Observer 0 for source chain 9000 - sourceChains[0] = RMNHome.SourceChain({chainSelector: 9000, minObservers: 1, observerNodesBitmap: 1 << 0}); - // Observers 1 and 2 for source chain 9001 - sourceChains[1] = RMNHome.SourceChain({chainSelector: 9001, minObservers: 2, observerNodesBitmap: 1 << 1 | 1 << 2}); - - return Config({ - staticConfig: RMNHome.StaticConfig({nodes: nodes, offchainConfig: abi.encode("static_config")}), - dynamicConfig: RMNHome.DynamicConfig({sourceChains: sourceChains, offchainConfig: abi.encode("dynamic_config")}) - }); - } - - uint256 private constant PREFIX_MASK = type(uint256).max << (256 - 16); // 0xFFFF00..00 - uint256 private constant PREFIX = 0x000b << (256 - 16); // 0x000b00..00 - - function _getConfigDigest(bytes memory staticConfig, uint32 version) internal view returns (bytes32) { - return bytes32( - (PREFIX & PREFIX_MASK) - | ( - uint256( - keccak256(bytes.concat(abi.encode(bytes32("EVM"), block.chainid, address(s_rmnHome), version), staticConfig)) - ) & ~PREFIX_MASK - ) - ); - } -} - -contract RMNHome_setCandidate is RMNHomeTest { - function test_setCandidate_success() public { - Config memory config = _getBaseConfig(); - RMNHome.VersionedConfig memory versionedConfig = RMNHome.VersionedConfig({ - version: 1, - staticConfig: config.staticConfig, - dynamicConfig: config.dynamicConfig, - configDigest: ZERO_DIGEST - }); - - versionedConfig.configDigest = _getConfigDigest(abi.encode(versionedConfig.staticConfig), versionedConfig.version); - - vm.expectEmit(); - emit RMNHome.ConfigSet( - versionedConfig.configDigest, versionedConfig.version, versionedConfig.staticConfig, versionedConfig.dynamicConfig - ); - - s_rmnHome.setCandidate(versionedConfig.staticConfig, versionedConfig.dynamicConfig, ZERO_DIGEST); - - (RMNHome.VersionedConfig memory storedVersionedConfig, bool ok) = s_rmnHome.getConfig(versionedConfig.configDigest); - assertTrue(ok); - assertEq(storedVersionedConfig.version, versionedConfig.version); - RMNHome.StaticConfig memory storedStaticConfig = storedVersionedConfig.staticConfig; - RMNHome.DynamicConfig memory storedDynamicConfig = storedVersionedConfig.dynamicConfig; - - assertEq(storedStaticConfig.nodes.length, versionedConfig.staticConfig.nodes.length); - for (uint256 i = 0; i < storedStaticConfig.nodes.length; i++) { - RMNHome.Node memory storedNode = storedStaticConfig.nodes[i]; - assertEq(storedNode.peerId, versionedConfig.staticConfig.nodes[i].peerId); - assertEq(storedNode.offchainPublicKey, versionedConfig.staticConfig.nodes[i].offchainPublicKey); - } - - assertEq(storedDynamicConfig.sourceChains.length, versionedConfig.dynamicConfig.sourceChains.length); - for (uint256 i = 0; i < storedDynamicConfig.sourceChains.length; i++) { - RMNHome.SourceChain memory storedSourceChain = storedDynamicConfig.sourceChains[i]; - assertEq(storedSourceChain.chainSelector, versionedConfig.dynamicConfig.sourceChains[i].chainSelector); - assertEq(storedSourceChain.minObservers, versionedConfig.dynamicConfig.sourceChains[i].minObservers); - assertEq(storedSourceChain.observerNodesBitmap, versionedConfig.dynamicConfig.sourceChains[i].observerNodesBitmap); - } - assertEq(storedDynamicConfig.offchainConfig, versionedConfig.dynamicConfig.offchainConfig); - assertEq(storedStaticConfig.offchainConfig, versionedConfig.staticConfig.offchainConfig); - } - - function test_setCandidate_ConfigDigestMismatch_reverts() public { - Config memory config = _getBaseConfig(); - - bytes32 digest = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - - vm.expectRevert(abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, digest, ZERO_DIGEST)); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - - vm.expectEmit(); - emit RMNHome.ConfigRevoked(digest); - - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, digest); - } - - function test_setCandidate_OnlyOwner_reverts() public { - Config memory config = _getBaseConfig(); - - vm.startPrank(address(0)); - - vm.expectRevert("Only callable by owner"); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } -} - -contract RMNHome_revokeCandidate is RMNHomeTest { - // Sets two configs - function setUp() public { - Config memory config = _getBaseConfig(); - bytes32 digest = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - s_rmnHome.promoteCandidateAndRevokeActive(digest, ZERO_DIGEST); - - config.dynamicConfig.sourceChains[0].minObservers--; - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_revokeCandidate_success() public { - (bytes32 priorActiveDigest, bytes32 priorCandidateDigest) = s_rmnHome.getConfigDigests(); - - vm.expectEmit(); - emit RMNHome.ConfigRevoked(priorCandidateDigest); - - s_rmnHome.revokeCandidate(priorCandidateDigest); - - (RMNHome.VersionedConfig memory storedVersionedConfig, bool ok) = s_rmnHome.getConfig(priorCandidateDigest); - assertFalse(ok); - // Ensure no old data is returned, even though it's still in storage - assertEq(storedVersionedConfig.version, 0); - assertEq(storedVersionedConfig.staticConfig.nodes.length, 0); - assertEq(storedVersionedConfig.dynamicConfig.sourceChains.length, 0); - - // Asser the active digest is unaffected but the candidate digest is set to zero - (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); - assertEq(activeDigest, priorActiveDigest); - assertEq(candidateDigest, ZERO_DIGEST); - assertTrue(candidateDigest != priorCandidateDigest); - } - - function test_revokeCandidate_ConfigDigestMismatch_reverts() public { - (, bytes32 priorCandidateDigest) = s_rmnHome.getConfigDigests(); - - bytes32 wrongDigest = keccak256("wrong_digest"); - vm.expectRevert(abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, priorCandidateDigest, wrongDigest)); - s_rmnHome.revokeCandidate(wrongDigest); - } - - function test_revokeCandidate_OnlyOwner_reverts() public { - vm.startPrank(address(0)); - - vm.expectRevert("Only callable by owner"); - s_rmnHome.revokeCandidate(keccak256("configDigest")); - } -} - -contract RMNHome_promoteCandidateAndRevokeActive is RMNHomeTest { - function test_promoteCandidateAndRevokeActive_success() public { - Config memory config = _getBaseConfig(); - bytes32 firstConfigToPromote = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - - vm.expectEmit(); - emit RMNHome.ConfigPromoted(firstConfigToPromote); - - s_rmnHome.promoteCandidateAndRevokeActive(firstConfigToPromote, ZERO_DIGEST); - - // Assert the active digest is updated and the candidate digest is set to zero - (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); - assertEq(activeDigest, firstConfigToPromote); - assertEq(candidateDigest, ZERO_DIGEST); - - bytes32 secondConfigToPromote = s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - - vm.expectEmit(); - emit RMNHome.ConfigRevoked(firstConfigToPromote); - - vm.expectEmit(); - emit RMNHome.ConfigPromoted(secondConfigToPromote); - - s_rmnHome.promoteCandidateAndRevokeActive(secondConfigToPromote, firstConfigToPromote); - - (activeDigest, candidateDigest) = s_rmnHome.getConfigDigests(); - assertEq(activeDigest, secondConfigToPromote); - assertEq(candidateDigest, ZERO_DIGEST); - } - - function test_promoteCandidateAndRevokeActive_ConfigDigestMismatch_reverts() public { - (bytes32 priorActiveDigest, bytes32 priorCandidateDigest) = s_rmnHome.getConfigDigests(); - bytes32 wrongActiveDigest = keccak256("wrongActiveDigest"); - bytes32 wrongCandidateDigest = keccak256("wrongCandidateDigest"); - - vm.expectRevert( - abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, priorActiveDigest, wrongCandidateDigest) - ); - s_rmnHome.promoteCandidateAndRevokeActive(wrongCandidateDigest, wrongActiveDigest); - - vm.expectRevert(abi.encodeWithSelector(RMNHome.ConfigDigestMismatch.selector, priorActiveDigest, wrongActiveDigest)); - - s_rmnHome.promoteCandidateAndRevokeActive(priorCandidateDigest, wrongActiveDigest); - } - - function test_promoteCandidateAndRevokeActive_OnlyOwner_reverts() public { - vm.startPrank(address(0)); - - vm.expectRevert("Only callable by owner"); - s_rmnHome.promoteCandidateAndRevokeActive(keccak256("toPromote"), keccak256("ToRevoke")); - } -} - -contract RMNHome__validateStaticAndDynamicConfig is RMNHomeTest { - function test_validateStaticAndDynamicConfig_OutOfBoundsNodesLength_reverts() public { - Config memory config = _getBaseConfig(); - config.staticConfig.nodes = new RMNHome.Node[](257); - - vm.expectRevert(RMNHome.OutOfBoundsNodesLength.selector); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_validateStaticAndDynamicConfig_DuplicatePeerId_reverts() public { - Config memory config = _getBaseConfig(); - config.staticConfig.nodes[1].peerId = config.staticConfig.nodes[0].peerId; - - vm.expectRevert(RMNHome.DuplicatePeerId.selector); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_validateStaticAndDynamicConfig_DuplicateOffchainPublicKey_reverts() public { - Config memory config = _getBaseConfig(); - config.staticConfig.nodes[1].offchainPublicKey = config.staticConfig.nodes[0].offchainPublicKey; - - vm.expectRevert(RMNHome.DuplicateOffchainPublicKey.selector); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_validateStaticAndDynamicConfig_DuplicateSourceChain_reverts() public { - Config memory config = _getBaseConfig(); - config.dynamicConfig.sourceChains[1].chainSelector = config.dynamicConfig.sourceChains[0].chainSelector; - - vm.expectRevert(RMNHome.DuplicateSourceChain.selector); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_validateStaticAndDynamicConfig_OutOfBoundsObserverNodeIndex_reverts() public { - Config memory config = _getBaseConfig(); - config.dynamicConfig.sourceChains[0].observerNodesBitmap = 1 << config.staticConfig.nodes.length; - - vm.expectRevert(RMNHome.OutOfBoundsObserverNodeIndex.selector); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_validateStaticAndDynamicConfig_MinObserversTooHigh_reverts() public { - Config memory config = _getBaseConfig(); - config.dynamicConfig.sourceChains[0].minObservers++; - - vm.expectRevert(RMNHome.MinObserversTooHigh.selector); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } -} - -contract RMNHome_setDynamicConfig is RMNHomeTest { - function setUp() public { - Config memory config = _getBaseConfig(); - s_rmnHome.setCandidate(config.staticConfig, config.dynamicConfig, ZERO_DIGEST); - } - - function test_setDynamicConfig_success() public { - (bytes32 priorActiveDigest,) = s_rmnHome.getConfigDigests(); - - Config memory config = _getBaseConfig(); - config.dynamicConfig.sourceChains[0].minObservers--; - - (, bytes32 candidateConfigDigest) = s_rmnHome.getConfigDigests(); - - vm.expectEmit(); - emit RMNHome.DynamicConfigSet(candidateConfigDigest, config.dynamicConfig); - - s_rmnHome.setDynamicConfig(config.dynamicConfig, candidateConfigDigest); - - (RMNHome.VersionedConfig memory storedVersionedConfig, bool ok) = s_rmnHome.getConfig(candidateConfigDigest); - assertTrue(ok); - assertEq( - storedVersionedConfig.dynamicConfig.sourceChains[0].minObservers, - config.dynamicConfig.sourceChains[0].minObservers - ); - - // Asser the digests don't change when updating the dynamic config - (bytes32 activeDigest, bytes32 candidateDigest) = s_rmnHome.getConfigDigests(); - assertEq(activeDigest, priorActiveDigest); - assertEq(candidateDigest, candidateConfigDigest); - } - - // Asserts the validation function is being called - function test_setDynamicConfig_MinObserversTooHigh_reverts() public { - Config memory config = _getBaseConfig(); - config.dynamicConfig.sourceChains[0].minObservers++; - - vm.expectRevert(abi.encodeWithSelector(RMNHome.DigestNotFound.selector, ZERO_DIGEST)); - s_rmnHome.setDynamicConfig(config.dynamicConfig, ZERO_DIGEST); - } - - function test_setDynamicConfig_DigestNotFound_reverts() public { - // Zero always reverts - vm.expectRevert(abi.encodeWithSelector(RMNHome.DigestNotFound.selector, ZERO_DIGEST)); - s_rmnHome.setDynamicConfig(_getBaseConfig().dynamicConfig, ZERO_DIGEST); - - // Non-existent digest reverts - bytes32 nonExistentDigest = keccak256("nonExistentDigest"); - vm.expectRevert(abi.encodeWithSelector(RMNHome.DigestNotFound.selector, nonExistentDigest)); - s_rmnHome.setDynamicConfig(_getBaseConfig().dynamicConfig, nonExistentDigest); - } - - function test_setDynamicConfig_OnlyOwner_reverts() public { - Config memory config = _getBaseConfig(); - - vm.startPrank(address(0)); - - vm.expectRevert("Only callable by owner"); - s_rmnHome.setDynamicConfig(config.dynamicConfig, keccak256("configDigest")); - } -}