diff --git a/contracts/foundry.toml b/contracts/foundry.toml index c7c34e49d5..cb07c88de9 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -26,7 +26,7 @@ single_line_statement_blocks = "preserve" solc_version = '0.8.24' src = 'src/v0.8/ccip' test = 'src/v0.8/ccip/test' -optimizer_runs = 1_925 +optimizer_runs = 1_650 evm_version = 'paris' [profile.functions] diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index 6cb20b3a57..1590d6c3ae 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -2,259 +2,259 @@ ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) ARMProxyStandaloneTest:test_Constructor() (gas: 315049) ARMProxyStandaloneTest:test_SetARM() (gas: 16581) ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47874) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36353) ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15446) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26998) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19841) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41523) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15452) AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10531) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17465) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21360) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16508) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18348) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13054) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17471) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21366) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16520) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18354) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13066) AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17522) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30249) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32263) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243690) BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27558) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241578) BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28787) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112349) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243716) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2091438) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2092239) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358041) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 474705) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 441908) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 33848) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 56914) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 56852) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66156) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358893) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 476337) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443036) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 34154) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 57226) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 57164) CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11719) CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8849) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 309722) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 45865) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29690) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370009) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111376) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145446) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 369785) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145513) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790808) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038239) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038270) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 310010) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 46015) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29840) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370477) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111736) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145866) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 370253) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145933) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9663) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790958) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038383) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038420) CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9611) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 15996) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16008) CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184771) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184777) CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 346687) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20340) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20346) CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 270334) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14819) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14825) CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9648) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370293) -CCIPConfig_constructor:test_constructor_Success() (gas: 3363163) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61471) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370299) +CCIPConfig_constructor:test_constructor_Success() (gas: 3333086) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61438) CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 25819) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21913) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21919) CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9649) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087677) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032286) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032320) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290828) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293559) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290461) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291668) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291766) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 344947) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1208593) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290544) -CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292459) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299632) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493084) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087725) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032324) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032358) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290870) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293601) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290497) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291704) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291802) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 345019) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1209247) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290586) +CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292495) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299668) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493120) CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9606) -CommitStore_constructor:test_Constructor_Success() (gas: 3013980) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73477) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28676) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28616) -CommitStore_report:test_InvalidRootRevert() (gas: 27849) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53290) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59092) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53288) -CommitStore_report:test_Paused_Revert() (gas: 21262) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84276) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56258) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 63984) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 116976) -CommitStore_report:test_Unhealthy_Revert() (gas: 44754) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98573) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27632) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11331) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143814) +CommitStore_constructor:test_Constructor_Success() (gas: 2973887) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73567) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28688) +CommitStore_report:test_InvalidInterval_Revert() (gas: 28628) +CommitStore_report:test_InvalidRootRevert() (gas: 27861) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53302) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59122) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53300) +CommitStore_report:test_Paused_Revert() (gas: 21280) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84288) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56270) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 64008) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 117012) +CommitStore_report:test_Unhealthy_Revert() (gas: 44766) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98603) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27650) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11337) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143871) CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37405) CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129131) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11054) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20645) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11053) -CommitStore_verify:test_Blessed_Success() (gas: 96452) -CommitStore_verify:test_NotBlessed_Success() (gas: 61398) -CommitStore_verify:test_Paused_Revert() (gas: 18505) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36797) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200047) -DefensiveExampleTest:test_Recovery() (gas: 424294) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1095501) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37818) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103820) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85333) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36843) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94389) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39813) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86631) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 379129) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 139810) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 793106) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 177251) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66504) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 206862) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 218114) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126703) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 235795) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 244395) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 325770) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 308201) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11060) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20651) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11059) +CommitStore_verify:test_Blessed_Success() (gas: 96485) +CommitStore_verify:test_NotBlessed_Success() (gas: 61422) +CommitStore_verify:test_Paused_Revert() (gas: 18529) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36809) +DefensiveExampleTest:test_HappyPath_Success() (gas: 200052) +DefensiveExampleTest:test_Recovery() (gas: 424299) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1097175) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37854) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104060) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85597) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37068) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94629) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40050) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86871) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 379687) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 140056) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 794492) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 177527) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29249) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66741) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43332) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 207138) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 218390) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 126727) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 236077) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 244677) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 326076) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 308501) EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153548) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5549627) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144282) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21321) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36558) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51775) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 469607) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47830) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153451) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5479225) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144185) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21354) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36591) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51808) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 470171) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47902) EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152518) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103046) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164107) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178568) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42701) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157899) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173184) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247246) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113971) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 403729) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103079) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164230) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178625) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42773) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 158079) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173331) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 237073) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113995) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 404062) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54294) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131317) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131440) EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52249) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 559653) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 490168) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35497) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 540918) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 560385) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 490768) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35530) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 541563) EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64497) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122676) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142850) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427538) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122733) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142907) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427595) EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 273988) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 274264) EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 221922) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47926) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47403) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 309850) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70065) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229454) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276982) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258834) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226442) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130811) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 222198) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47950) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47427) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 310150) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70101) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229526) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 277072) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258912) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226538) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130841) EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185967) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 186015) EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27052) EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45200) EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27471) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 526041) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 341709) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187459) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2256179) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 358922) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143972) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 362061) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482796) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189862) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153716) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 526641) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 342009) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187507) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2256449) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 359222) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143996) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 362361) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482844) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189910) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153740) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59897) EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40162) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40168) EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141938) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16699) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162532) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16711) EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5431520) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35835) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98584) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114231) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114273) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130246) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138686) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129865) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38314) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38497) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25534) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25320) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 83951) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36514) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29078) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107622) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5322415) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35880) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98614) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114321) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114363) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130351) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138791) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38431) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38614) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25540) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25365) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 84002) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36619) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29123) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107667) EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22724) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 225252) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53150) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25559) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57291) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179442) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 177724) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 132585) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3772676) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30244) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 225474) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53180) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25565) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57336) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179712) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 178039) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 132717) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3713189) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30289) EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43342) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109440) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 313095) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112430) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72269) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 711472) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147709) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190616) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121404) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95376) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109557) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 314265) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112547) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72386) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 711856) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147925) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190949) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121743) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95487) EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20568) EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20936) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74027) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 79523) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 229875) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16733) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95283) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 152627) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24113) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113597) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19914) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62539) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74147) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 79673) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 229995) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16778) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95328) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 152747) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24158) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113717) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19959) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62629) EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35195) EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 43011) @@ -263,135 +263,135 @@ EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Su EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 121817) EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15250) EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28164) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21260) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21266) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28187) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38638) EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29440) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32621) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 134884) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143210) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29055) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127424) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133318) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146497) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141072) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297651) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32651) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 135118) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143408) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29085) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127622) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133481) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146695) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141270) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 298116) EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15300) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42377) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21258) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53782) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13470) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16455) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 13994) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61785) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469353) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57276) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42401) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21270) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53830) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13476) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16461) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14000) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61795) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469668) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57291) EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14677) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84528) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60673) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173821) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84675) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60683) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173833) EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 190350) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53617) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53632) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14499) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14283) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 84107) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17375) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83035) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83158) EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272200) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53482) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15722) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99837) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76105) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99859) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144845) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80268) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80455) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95914) EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 27328) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17913) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39969) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26328) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16515) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16429) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16471) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39975) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12342) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135942) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80117) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12615) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11456) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54236) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44880) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135960) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80127) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12621) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11462) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54242) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44886) FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12280) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 86968) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 87004) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12246) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106850) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111200) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111253) -FeeQuoter_constructor:test_Setup_Success() (gas: 5219649) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12252) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106781) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111131) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111184) +FeeQuoter_constructor:test_Setup_Success() (gas: 5178579) FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 68377) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29040) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94441) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29076) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94447) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14650) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20482) FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 68277) FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43584) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43590) FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 66117) FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 78256) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39094) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34730) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27804) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 96739) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39106) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34742) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27816) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 96829) FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20390) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27679) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27635) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40064) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29347) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27691) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27647) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40076) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29359) FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18210) FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 81749) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52218) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52224) FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 238167) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22420) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29646) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22426) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29652) FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100163) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 140577) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21073) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 112282) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 140673) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21079) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 112330) FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22562) FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62255) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2078733) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2078691) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2058810) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2078465) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2078669) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2078481) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2068728) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2068686) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2048805) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2068460) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2068664) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2068476) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 64412) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 64292) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 58855) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2078166) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2068167) FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61692) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116268) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13986) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2076843) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43336) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23306) -FeeQuoter_onReport:test_onReport_Success() (gas: 79834) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26692) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116292) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 14004) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2066844) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43342) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23312) +FeeQuoter_onReport:test_onReport_Success() (gas: 79840) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26704) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17191) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21302) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18399) @@ -399,550 +399,551 @@ FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18291) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18407) FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 18339) -FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18885) +FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18891) FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 16404) -FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26277) +FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26295) FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 27695) -FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25889) -FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23704) +FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25901) +FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23716) FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 17353) FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12114) FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23599) FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 28428) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74260) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74269) FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 144784) FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50523) FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63200) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19938) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19944) FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 88920) FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 50795) FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12296) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10622) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3967790) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10806) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10634) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3980078) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10818) FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6710) FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6484) -FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42769) -FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) -FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) -FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 208472) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135538) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106706) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144163) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214070) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 422174) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268474) -HybridUSDCTokenPoolMigrationTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 110983) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39110) -HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 32949) -HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12606) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 13161) -HybridUSDCTokenPoolMigrationTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160603) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 254780) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 165451) -HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_destChain_Success() (gas: 153525) -HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_homeChain_Success() (gas: 462264) -HybridUSDCTokenPoolTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 208270) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135460) -HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106751) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144151) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214003) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 421969) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268399) -HybridUSDCTokenPoolTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 110982) -HybridUSDCTokenPoolTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160548) -HybridUSDCTokenPoolTests:test_transferLiquidity_Success() (gas: 165371) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3311601) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42781) +FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73330) +FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107927) +FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40112) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 209099) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135804) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 107078) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144568) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214763) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 423554) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268901) +HybridUSDCTokenPoolMigrationTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 111457) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39338) +HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 33151) +HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12651) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 13323) +HybridUSDCTokenPoolMigrationTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160885) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 255833) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 165878) +HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_destChain_Success() (gas: 154182) +HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_homeChain_Success() (gas: 463620) +HybridUSDCTokenPoolTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 208712) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135647) +HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106991) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144457) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214471) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 422833) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268620) +HybridUSDCTokenPoolTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 111336) +HybridUSDCTokenPoolTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160764) +HybridUSDCTokenPoolTests:test_transferLiquidity_Success() (gas: 165649) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10983) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 18010) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3195288) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3191694) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 2982884) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29972) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79880) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59491) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 2979334) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72680) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225332) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11005) LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83192) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11048) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35036) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5460) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3573) MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126540) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34025) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60830) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126552) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63431) MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 44012) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17756) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76030) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 75946) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38436) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53473) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17046) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12361) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050112) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166413) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050118) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166419) MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30404) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47673) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47679) MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15863) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17459) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21354) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14533) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209639) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58270) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17599) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45006) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46166) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76036) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307711) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50358) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17465) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21360) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14539) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209717) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58293) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17605) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45057) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46184) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76162) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307789) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50381) MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073669836) MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19158) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15829) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209483) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60053) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46818) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46824) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 47987) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77293) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77305) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307781) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 52163) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11325) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11331) MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19072) MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10597) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18800) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18806) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 279944) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254495) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204465) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204470) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28709) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43632) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283639) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422264) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511308) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828467) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456913) MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140246) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141720) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807349) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158802) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112296) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254086) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860245) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475215) MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76934) MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79525) MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47128) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25696) MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24195) MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 409147) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1526265) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39894) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32977) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 409189) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1537029) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37922) NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71898) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 260404) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 264546) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 327828) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 299527) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244871) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 232964) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 153309) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168358) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220193) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125157) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71904) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 262138) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 266256) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 331224) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 302071) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 245579) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233648) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 154815) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168463) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220298) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125472) NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107566) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122955) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42965) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64288) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42829) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122961) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42983) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64312) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42847) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66594) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12195) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42416) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84590) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38162) OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17475) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26768) OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155216) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24413) OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47304) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19644) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37719) OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 6056933) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468074) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99238) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12414) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93240) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109971) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13288) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 18022) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15371) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 177419) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 334109) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 277477) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 168556) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 188490) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 156460) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 572587) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10486) -OffRamp_ccipReceive:test_Reverts() (gas: 15770) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64420) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67632) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59886) -OffRamp_commit:test_InvalidRootRevert() (gas: 58921) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6661100) -OffRamp_commit:test_NoConfig_Revert() (gas: 6244915) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112473) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120501) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112494) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 353540) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 164945) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 139934) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 141925) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59208) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 232957) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 121451) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57938) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 206779) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51273) -OffRamp_constructor:test_Constructor_Success() (gas: 6244332) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136075) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103518) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101418) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 138723) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101338) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101376) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17505) -OffRamp_execute:test_LargeBatch_Success() (gas: 3391111) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372353) -OffRamp_execute:test_MultipleReports_Success() (gas: 299779) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 7069102) -OffRamp_execute:test_NoConfig_Revert() (gas: 6293902) -OffRamp_execute:test_NonArray_Revert() (gas: 27787) -OffRamp_execute:test_SingleReport_Success() (gas: 175730) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147970) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 7071845) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17227) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18682) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 247849) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21002) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 208927) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49237) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48725) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 228696) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85260) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 279681) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91512) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28226) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21832) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 499180) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 48620) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33892) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 154020) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28449) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 188116) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198571) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41037) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447967) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 248847) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 193195) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 212816) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 260215) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 141403) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 423165) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59057) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74155) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 599623) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 543529) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33663) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 568482) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 568496) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 473801) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135923) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 165161) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3737630) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 119064) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 88148) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 79036) -OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 78924) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 172960) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 213287) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26909) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 159537) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27468) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 58874) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 532013) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 317521) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2390649) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 164912) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 226245) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 226785) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 778479) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 346205) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40239) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105265) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86476) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37975) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95515) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40961) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 87721) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 164647) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25146) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 64911) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41883) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 81999) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 176661) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 178641) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 189850) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11189) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13793) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46198) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24173) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225140) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 233762) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 310735) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 283386) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 387975) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17746) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66535) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323600) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5983389) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468168) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99296) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12472) +OffRamp_applySourceChainConfigUpdates:test_InvalidOnRampUpdate_Revert() (gas: 204676) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101379) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110796) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13418) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72638) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15462) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 179216) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 337235) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 280603) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 170311) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 190845) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 157648) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 578050) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10576) +OffRamp_ccipReceive:test_Reverts() (gas: 15782) +OffRamp_commit:test_CommitOnRampMismatch_Revert() (gas: 92492) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63748) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67769) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 63936) +OffRamp_commit:test_InvalidRootRevert() (gas: 63009) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6587105) +OffRamp_commit:test_NoConfig_Revert() (gas: 6170887) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112719) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120939) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112740) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 354230) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 163890) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 138880) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 145911) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59492) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 231183) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 124994) +OffRamp_commit:test_Unhealthy_Revert() (gas: 58244) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 205947) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51483) +OffRamp_constructor:test_Constructor_Success() (gas: 6170587) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 135943) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103386) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101280) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 161468) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101200) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101238) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17610) +OffRamp_execute:test_LargeBatch_Success() (gas: 3419182) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 375374) +OffRamp_execute:test_MultipleReports_Success() (gas: 302902) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6996650) +OffRamp_execute:test_NoConfig_Revert() (gas: 6221351) +OffRamp_execute:test_NonArray_Revert() (gas: 27961) +OffRamp_execute:test_SingleReport_Success() (gas: 176939) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 149068) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6999426) +OffRamp_execute:test_ZeroReports_Revert() (gas: 17293) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18874) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 248743) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21206) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 209803) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49525) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 49013) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 218730) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85512) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 280659) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91830) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28730) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 22018) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 503897) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 49358) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 34462) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28977) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 189608) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 200597) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41727) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 449309) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 251345) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 196311) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 215860) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 251303) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 142769) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 426988) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59801) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74893) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 605297) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 548785) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 34181) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 575250) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 575264) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 478001) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 138039) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 167264) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3894518) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 120480) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 89540) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 81676) +OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 80532) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 174130) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 215543) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 27365) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 165597) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27936) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 59666) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 534293) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 321217) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2393253) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 166568) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 228525) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 229065) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 788283) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 350237) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40611) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105733) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86956) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 38380) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95983) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 41378) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 88177) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 165433) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25404) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 65574) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 42279) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 82668) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 177447) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 179427) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 190636) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11201) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13811) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46216) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24191) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 226586) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 235208) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 314371) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 284928) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 388215) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17758) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66553) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323605) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64546) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13254) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94831) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92765) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97791) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92823) -OnRamp_constructor:test_Constructor_Success() (gas: 2827622) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94823) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92757) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97783) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92815) +OnRamp_constructor:test_Constructor_Success() (gas: 2817599) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114939) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145710) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145313) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143538) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145538) OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144917) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140243) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140249) OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28824) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138926) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138938) OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26924) OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74139) OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12951) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37326) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18278) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37338) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18284) OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 184562) OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210880) OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 124838) OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 141462) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3829289) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3769244) OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18714) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110907) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76229) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281171) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 97722) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64203) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 85422) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34972) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 112713) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17009) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110919) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76235) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281240) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 97734) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64215) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 85428) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34978) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 112749) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 17021) OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11420) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13019) OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11377) -OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16409) +OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16421) OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55330) OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97235) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150578) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) -PingPong_plumbing:test_Pausing_Success() (gas: 17780) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 160987) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 180396) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150719) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20286) +PingPong_plumbing:test_Pausing_Success() (gas: 17786) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 161185) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 180603) RMNHome:test() (gas: 186) RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19696) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152287) +RMN_ownerUnbless:test_Unbless_Success() (gas: 74900) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471574) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398222) RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357841) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33058) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262247) RMN_permaBlessing:test_PermaBlessing() (gas: 202691) RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) +RMN_setConfig:test_NonOwner_Revert() (gas: 14725) RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104089) RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130377) RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659495) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212511) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26430) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 33831) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63999) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47634) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61139) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628827) +RMN_voteToBless:test_Curse_Revert() (gas: 473342) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115339) +RMN_voteToBless:test_RootSuccess() (gas: 558469) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97204) RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44706) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98682) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152596) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29676) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27622) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81620) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135512) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1651029) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14055) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 535106) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399724) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144396) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146963) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12660) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187466) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 473034) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370924) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153719) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141103) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165243) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121431) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98367) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145778) RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16012) RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40585) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15792) RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) RateLimiter_consume:test_Refill_Success() (gas: 37354) RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38884) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46777) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38449) RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19655) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129978) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19475) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129797) +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89321) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10652272) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12317) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 113852) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201347) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126206) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 213703) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64181) -Router_ccipSend:test_InvalidMsgValue() (gas: 32008) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 66640) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 169155) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 53922) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 167749) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 238276) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24761) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44736) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 170007) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 240298) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114017) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201533) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126386) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 213904) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64241) +Router_ccipSend:test_InvalidMsgValue() (gas: 32014) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 66706) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 169401) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 53982) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 167995) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 238462) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24767) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44742) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 170253) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 240550) Router_constructor:test_Constructor_Success() (gas: 13070) Router_getArmProxy:test_getArmProxy() (gas: 10561) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44349) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17144) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44415) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17156) Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11316) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11322) Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20261) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 402507) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52437) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11171) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 392489) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 52442) Router_routeMessage:test_AutoExec_Success() (gas: 42738) Router_routeMessage:test_ExecutionEvent_Success() (gas: 158166) Router_routeMessage:test_ManualExec_Success() (gas: 35429) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25140) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44742) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 417040) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25146) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44754) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10992) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55596) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 417712) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51115) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43961) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11356) TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105952) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112578) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107692) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115716) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54509) TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18032) TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6789707) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7022389) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18091) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49402) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5855541) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5887014) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6040093) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3214305) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6699954) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 6912610) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2069936) TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) @@ -952,42 +953,42 @@ TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11397) TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157356) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70564) TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274145) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277116) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289701) TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276856) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253729) TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134143) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17148) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15149) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15665) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13213) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282095) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17127) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134209) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 242858) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 243059) TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16315) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261460) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261662) TokenProxy_constructor:test_Constructor() (gas: 13812) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16845) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) -TokenProxy_getFee:test_GetFee_Success() (gas: 84508) +TokenProxy_getFee:test_GetFee_Success() (gas: 84634) USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35376) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30112) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133148) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477486) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268238) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50724) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98642) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66189) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11345) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9888) \ No newline at end of file diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 6399244605..2bb89e3c33 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -57,13 +57,14 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { error NotACompatiblePool(address notPool); error InvalidDataLength(uint256 expected, uint256 got); error InvalidNewState(uint64 sourceChainSelector, uint64 sequenceNumber, Internal.MessageExecutionState newState); - error InvalidStaticConfig(uint64 sourceChainSelector); error StaleCommitReport(); error InvalidInterval(uint64 sourceChainSelector, uint64 min, uint64 max); error ZeroAddressNotAllowed(); error InvalidMessageDestChainSelector(uint64 messageDestChainSelector); error SourceChainSelectorMismatch(uint64 reportSourceChainSelector, uint64 messageSourceChainSelector); error SignatureVerificationDisabled(); + error CommitOnRampMismatch(bytes reportOnRamp, bytes configOnRamp); + error InvalidOnRampUpdate(uint64 sourceChainSelector); /// @dev Atlas depends on this event, if changing, please notify Atlas. event StaticConfigSet(StaticConfig staticConfig); @@ -140,6 +141,8 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { // STATIC CONFIG string public constant override typeAndVersion = "OffRamp 1.6.0-dev"; + /// @dev Hash of encoded address(0) used for empty address checks + bytes32 internal constant EMPTY_ENCODED_ADDRESS_HASH = keccak256(abi.encode(address(0))); /// @dev ChainSelector of this chain uint64 internal immutable i_chainSelector; /// @dev The RMN verification contract @@ -655,6 +658,10 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { SourceChainConfig storage sourceChainConfig = _getEnabledSourceChainConfig(sourceChainSelector); + if (keccak256(root.onRampAddress) != keccak256(sourceChainConfig.onRamp)) { + revert CommitOnRampMismatch(root.onRampAddress, sourceChainConfig.onRamp); + } + if (sourceChainConfig.minSeqNr != root.minSeqNr || root.minSeqNr > root.maxSeqNr) { revert InvalidInterval(root.sourceChainSelector, root.minSeqNr, root.maxSeqNr); } @@ -775,24 +782,27 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { } SourceChainConfig storage currentConfig = s_sourceChainConfigs[sourceChainSelector]; - bytes memory currentOnRamp = currentConfig.onRamp; bytes memory newOnRamp = sourceConfigUpdate.onRamp; - // OnRamp can never be zero - if it is, then the source chain has been added for the first time - if (currentOnRamp.length == 0) { - if (newOnRamp.length == 0) { - revert ZeroAddressNotAllowed(); - } - - currentConfig.onRamp = newOnRamp; + if (currentConfig.onRamp.length == 0) { currentConfig.minSeqNr = 1; emit SourceChainSelectorAdded(sourceChainSelector); - } else if (keccak256(currentOnRamp) != keccak256(newOnRamp)) { - revert InvalidStaticConfig(sourceChainSelector); + } else if (currentConfig.minSeqNr != 1) { + // OnRamp updates should only happens due to a misconfiguration + // If an OnRamp is misconfigured not reports should have been committed and no messages should have been executed + // This is enforced byt the onRamp address check in the commit function + revert InvalidOnRampUpdate(sourceChainSelector); } + // OnRamp can never be zero - if it is, then the source chain has been added for the first time + if (newOnRamp.length == 0 || keccak256(newOnRamp) == EMPTY_ENCODED_ADDRESS_HASH) { + revert ZeroAddressNotAllowed(); + } + + currentConfig.onRamp = newOnRamp; currentConfig.isEnabled = sourceConfigUpdate.isEnabled; currentConfig.router = sourceConfigUpdate.router; + emit SourceChainConfigSet(sourceChainSelector, currentConfig); } } diff --git a/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol b/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol index 21643a5df6..82531c3148 100644 --- a/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol +++ b/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol @@ -162,7 +162,7 @@ contract MultiRampsE2E is OnRampSetup, OffRampSetup { }); roots[1] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR + 1, - onRampAddress: abi.encode(address(s_onRamp)), + onRampAddress: abi.encode(address(s_onRamp2)), minSeqNr: messages2[0].header.sequenceNumber, maxSeqNr: messages2[0].header.sequenceNumber, merkleRoot: merkleRoots[1] diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index 8e41f88f91..b5fff3e9bd 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -814,24 +814,6 @@ contract OffRamp_executeSingleReport is OffRampSetup { s_offRamp.executeSingleReport(executionReport, new OffRamp.GasLimitOverride[](0)); } - function test_MismatchingOnRampRoot_Revert() public { - s_offRamp.setVerifyOverrideResult(SOURCE_CHAIN_SELECTOR_1, 0); - - Internal.Any2EVMRampMessage[] memory messages = - _generateSingleBasicMessage(SOURCE_CHAIN_SELECTOR_1, ON_RAMP_ADDRESS_1); - - OffRamp.CommitReport memory commitReport = _constructCommitReport( - // Root against mismatching on ramp - Internal._hash(messages[0], ON_RAMP_ADDRESS_3) - ); - _commit(commitReport, s_latestSequenceNumber); - - Internal.ExecutionReportSingleChain memory executionReport = - _generateReportFromMessages(SOURCE_CHAIN_SELECTOR_1, messages); - vm.expectRevert(abi.encodeWithSelector(OffRamp.RootNotCommitted.selector, SOURCE_CHAIN_SELECTOR_1)); - s_offRamp.executeSingleReport(executionReport, new OffRamp.GasLimitOverride[](0)); - } - function test_UnhealthySingleChainCurse_Revert() public { _setMockRMNChainCurse(SOURCE_CHAIN_SELECTOR_1, true); vm.expectEmit(); @@ -3187,6 +3169,27 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { ); } + function test_ReplaceExistingChainOnRamp_Success() public { + OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](1); + sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({ + router: s_destRouter, + sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, + onRamp: ON_RAMP_ADDRESS_1, + isEnabled: true + }); + + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + + sourceChainConfigs[0].onRamp = ON_RAMP_ADDRESS_2; + + vm.expectEmit(); + emit OffRamp.SourceChainConfigSet( + SOURCE_CHAIN_SELECTOR_1, + OffRamp.SourceChainConfig({router: s_destRouter, isEnabled: true, minSeqNr: 1, onRamp: ON_RAMP_ADDRESS_2}) + ); + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + } + // Reverts function test_ZeroOnRampAddress_Revert() public { @@ -3200,6 +3203,10 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { vm.expectRevert(OffRamp.ZeroAddressNotAllowed.selector); s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + + sourceChainConfigs[0].onRamp = abi.encode(address(0)); + vm.expectRevert(OffRamp.ZeroAddressNotAllowed.selector); + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); } function test_RouterAddress_Revert() public { @@ -3228,7 +3235,7 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); } - function test_ReplaceExistingChainOnRamp_Revert() public { + function test_InvalidOnRampUpdate_Revert() public { OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](1); sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({ router: s_destRouter, @@ -3239,9 +3246,30 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); + roots[0] = Internal.MerkleRoot({ + sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, + onRampAddress: ON_RAMP_ADDRESS_1, + minSeqNr: 1, + maxSeqNr: 2, + merkleRoot: "test #2" + }); + + _commit( + OffRamp.CommitReport({ + priceUpdates: _getSingleTokenPriceUpdateStruct(s_sourceFeeToken, 4e18), + merkleRoots: roots, + rmnSignatures: s_rmnSignatures + }), + s_latestSequenceNumber + ); + + vm.stopPrank(); + vm.startPrank(OWNER); + sourceChainConfigs[0].onRamp = ON_RAMP_ADDRESS_2; - vm.expectRevert(abi.encodeWithSelector(OffRamp.InvalidStaticConfig.selector, SOURCE_CHAIN_SELECTOR_1)); + vm.expectRevert(abi.encodeWithSelector(OffRamp.InvalidOnRampUpdate.selector, SOURCE_CHAIN_SELECTOR_1)); s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); } } @@ -3278,7 +3306,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: max1, merkleRoot: root @@ -3307,7 +3335,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: maxSeq, merkleRoot: "stale report 1" @@ -3458,7 +3486,7 @@ contract OffRamp_commit is OffRampSetup { roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: maxSeq, merkleRoot: "stale report" @@ -3564,7 +3592,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: 4, merkleRoot: bytes32(0) @@ -3580,7 +3608,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 2, maxSeqNr: 2, merkleRoot: bytes32(0) @@ -3601,7 +3629,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: 0, merkleRoot: bytes32(0) @@ -3666,7 +3694,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: 2, merkleRoot: "Only a single root" @@ -3684,11 +3712,20 @@ contract OffRamp_commit is OffRampSetup { _commit(commitReport, ++s_latestSequenceNumber); } + function test_CommitOnRampMismatch_Revert() public { + OffRamp.CommitReport memory commitReport = _constructCommitReport(); + + commitReport.merkleRoots[0].onRampAddress = ON_RAMP_ADDRESS_2; + + vm.expectRevert(abi.encodeWithSelector(OffRamp.CommitOnRampMismatch.selector, ON_RAMP_ADDRESS_2, ON_RAMP_ADDRESS_1)); + _commit(commitReport, s_latestSequenceNumber); + } + function _constructCommitReport() internal view returns (OffRamp.CommitReport memory) { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: s_maxInterval, merkleRoot: "test #2" diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index d2cfd96e75..1cae9daaa3 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -154,8 +154,8 @@ type OffRampStaticConfig struct { } var OffRampMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b50604051620068603803806200686083398101604081905262000035916200085e565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000be5565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620006125760008282815181106200039157620003916200099b565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604081206001810180549192916200042490620009b1565b80601f01602080910402602001604051908101604052809291908181526020018280546200045290620009b1565b8015620004a35780601f106200047757610100808354040283529160200191620004a3565b820191906000526020600020905b8154815290600101906020018083116200048557829003601f168201915b5050505050905060008460600151905081516000036200054a578051600003620004e0576040516342bcdf7f60e11b815260040160405180910390fd5b60018301620004f0828262000a42565b508254600160a81b600160e81b031916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a162000585565b8080519060200120828051906020012014620005855760405163c39a620560e01b81526001600160401b038516600482015260240162000083565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005f990869062000b0e565b60405180910390a2505050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562000651576200065162000616565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000682576200068262000616565b604052919050565b80516001600160401b0381168114620006a257600080fd5b919050565b6001600160a01b0381168114620006bd57600080fd5b50565b6000601f83601f840112620006d457600080fd5b825160206001600160401b0380831115620006f357620006f362000616565b8260051b6200070483820162000657565b93845286810183019383810190898611156200071f57600080fd5b84890192505b8583101562000851578251848111156200073f5760008081fd5b89016080601f19828d038101821315620007595760008081fd5b620007636200062c565b888401516200077281620006a7565b81526040620007838582016200068a565b8a83015260608086015180151581146200079d5760008081fd5b83830152938501519389851115620007b55760008081fd5b84860195508f603f870112620007cd57600094508485fd5b8a860151945089851115620007e657620007e662000616565b620007f78b858f8801160162000657565b93508484528f828688010111156200080f5760008081fd5b60005b858110156200082f578681018301518582018d01528b0162000812565b5060009484018b01949094525091820152835250918401919084019062000725565b9998505050505050505050565b60008060008385036101008112156200087657600080fd5b60808112156200088557600080fd5b6200088f6200062c565b6200089a866200068a565b81526020860151620008ac81620006a7565b60208201526040860151620008c181620006a7565b60408201526060860151620008d681620006a7565b606082810191909152909450607f1982011215620008f357600080fd5b50604051606081016001600160401b0380821183831017156200091a576200091a62000616565b81604052608087015191506200093082620006a7565b90825260a08601519063ffffffff821682146200094c57600080fd5b81602084015260c087015191506200096482620006a7565b6040830182905260e0870151929450808311156200098157600080fd5b50506200099186828701620006c0565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009c657607f821691505b602082108103620009e757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a3d576000816000526020600020601f850160051c8101602086101562000a185750805b601f850160051c820191505b8181101562000a395782815560010162000a24565b5050505b505050565b81516001600160401b0381111562000a5e5762000a5e62000616565b62000a768162000a6f8454620009b1565b84620009ed565b602080601f83116001811462000aae576000841562000a955750858301515b600019600386901b1c1916600185901b17855562000a39565b600085815260208120601f198616915b8281101562000adf5788860151825594840194600190910190840162000abe565b508582101562000afe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b6381620009b1565b8060a089015260c0600183166000811462000b87576001811462000ba45762000bd6565b60ff19841660c08b015260c083151560051b8b0101945062000bd6565b85600052602060002060005b8481101562000bcd5781548c820185015290880190890162000bb0565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c0562000c5b6000396000818161022c015261292c0152600081816101fd0152612bfe0152600081816101ce01528181610552015281816106ff015261237001526000818161019f01526125af015260008181611d980152611dcb0152615c056000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bc5565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d33565b610169610309366004613de3565b610516565b61016961031c366004613e95565b6109c5565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ee8565b610a2e565b6040516102a99190613f45565b61016961036a366004613f70565b610a83565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610a94565b610169610151366004613fc4565b6000546040516001600160a01b0390911681526020016102a9565b61044561044036600461400f565b610b45565b6040516102a9919061406f565b6104886104603660046140e4565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a4366004614380565b610ca3565b6101696104b7366004614708565b610f83565b6104cf6104ca36600461494f565b61122a565b6040516102a9919061496a565b6101696104ea3660046149b7565b611336565b6101696104fd366004614a3c565b611347565b61050a611389565b610513816113e5565b50565b600061052487890189614d91565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fb9565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150ed565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610906576000826020015182815181106106c0576106c061501b565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190615100565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a38261168b565b604084015181549192506001600160401b03908116600160a81b909204161415806107e7575082606001516001600160401b031683604001516001600160401b0316115b1561082c57825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061084f5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108a75783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b60608401516108b7906001615133565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261093e92909161515a565b60405180910390a16109ba60008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116d7915050565b505050505050505050565b610a056109d48284018461517f565b60408051600080825260208201909252906109ff565b60608152602001906001900390816109ea5790505b506119d0565b604080516000808252602082019092529050610a286001858585858660006116d7565b50505050565b6000610a3c600160046151b3565b6002610a496080856151dc565b6001600160401b0316610a5c9190615202565b610a668585611a92565b901c166003811115610a7a57610a7a613f1b565b90505b92915050565b610a8b611389565b61051381611ad7565b6001546001600160a01b03163314610aee5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b886040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c3157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c13575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610c9357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c75575b5050505050815250509050919050565b333014610cc3576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d00565b6040805180820190915260008082526020820152815260200190600190039081610cd95790505b5060a08701515190915015610d3657610d338660a001518760200151886060015189600001516020015189898989611bb6565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610d71929101613d33565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e4c576040516308d450a160e01b81526001600160a01b038216906308d450a190610dd29085906004016152ba565b600060405180830381600087803b158015610dec57600080fd5b505af1925050508015610dfd575060015b610e4c573d808015610e2b576040519150601f19603f3d011682016040523d82523d6000602084013e610e30565b606091505b50806040516309c2532560e01b815260040161078f9190613d33565b604088015151158015610e6157506080880151155b80610e78575060608801516001600160a01b03163b155b80610e9f57506060880151610e9d906001600160a01b03166385572ffb60e01b611d79565b155b15610eac57505050610f7c565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f0a92899261138892916004016152cd565b6000604051808303816000875af1158015610f29573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f519190810190615309565b509150915081610f7657806040516302a35ba360e21b815260040161078f9190613d33565b50505050505b5050505050565b610f8b611d95565b815181518114610fae576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561121a576000848281518110610fcd57610fcd61501b565b60200260200101519050600081602001515190506000858481518110610ff557610ff561501b565b6020026020010151905080518214611020576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561120b57600082828151811061103f5761103f61501b565b60200260200101516000015190506000856020015183815181106110655761106561501b565b60200260200101519050816000146110b95780608001518210156110b9578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b8383815181106110cb576110cb61501b565b602002602001015160200151518160a00151511461111857805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a00151518110156111fd57600085858151811061113c5761113c61501b565b60200260200101516020015182815181106111595761115961501b565b602002602001015163ffffffff169050806000146111f45760008360a0015183815181106111895761118961501b565b6020026020010151608001518060200190518101906111a8919061539e565b90508063ffffffff168210156111f2578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b5060010161111b565b505050806001019050611023565b50505050806001019050610fb1565b5061122583836119d0565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916112b6906153bb565b80601f01602080910402602001604051908101604052809291908181526020018280546112e2906153bb565b8015610c935780601f1061130457610100808354040283529160200191610c93565b820191906000526020600020905b81548152906001019060200180831161131257505050919092525091949350505050565b61133e611389565b61051381611dfd565b61134f611389565b60005b81518110156113855761137d8282815181106113705761137061501b565b6020026020010151611ea6565b600101611352565b5050565b6000546001600160a01b031633146113e35760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113855760008282815181106114055761140561501b565b60200260200101519050600081602001519050806001600160401b03166000036114425760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b031661146a576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600660205260408120600181018054919291611494906153bb565b80601f01602080910402602001604051908101604052809291908181526020018280546114c0906153bb565b801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b5050505050905060008460600151905081516000036115b0578051600003611548576040516342bcdf7f60e11b815260040160405180910390fd5b600183016115568282615445565b50825467ffffffffffffffff60a81b1916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a16115e9565b80805190602001208280519060200120146115e95760405163c39a620560e01b81526001600160401b038516600482015260240161078f565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90611673908690615504565b60405180910390a250505050508060010190506113e8565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610a7d5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117368760a46155d1565b905082606001511561177e57845161174f906020615202565b865161175c906020615202565b6117679060a06155d1565b61177191906155d1565b61177b90826155d1565b90505b3681146117a757604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117d65781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117de611d95565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561182c5761182c613f1b565b600281111561183d5761183d613f1b565b905250905060028160200151600281111561185a5761185a613f1b565b1480156118ae5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff16815481106118965761189661501b565b6000918252602090912001546001600160a01b031633145b6118cb57604051631b41e11d60e31b815260040160405180910390fd5b5081606001511561197b5760208201516118e69060016155e4565b60ff16855114611909576040516371253a2560e01b815260040160405180910390fd5b835185511461192b5760405163a75d88af60e01b815260040160405180910390fd5b6000878760405161193d9291906155fd565b604051908190038120611954918b9060200161560d565b6040516020818303038152906040528051906020012090506119798a82888888612185565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119f15760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a34565b604080518082019091526000815260606020820152815260200190600190039081611a0c5790505b50905060005b8451811015610f7c57611a8a858281518110611a5857611a5861501b565b602002602001015184611a8457858381518110611a7757611a7761501b565b6020026020010151612342565b83612342565b600101611a3a565b6001600160401b038216600090815260076020526040812081611ab6608085615621565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611aff576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bd157611bd16139e5565b604051908082528060200260200182016040528015611c1657816020015b6040805180820190915260008082526020820152815260200190600190039081611bef5790505b509050811560005b8a51811015611d6b5781611cc857848482818110611c3e57611c3e61501b565b9050602002016020810190611c539190615647565b63ffffffff1615611cc857848482818110611c7057611c7061501b565b9050602002016020810190611c859190615647565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611cb857611cb861501b565b6020026020010151608001819052505b611d468b8281518110611cdd57611cdd61501b565b60200260200101518b8b8b8b8b87818110611cfa57611cfa61501b565b9050602002810190611d0c9190615664565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bb692505050565b838281518110611d5857611d5861501b565b6020908102919091010152600101611c1e565b505098975050505050505050565b6000611d8483612eb4565b8015610a7a5750610a7a8383612eff565b467f0000000000000000000000000000000000000000000000000000000000000000146113e357604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e555760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ed1576000604051631b3fab5160e11b815260040161078f91906156aa565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f22576060840151600182018054911515620100000262ff000019909216919091179055611f5e565b6060840151600182015460ff6201000090910416151590151514611f5e576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f8a576001604051631b3fab5160e11b815260040161078f91906156aa565b611ff08484600301805480602002602001604051908101604052809291908181526020018280548015611fe657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fc8575b5050505050612fa1565b8460600151156120fa5761205e8484600201805480602002602001604051908101604052809291908181526020018280548015611fe6576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fc8575050505050612fa1565b60808501518051610100101561208a576002604051631b3fab5160e11b815260040161078f91906156aa565b604086015161209a9060036156c4565b60ff168151116120c0576003604051631b3fab5160e11b815260040161078f91906156aa565b805160018401805461ff00191661010060ff8416021790556120eb906002860190602084019061396b565b506120f88582600161300a565b505b6121068482600261300a565b805161211b906003850190602084019061396b565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936121749389939260028a019291906156e0565b60405180910390a1610f7c84613165565b8251600090815b818110156123385760006001888684602081106121ab576121ab61501b565b6121b891901a601b6155e4565b8985815181106121ca576121ca61501b565b60200260200101518986815181106121e4576121e461501b565b602002602001015160405160008152602001604052604051612222949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612244573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b038516835281528582208587019096528554808416865293975090955092939284019161010090041660028111156122a5576122a5613f1b565b60028111156122b6576122b6613f1b565b90525090506001816020015160028111156122d3576122d3613f1b565b146122f157604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561231b57604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b85179450505080600101905061218c565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e39190615100565b1561245457801561241257604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061245f8361168b565b600101805461246d906153bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612499906153bb565b80156124e65780601f106124bb576101008083540402835291602001916124e6565b820191906000526020600020905b8154815290600101906020018083116124c957829003601f168201915b505050602088015151929350505060008190036125155760405162bf199760e01b815260040160405180910390fd5b856040015151811461253a576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b03811115612554576125546139e5565b60405190808252806020026020018201604052801561257d578160200160208202803683370190505b50905060005b8281101561269e576000886020015182815181106125a3576125a361501b565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b03161461261a5780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461266e57805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61267881866131bc565b83838151811061268a5761268a61501b565b602090810291909101015250600101612583565b5060006126b586838a606001518b608001516132de565b9050806000036126e357604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b838110156109ba5760005a905060008a60200151838151811061270b5761270b61501b565b6020026020010151905060006127298a836000015160600151610a2e565b9050600081600381111561273f5761273f613f1b565b148061275c5750600381600381111561275a5761275a613f1b565b145b6127b257815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612bae565b60608915612891578b85815181106127cc576127cc61501b565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127fa88426151b3565b119050808061281a5750600383600381111561281857612818613f1b565b145b612842576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c86815181106128545761285461501b565b60200260200101516000015160001461288b578c86815181106128795761287961501b565b60209081029190910101515160808501525b506128fd565b60008260038111156128a5576128a5613f1b565b146128fd57825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612bae565b8251608001516001600160401b0316156129d657600082600381111561292557612925613f1b565b036129d6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161298693929190615792565b6020604051808303816000875af11580156129a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c99190615100565b6129d65750505050612bae565b60008d6040015186815181106129ee576129ee61501b565b6020026020010151905080518460a001515114612a3857835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a4c8c856000015160600151600161331b565b600080612a5a8684866133c0565b91509150612a718e8760000151606001518461331b565b8c15612ac8576003826003811115612a8b57612a8b613f1b565b03612ac8576000856003811115612aa457612aa4613f1b565b14612ac857855151604051632b11b8d960e01b815261078f919083906004016157be565b6002826003811115612adc57612adc613f1b565b14612b21576003826003811115612af557612af5613f1b565b14612b21578d866000015160600151836040516349362d1f60e11b815260040161078f939291906157d7565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b7957612b7961501b565b602002602001015186865a612b8e908f6151b3565b604051612b9e94939291906157fc565b60405180910390a4505050505050505b6001016126e6565b60408051808201909152600080825260208201526000612bd98760200151613474565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c699190615833565b90506001600160a01b0381161580612c985750612c966001600160a01b03821663aff2afbf60e01b611d79565b155b15612cc15760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612cec88858c60800151806020019051810190612ce1919061539e565b63ffffffff166134e8565b915091506000806000612d9f6040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d699190615850565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135cb565b92509250925082612dc5578160405163e1cd550960e01b815260040161078f9190613d33565b8151602014612df4578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612e0a919061591c565b9050866001600160a01b03168c6001600160a01b031614612e86576000612e3b8d8a612e36868a6151b3565b6134e8565b50905086811080612e55575081612e5288836151b3565b14155b15612e845760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612ec7826301ffc9a760e01b612eff565b8015610a7d5750612ef8827fffffffff00000000000000000000000000000000000000000000000000000000612eff565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f8a575060208210155b8015612f965750600081115b979650505050505050565b60005b81518110156112255760ff831660009081526003602052604081208351909190849084908110612fd657612fd661501b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612fa4565b60005b8251811015610a2857600083828151811061302a5761302a61501b565b602002602001015190506000600281111561304757613047613f1b565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561308657613086613f1b565b146130a7576004604051631b3fab5160e11b815260040161078f91906156aa565b6001600160a01b0381166130ce5760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130f4576130f4613f1b565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561315157613151613f1b565b02179055509050505080600101905061300d565b60ff81166105135760ff808216600090815260026020526040902060010154620100009004166131a857604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b815160208082015160409283015192516000938493613202937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615935565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761324b9794969395929491939101615967565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016132829190615a6b565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132ec8585856136a5565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b6000600261332a6080856151dc565b6001600160401b031661333d9190615202565b9050600061334b8585611a92565b90508161335a600160046151b3565b901b19168183600381111561337157613371613f1b565b6001600160401b03871660009081526007602052604081209190921b9290921791829161339f608088615621565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133ed90889088908890600401615b02565b600060405180830381600087803b15801561340757600080fd5b505af1925050508015613418575060015b613457573d808015613446576040519150601f19603f3d011682016040523d82523d6000602084013e61344b565b606091505b5060039250905061346c565b50506040805160208101909152600081526002905b935093915050565b6000815160201461349a578160405163046b337b60e51b815260040161078f9190613d33565b6000828060200190518101906134b0919061591c565b90506001600160a01b038111806134c8575061040081105b15610a7d578260405163046b337b60e51b815260040161078f9190613d33565b60008060008060006135498860405160240161351391906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135cb565b9250925092508261356f578160405163e1cd550960e01b815260040161078f9190613d33565b602082511461359e578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b818060200190518101906135b2919061591c565b6135bc82886151b3565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135ed576135ed6139e5565b6040519080825280601f01601f191660200182016040528015613617576020820181803683370190505b509150863b6136315763030ed58f60e21b60005260046000fd5b5a8581101561364b57632be8ca8b60e21b60005260046000fd5b859003604081048103871061366b576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d8481111561368e5750835b808352806000602085013e50955095509592505050565b82518251600091908183036136cd57604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136e157506101018111155b6136fe576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613728576040516309bde33960e01b815260040160405180910390fd5b8060000361375557866000815181106137435761374361501b565b60200260200101519350505050613923565b6000816001600160401b0381111561376f5761376f6139e5565b604051908082528060200260200182016040528015613798578160200160208202803683370190505b50905060008080805b858110156138c25760006001821b8b8116036137fc57888510156137e5578c5160018601958e9181106137d6576137d661501b565b6020026020010151905061381e565b85516001850194879181106137d6576137d661501b565b8b5160018401938d9181106138135761381361501b565b602002602001015190505b60008986101561384e578d5160018701968f91811061383f5761383f61501b565b60200260200101519050613870565b86516001860195889181106138655761386561501b565b602002602001015190505b82851115613891576040516309bde33960e01b815260040160405180910390fd5b61389b828261392a565b8784815181106138ad576138ad61501b565b602090810291909101015250506001016137a1565b5060018503821480156138d457508683145b80156138df57508581145b6138fc576040516309bde33960e01b815260040160405180910390fd5b8360018603815181106139115761391161501b565b60200260200101519750505050505050505b9392505050565b60008183106139425761393d8284613948565b610a7a565b610a7a83835b6040805160016020820152908101839052606081018290526000906080016132c0565b8280548282559060005260206000209081019282156139c0579160200282015b828111156139c057825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061398b565b506139cc9291506139d0565b5090565b5b808211156139cc57600081556001016139d1565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a1d57613a1d6139e5565b60405290565b604051606081016001600160401b0381118282101715613a1d57613a1d6139e5565b60405160a081016001600160401b0381118282101715613a1d57613a1d6139e5565b60405160c081016001600160401b0381118282101715613a1d57613a1d6139e5565b604080519081016001600160401b0381118282101715613a1d57613a1d6139e5565b604051601f8201601f191681016001600160401b0381118282101715613ad357613ad36139e5565b604052919050565b60006001600160401b03821115613af457613af46139e5565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b2a57600080fd5b919050565b801515811461051357600080fd5b8035613b2a81613b2f565b60006001600160401b03821115613b6157613b616139e5565b50601f01601f191660200190565b600082601f830112613b8057600080fd5b8135613b93613b8e82613b48565b613aab565b818152846020838601011115613ba857600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bd857600080fd5b82356001600160401b0380821115613bef57600080fd5b818501915085601f830112613c0357600080fd5b8135613c11613b8e82613adb565b81815260059190911b83018401908481019088831115613c3057600080fd5b8585015b83811015613cd657803585811115613c4c5760008081fd5b86016080818c03601f1901811315613c645760008081fd5b613c6c6139fb565b89830135613c7981613afe565b81526040613c88848201613b13565b8b830152606080850135613c9b81613b2f565b83830152928401359289841115613cb457600091508182fd5b613cc28f8d86880101613b6f565b908301525085525050918601918601613c34565b5098975050505050505050565b60005b83811015613cfe578181015183820152602001613ce6565b50506000910152565b60008151808452613d1f816020860160208601613ce3565b601f01601f19169290920160200192915050565b602081526000610a7a6020830184613d07565b8060608101831015610a7d57600080fd5b60008083601f840112613d6957600080fd5b5081356001600160401b03811115613d8057600080fd5b602083019150836020828501011115613d9857600080fd5b9250929050565b60008083601f840112613db157600080fd5b5081356001600160401b03811115613dc857600080fd5b6020830191508360208260051b8501011115613d9857600080fd5b60008060008060008060008060e0898b031215613dff57600080fd5b613e098a8a613d46565b975060608901356001600160401b0380821115613e2557600080fd5b613e318c838d01613d57565b909950975060808b0135915080821115613e4a57600080fd5b613e568c838d01613d9f565b909750955060a08b0135915080821115613e6f57600080fd5b50613e7c8b828c01613d9f565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613eaa57600080fd5b613eb48585613d46565b925060608401356001600160401b03811115613ecf57600080fd5b613edb86828701613d57565b9497909650939450505050565b60008060408385031215613efb57600080fd5b613f0483613b13565b9150613f1260208401613b13565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f4157613f41613f1b565b9052565b60208101610a7d8284613f31565b8035613b2a81613afe565b63ffffffff8116811461051357600080fd5b600060608284031215613f8257600080fd5b613f8a613a23565b8235613f9581613afe565b81526020830135613fa581613f5e565b60208201526040830135613fb881613afe565b60408201529392505050565b600060208284031215613fd657600080fd5b81356001600160401b03811115613fec57600080fd5b820160a0818503121561392357600080fd5b803560ff81168114613b2a57600080fd5b60006020828403121561402157600080fd5b610a7a82613ffe565b60008151808452602080850194506020840160005b838110156140645781516001600160a01b03168752958201959082019060010161403f565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140be60e084018261402a565b90506040840151601f198483030160c08501526140db828261402a565b95945050505050565b600080604083850312156140f757600080fd5b61410083613b13565b946020939093013593505050565b600060a0828403121561412057600080fd5b614128613a45565b90508135815261413a60208301613b13565b602082015261414b60408301613b13565b604082015261415c60608301613b13565b606082015261416d60808301613b13565b608082015292915050565b600082601f83011261418957600080fd5b81356020614199613b8e83613adb565b82815260059290921b840181019181810190868411156141b857600080fd5b8286015b848110156142b25780356001600160401b03808211156141dc5760008081fd5b9088019060a0828b03601f19018113156141f65760008081fd5b6141fe613a45565b87840135838111156142105760008081fd5b61421e8d8a83880101613b6f565b825250604080850135848111156142355760008081fd5b6142438e8b83890101613b6f565b8a840152506060808601358581111561425c5760008081fd5b61426a8f8c838a0101613b6f565b838501525060809150818601358184015250828501359250838311156142905760008081fd5b61429e8d8a85880101613b6f565b9082015286525050509183019183016141bc565b509695505050505050565b600061014082840312156142d057600080fd5b6142d8613a67565b90506142e4838361410e565b815260a08201356001600160401b038082111561430057600080fd5b61430c85838601613b6f565b602084015260c084013591508082111561432557600080fd5b61433185838601613b6f565b604084015261434260e08501613f53565b6060840152610100840135608084015261012084013591508082111561436757600080fd5b5061437484828501614178565b60a08301525092915050565b60008060008060006060868803121561439857600080fd5b85356001600160401b03808211156143af57600080fd5b6143bb89838a016142bd565b965060208801359150808211156143d157600080fd5b6143dd89838a01613d9f565b909650945060408801359150808211156143f657600080fd5b5061440388828901613d9f565b969995985093965092949392505050565b600082601f83011261442557600080fd5b81356020614435613b8e83613adb565b82815260059290921b8401810191818101908684111561445457600080fd5b8286015b848110156142b25780356001600160401b038111156144775760008081fd5b6144858986838b01016142bd565b845250918301918301614458565b600082601f8301126144a457600080fd5b813560206144b4613b8e83613adb565b82815260059290921b840181019181810190868411156144d357600080fd5b8286015b848110156142b25780356001600160401b03808211156144f657600080fd5b818901915089603f83011261450a57600080fd5b8582013561451a613b8e82613adb565b81815260059190911b830160400190878101908c83111561453a57600080fd5b604085015b838110156145735780358581111561455657600080fd5b6145658f6040838a0101613b6f565b84525091890191890161453f565b508752505050928401925083016144d7565b600082601f83011261459657600080fd5b813560206145a6613b8e83613adb565b8083825260208201915060208460051b8701019350868411156145c857600080fd5b602086015b848110156142b257803583529183019183016145cd565b600082601f8301126145f557600080fd5b81356020614605613b8e83613adb565b82815260059290921b8401810191818101908684111561462457600080fd5b8286015b848110156142b25780356001600160401b03808211156146485760008081fd5b9088019060a0828b03601f19018113156146625760008081fd5b61466a613a45565b614675888501613b13565b81526040808501358481111561468b5760008081fd5b6146998e8b83890101614414565b8a84015250606080860135858111156146b25760008081fd5b6146c08f8c838a0101614493565b83850152506080915081860135858111156146db5760008081fd5b6146e98f8c838a0101614585565b9184019190915250919093013590830152508352918301918301614628565b6000806040838503121561471b57600080fd5b6001600160401b038335111561473057600080fd5b61473d84843585016145e4565b91506001600160401b036020840135111561475757600080fd5b6020830135830184601f82011261476d57600080fd5b61477a613b8e8235613adb565b81358082526020808301929160051b84010187101561479857600080fd5b602083015b6020843560051b850101811015614941576001600160401b03813511156147c357600080fd5b87603f8235860101126147d557600080fd5b6147e8613b8e6020833587010135613adb565b81358501602081810135808452908301929160059190911b016040018a101561481057600080fd5b604083358701015b83358701602081013560051b01604001811015614931576001600160401b038135111561484457600080fd5b833587018135016040818d03603f1901121561485f57600080fd5b614867613a89565b604082013581526001600160401b036060830135111561488657600080fd5b8c605f60608401358401011261489b57600080fd5b60406060830135830101356148b2613b8e82613adb565b808282526020820191508f60608460051b60608801358801010111156148d757600080fd5b6060808601358601015b60608460051b606088013588010101811015614911576149018135613f5e565b80358352602092830192016148e1565b508060208501525050508085525050602083019250602081019050614818565b508452506020928301920161479d565b508093505050509250929050565b60006020828403121561496157600080fd5b610a7a82613b13565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b0360408301511660608201526000606083015160808084015261331360a0840182613d07565b6000602082840312156149c957600080fd5b813561392381613afe565b600082601f8301126149e557600080fd5b813560206149f5613b8e83613adb565b8083825260208201915060208460051b870101935086841115614a1757600080fd5b602086015b848110156142b2578035614a2f81613afe565b8352918301918301614a1c565b60006020808385031215614a4f57600080fd5b82356001600160401b0380821115614a6657600080fd5b818501915085601f830112614a7a57600080fd5b8135614a88613b8e82613adb565b81815260059190911b83018401908481019088831115614aa757600080fd5b8585015b83811015613cd657803585811115614ac257600080fd5b860160c0818c03601f19011215614ad95760008081fd5b614ae1613a67565b8882013581526040614af4818401613ffe565b8a8301526060614b05818501613ffe565b8284015260809150614b18828501613b3d565b9083015260a08381013589811115614b305760008081fd5b614b3e8f8d838801016149d4565b838501525060c0840135915088821115614b585760008081fd5b614b668e8c848701016149d4565b9083015250845250918601918601614aab565b80356001600160e01b0381168114613b2a57600080fd5b600082601f830112614ba157600080fd5b81356020614bb1613b8e83613adb565b82815260069290921b84018101918181019086841115614bd057600080fd5b8286015b848110156142b25760408189031215614bed5760008081fd5b614bf5613a89565b614bfe82613b13565b8152614c0b858301614b79565b81860152835291830191604001614bd4565b600082601f830112614c2e57600080fd5b81356020614c3e613b8e83613adb565b82815260059290921b84018101918181019086841115614c5d57600080fd5b8286015b848110156142b25780356001600160401b0380821115614c815760008081fd5b9088019060a0828b03601f1901811315614c9b5760008081fd5b614ca3613a45565b614cae888501613b13565b815260408085013584811115614cc45760008081fd5b614cd28e8b83890101613b6f565b8a8401525060609350614ce6848601613b13565b908201526080614cf7858201613b13565b93820193909352920135908201528352918301918301614c61565b600082601f830112614d2357600080fd5b81356020614d33613b8e83613adb565b82815260069290921b84018101918181019086841115614d5257600080fd5b8286015b848110156142b25760408189031215614d6f5760008081fd5b614d77613a89565b813581528482013585820152835291830191604001614d56565b60006020808385031215614da457600080fd5b82356001600160401b0380821115614dbb57600080fd5b9084019060608287031215614dcf57600080fd5b614dd7613a23565b823582811115614de657600080fd5b83016040818903811315614df957600080fd5b614e01613a89565b823585811115614e1057600080fd5b8301601f81018b13614e2157600080fd5b8035614e2f613b8e82613adb565b81815260069190911b8201890190898101908d831115614e4e57600080fd5b928a01925b82841015614e9e5785848f031215614e6b5760008081fd5b614e73613a89565b8435614e7e81613afe565b8152614e8b858d01614b79565b818d0152825292850192908a0190614e53565b845250505082870135915084821115614eb657600080fd5b614ec28a838501614b90565b81880152835250508284013582811115614edb57600080fd5b614ee788828601614c1d565b85830152506040830135935081841115614f0057600080fd5b614f0c87858501614d12565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614fac57601f19868403018952815160a06001600160401b03808351168652868301518288880152614f7083880182613d07565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f38565b5090979650505050505050565b60006040808352614fcd6040840186614f1b565b83810360208581019190915285518083528682019282019060005b8181101561500d57845180518452840151848401529383019391850191600101614fe8565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561508857835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615051565b50508583015187820388850152805180835290840192506000918401905b808310156150e157835180516001600160401b031683528501516001600160e01b0316858301529284019260019290920191908501906150a6565b50979650505050505050565b602081526000610a7a6020830184615031565b60006020828403121561511257600080fd5b815161392381613b2f565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156151535761515361511d565b5092915050565b60408152600061516d6040830185614f1b565b82810360208401526140db8185615031565b60006020828403121561519157600080fd5b81356001600160401b038111156151a757600080fd5b613313848285016145e4565b81810381811115610a7d57610a7d61511d565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b03808416806151f6576151f66151c6565b92169190910692915050565b8082028115828204841417610a7d57610a7d61511d565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261524c60a0870182613d07565b9050606085015186820360608801526152658282613d07565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150e157835180516001600160a01b0316835286015186830152928501926001929092019190840190615288565b602081526000610a7a6020830184615219565b6080815260006152e06080830187615219565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561531e57600080fd5b835161532981613b2f565b60208501519093506001600160401b0381111561534557600080fd5b8401601f8101861361535657600080fd5b8051615364613b8e82613b48565b81815287602083850101111561537957600080fd5b61538a826020830160208601613ce3565b809450505050604084015190509250925092565b6000602082840312156153b057600080fd5b815161392381613f5e565b600181811c908216806153cf57607f821691505b6020821081036153ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611225576000816000526020600020601f850160051c8101602086101561541e5750805b601f850160051c820191505b8181101561543d5782815560010161542a565b505050505050565b81516001600160401b0381111561545e5761545e6139e5565b6154728161546c84546153bb565b846153f5565b602080601f8311600181146154a7576000841561548f5750858301515b600019600386901b1c1916600185901b17855561543d565b600085815260208120601f198616915b828110156154d6578886015182559484019460019091019084016154b7565b50858210156154f45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c16151560408501526001600160401b038160a81c16606085015250600180850160808086015260008154615555816153bb565b8060a089015260c060018316600081146155765760018114615592576155c2565b60ff19841660c08b015260c083151560051b8b010194506155c2565b85600052602060002060005b848110156155b95781548c820185015290880190890161559e565b8b0160c0019550505b50929998505050505050505050565b80820180821115610a7d57610a7d61511d565b60ff8181168382160190811115610a7d57610a7d61511d565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b038084168061563b5761563b6151c6565b92169190910492915050565b60006020828403121561565957600080fd5b813561392381613f5e565b6000808335601e1984360301811261567b57600080fd5b8301803591506001600160401b0382111561569557600080fd5b602001915036819003821315613d9857600080fd5b60208101600583106156be576156be613f1b565b91905290565b60ff81811683821602908116908181146151535761515361511d565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157385784546001600160a01b031683526001948501949284019201615713565b50508481036060860152865180825290820192508187019060005b818110156157785782516001600160a01b031685529383019391830191600101615753565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140db6060830184613d07565b8281526040602082015260006133136040830184613d07565b6001600160401b03848116825283166020820152606081016133136040830184613f31565b84815261580c6020820185613f31565b6080604082015260006158226080830185613d07565b905082606083015295945050505050565b60006020828403121561584557600080fd5b815161392381613afe565b602081526000825161010080602085015261586f610120850183613d07565b9150602085015161588b60408601826001600160401b03169052565b5060408501516001600160a01b0381166060860152506060850151608085015260808501516158c560a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526158e28483613d07565b935060c08701519150808685030160e08701526158ff8483613d07565b935060e08701519150808685030183870152506157888382613d07565b60006020828403121561592e57600080fd5b5051919050565b84815260006001600160401b038086166020840152808516604084015250608060608301526157886080830184613d07565b86815260c06020820152600061598060c0830188613d07565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614fac57601f19868403018952815160a081518186526159fc82870182613d07565b9150508582015185820387870152615a148282613d07565b91505060408083015186830382880152615a2e8382613d07565b92505050606080830151818701525060808083015192508582038187015250615a578183613d07565b9a86019a94505050908301906001016159d6565b602081526000610a7a60208301846159b9565b60008282518085526020808601955060208260051b8401016020860160005b84811015614fac57601f19868403018952615ab9838351613d07565b98840198925090830190600101615a9d565b60008151808452602080850194506020840160005b8381101561406457815163ffffffff1687529582019590820190600101615ae0565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615b6a6101a0850183613d07565b91506040870151605f198086850301610120870152615b898483613d07565b935060608901519150615ba6838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615bcf82826159b9565b9150508281036020840152615be48186615a7e565b905082810360408401526157888185615acb56fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"CommitOnRampMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b506040516200689b3803806200689b833981016040819052620000359162000806565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000b8d565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620005ba57600082828151811062000391576200039162000943565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604090206060830151600182018054620004269062000959565b905060000362000489578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620004c8565b8154600160a81b90046001600160401b0316600114620004c857604051632105803760e11b81526001600160401b038416600482015260240162000083565b80511580620004fe5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200051d576040516342bcdf7f60e11b815260040160405180910390fd5b600182016200052d8282620009ea565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005a290859062000ab6565b60405180910390a25050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620005f957620005f9620005be565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200062a576200062a620005be565b604052919050565b80516001600160401b03811681146200064a57600080fd5b919050565b6001600160a01b03811681146200066557600080fd5b50565b6000601f83601f8401126200067c57600080fd5b825160206001600160401b03808311156200069b576200069b620005be565b8260051b620006ac838201620005ff565b9384528681018301938381019089861115620006c757600080fd5b84890192505b85831015620007f957825184811115620006e75760008081fd5b89016080601f19828d038101821315620007015760008081fd5b6200070b620005d4565b888401516200071a816200064f565b815260406200072b85820162000632565b8a8301526060808601518015158114620007455760008081fd5b838301529385015193898511156200075d5760008081fd5b84860195508f603f8701126200077557600094508485fd5b8a8601519450898511156200078e576200078e620005be565b6200079f8b858f88011601620005ff565b93508484528f82868801011115620007b75760008081fd5b60005b85811015620007d7578681018301518582018d01528b01620007ba565b5060009484018b019490945250918201528352509184019190840190620006cd565b9998505050505050505050565b60008060008385036101008112156200081e57600080fd5b60808112156200082d57600080fd5b62000837620005d4565b620008428662000632565b8152602086015162000854816200064f565b6020820152604086015162000869816200064f565b604082015260608601516200087e816200064f565b606082810191909152909450607f19820112156200089b57600080fd5b50604051606081016001600160401b038082118383101715620008c257620008c2620005be565b8160405260808701519150620008d8826200064f565b90825260a08601519063ffffffff82168214620008f457600080fd5b81602084015260c087015191506200090c826200064f565b6040830182905260e0870151929450808311156200092957600080fd5b5050620009398682870162000668565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200096e57607f821691505b6020821081036200098f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009e5576000816000526020600020601f850160051c81016020861015620009c05750805b601f850160051c820191505b81811015620009e157828155600101620009cc565b5050505b505050565b81516001600160401b0381111562000a065762000a06620005be565b62000a1e8162000a17845462000959565b8462000995565b602080601f83116001811462000a56576000841562000a3d5750858301515b600019600386901b1c1916600185901b178555620009e1565b600085815260208120601f198616915b8281101562000a875788860151825594840194600190910190840162000a66565b508582101562000aa65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b0b8162000959565b8060a089015260c0600183166000811462000b2f576001811462000b4c5762000b7e565b60ff19841660c08b015260c083151560051b8b0101945062000b7e565b85600052602060002060005b8481101562000b755781548c820185015290880190890162000b58565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c9862000c036000396000818161022c01526129260152600081816101fd0152612bf80152600081816101ce01528181610552015281816106ff015261236a01526000818161019f01526125a9015260008181611d920152611dc50152615c986000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bbf565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d2d565b610169610309366004613ddd565b610516565b61016961031c366004613e8f565b610a12565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ee2565b610a7b565b6040516102a99190613f3f565b61016961036a366004613f6a565b610ad0565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610ae1565b610169610151366004613fbe565b6000546040516001600160a01b0390911681526020016102a9565b610445610440366004614009565b610b92565b6040516102a99190614069565b6104886104603660046140de565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a436600461437a565b610cf0565b6101696104b7366004614702565b610fd0565b6104cf6104ca366004614949565b611277565b6040516102a99190614964565b6101696104ea3660046149b1565b611383565b6101696104fd366004614a36565b611394565b61050a6113d6565b61051381611432565b50565b600061052487890189614d8b565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fb3565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150e7565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610953576000826020015182815181106106c0576106c0615015565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906150fa565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a382611685565b9050806001016040516107b69190615151565b6040518091039020836020015180519060200120146107f35782602001518160010160405163b80d8fa960e01b815260040161078f929190615244565b60408301518154600160a81b90046001600160401b039081169116141580610834575082606001516001600160401b031683604001516001600160401b0316115b1561087957825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061089c5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108f45783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b606084015161090490600161527f565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261098b9290916152a6565b60405180910390a1610a0760008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116d1915050565b505050505050505050565b610a52610a21828401846152cb565b6040805160008082526020820190925290610a4c565b6060815260200190600190039081610a375790505b506119ca565b604080516000808252602082019092529050610a756001858585858660006116d1565b50505050565b6000610a89600160046152ff565b6002610a96608085615328565b6001600160401b0316610aa9919061534e565b610ab38585611a8c565b901c166003811115610ac757610ac7613f15565b90505b92915050565b610ad86113d6565b61051381611ad1565b6001546001600160a01b03163314610b3b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610bd56040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c60575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610ce057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc2575b5050505050815250509050919050565b333014610d10576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d4d565b6040805180820190915260008082526020820152815260200190600190039081610d265790505b5060a08701515190915015610d8357610d808660a001518760200151886060015189600001516020015189898989611bb0565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610dbe929101613d2d565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e99576040516308d450a160e01b81526001600160a01b038216906308d450a190610e1f908590600401615406565b600060405180830381600087803b158015610e3957600080fd5b505af1925050508015610e4a575060015b610e99573d808015610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b50806040516309c2532560e01b815260040161078f9190613d2d565b604088015151158015610eae57506080880151155b80610ec5575060608801516001600160a01b03163b155b80610eec57506060880151610eea906001600160a01b03166385572ffb60e01b611d73565b155b15610ef957505050610fc9565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f579289926113889291600401615419565b6000604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9e9190810190615455565b509150915081610fc357806040516302a35ba360e21b815260040161078f9190613d2d565b50505050505b5050505050565b610fd8611d8f565b815181518114610ffb576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561126757600084828151811061101a5761101a615015565b6020026020010151905060008160200151519050600085848151811061104257611042615015565b602002602001015190508051821461106d576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561125857600082828151811061108c5761108c615015565b60200260200101516000015190506000856020015183815181106110b2576110b2615015565b6020026020010151905081600014611106578060800151821015611106578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b83838151811061111857611118615015565b602002602001015160200151518160a00151511461116557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a001515181101561124a57600085858151811061118957611189615015565b60200260200101516020015182815181106111a6576111a6615015565b602002602001015163ffffffff169050806000146112415760008360a0015183815181106111d6576111d6615015565b6020026020010151608001518060200190518101906111f591906154ea565b90508063ffffffff1682101561123f578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b50600101611168565b505050806001019050611070565b50505050806001019050610ffe565b5061127283836119ca565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161130390615117565b80601f016020809104026020016040519081016040528092919081815260200182805461132f90615117565b8015610ce05780601f1061135157610100808354040283529160200191610ce0565b820191906000526020600020905b81548152906001019060200180831161135f57505050919092525091949350505050565b61138b6113d6565b61051381611df7565b61139c6113d6565b60005b81518110156113d2576113ca8282815181106113bd576113bd615015565b6020026020010151611ea0565b60010161139f565b5050565b6000546001600160a01b031633146114305760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113d257600082828151811061145257611452615015565b60200260200101519050600081602001519050806001600160401b031660000361148f5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166114b7576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546114e390615117565b905060000361154557815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1611582565b8154600160a81b90046001600160401b031660011461158257604051632105803760e11b81526001600160401b038416600482015260240161078f565b805115806115b75750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156115d5576040516342bcdf7f60e11b815260040160405180910390fd5b600182016115e38282615557565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9061166e908590615616565b60405180910390a250505050806001019050611435565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610aca5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117308760a4615664565b905082606001511561177857845161174990602061534e565b865161175690602061534e565b6117619060a0615664565b61176b9190615664565b6117759082615664565b90505b3681146117a157604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117d05781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117d8611d8f565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561182657611826613f15565b600281111561183757611837613f15565b905250905060028160200151600281111561185457611854613f15565b1480156118a85750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff168154811061189057611890615015565b6000918252602090912001546001600160a01b031633145b6118c557604051631b41e11d60e31b815260040160405180910390fd5b508160600151156119755760208201516118e0906001615677565b60ff16855114611903576040516371253a2560e01b815260040160405180910390fd5b83518551146119255760405163a75d88af60e01b815260040160405180910390fd5b60008787604051611937929190615690565b60405190819003812061194e918b906020016156a0565b6040516020818303038152906040528051906020012090506119738a8288888861217f565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119eb5760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a2e565b604080518082019091526000815260606020820152815260200190600190039081611a065790505b50905060005b8451811015610fc957611a84858281518110611a5257611a52615015565b602002602001015184611a7e57858381518110611a7157611a71615015565b602002602001015161233c565b8361233c565b600101611a34565b6001600160401b038216600090815260076020526040812081611ab06080856156b4565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611af9576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bcb57611bcb6139df565b604051908082528060200260200182016040528015611c1057816020015b6040805180820190915260008082526020820152815260200190600190039081611be95790505b509050811560005b8a51811015611d655781611cc257848482818110611c3857611c38615015565b9050602002016020810190611c4d91906156da565b63ffffffff1615611cc257848482818110611c6a57611c6a615015565b9050602002016020810190611c7f91906156da565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611cb257611cb2615015565b6020026020010151608001819052505b611d408b8281518110611cd757611cd7615015565b60200260200101518b8b8b8b8b87818110611cf457611cf4615015565b9050602002810190611d0691906156f7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bb092505050565b838281518110611d5257611d52615015565b6020908102919091010152600101611c18565b505098975050505050505050565b6000611d7e83612eae565b8015610ac75750610ac78383612ef9565b467f00000000000000000000000000000000000000000000000000000000000000001461143057604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e4f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ecb576000604051631b3fab5160e11b815260040161078f919061573d565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f1c576060840151600182018054911515620100000262ff000019909216919091179055611f58565b6060840151600182015460ff6201000090910416151590151514611f58576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f84576001604051631b3fab5160e11b815260040161078f919061573d565b611fea8484600301805480602002602001604051908101604052809291908181526020018280548015611fe057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fc2575b5050505050612f9b565b8460600151156120f4576120588484600201805480602002602001604051908101604052809291908181526020018280548015611fe0576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fc2575050505050612f9b565b608085015180516101001015612084576002604051631b3fab5160e11b815260040161078f919061573d565b6040860151612094906003615757565b60ff168151116120ba576003604051631b3fab5160e11b815260040161078f919061573d565b805160018401805461ff00191661010060ff8416021790556120e59060028601906020840190613965565b506120f285826001613004565b505b61210084826002613004565b80516121159060038501906020840190613965565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361216e9389939260028a01929190615773565b60405180910390a1610fc98461315f565b8251600090815b818110156123325760006001888684602081106121a5576121a5615015565b6121b291901a601b615677565b8985815181106121c4576121c4615015565b60200260200101518986815181106121de576121de615015565b60200260200101516040516000815260200160405260405161221c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561223e573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561229f5761229f613f15565b60028111156122b0576122b0613f15565b90525090506001816020015160028111156122cd576122cd613f15565b146122eb57604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561231557604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612186565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd91906150fa565b1561244e57801561240c57604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061245983611685565b600101805461246790615117565b80601f016020809104026020016040519081016040528092919081815260200182805461249390615117565b80156124e05780601f106124b5576101008083540402835291602001916124e0565b820191906000526020600020905b8154815290600101906020018083116124c357829003601f168201915b5050506020880151519293505050600081900361250f5760405162bf199760e01b815260040160405180910390fd5b8560400151518114612534576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b0381111561254e5761254e6139df565b604051908082528060200260200182016040528015612577578160200160208202803683370190505b50905060005b828110156126985760008860200151828151811061259d5761259d615015565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b0316146126145780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461266857805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61267281866131b6565b83838151811061268457612684615015565b60209081029190910101525060010161257d565b5060006126af86838a606001518b608001516132d8565b9050806000036126dd57604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b83811015610a075760005a905060008a60200151838151811061270557612705615015565b6020026020010151905060006127238a836000015160600151610a7b565b9050600081600381111561273957612739613f15565b14806127565750600381600381111561275457612754613f15565b145b6127ac57815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612ba8565b6060891561288b578b85815181106127c6576127c6615015565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127f488426152ff565b11905080806128145750600383600381111561281257612812613f15565b145b61283c576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c868151811061284e5761284e615015565b602002602001015160000151600014612885578c868151811061287357612873615015565b60209081029190910101515160808501525b506128f7565b600082600381111561289f5761289f613f15565b146128f757825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612ba8565b8251608001516001600160401b0316156129d057600082600381111561291f5761291f613f15565b036129d0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161298093929190615825565b6020604051808303816000875af115801561299f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c391906150fa565b6129d05750505050612ba8565b60008d6040015186815181106129e8576129e8615015565b6020026020010151905080518460a001515114612a3257835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a468c8560000151606001516001613315565b600080612a548684866133ba565b91509150612a6b8e87600001516060015184613315565b8c15612ac2576003826003811115612a8557612a85613f15565b03612ac2576000856003811115612a9e57612a9e613f15565b14612ac257855151604051632b11b8d960e01b815261078f91908390600401615851565b6002826003811115612ad657612ad6613f15565b14612b1b576003826003811115612aef57612aef613f15565b14612b1b578d866000015160600151836040516349362d1f60e11b815260040161078f9392919061586a565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b7357612b73615015565b602002602001015186865a612b88908f6152ff565b604051612b98949392919061588f565b60405180910390a4505050505050505b6001016126e0565b60408051808201909152600080825260208201526000612bd3876020015161346e565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6391906158c6565b90506001600160a01b0381161580612c925750612c906001600160a01b03821663aff2afbf60e01b611d73565b155b15612cbb5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612ce688858c60800151806020019051810190612cdb91906154ea565b63ffffffff166134e2565b915091506000806000612d996040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d6391906158e3565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135c5565b92509250925082612dbf578160405163e1cd550960e01b815260040161078f9190613d2d565b8151602014612dee578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612e0491906159af565b9050866001600160a01b03168c6001600160a01b031614612e80576000612e358d8a612e30868a6152ff565b6134e2565b50905086811080612e4f575081612e4c88836152ff565b14155b15612e7e5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612ec1826301ffc9a760e01b612ef9565b8015610aca5750612ef2827fffffffff00000000000000000000000000000000000000000000000000000000612ef9565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f84575060208210155b8015612f905750600081115b979650505050505050565b60005b81518110156112725760ff831660009081526003602052604081208351909190849084908110612fd057612fd0615015565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612f9e565b60005b8251811015610a7557600083828151811061302457613024615015565b602002602001015190506000600281111561304157613041613f15565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561308057613080613f15565b146130a1576004604051631b3fab5160e11b815260040161078f919061573d565b6001600160a01b0381166130c85760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130ee576130ee613f15565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561314b5761314b613f15565b021790555090505050806001019050613007565b60ff81166105135760ff808216600090815260026020526040902060010154620100009004166131a257604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936131fc937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f939092918891016159c8565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761324597949693959294919391016159fa565b604051602081830303815290604052805190602001208560400151805190602001208660a0015160405160200161327c9190615afe565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132e685858561369f565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613324608085615328565b6001600160401b0316613337919061534e565b905060006133458585611a8c565b905081613354600160046152ff565b901b19168183600381111561336b5761336b613f15565b6001600160401b03871660009081526007602052604081209190921b929092179182916133996080886156b4565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133e790889088908890600401615b95565b600060405180830381600087803b15801561340157600080fd5b505af1925050508015613412575060015b613451573d808015613440576040519150601f19603f3d011682016040523d82523d6000602084013e613445565b606091505b50600392509050613466565b50506040805160208101909152600081526002905b935093915050565b60008151602014613494578160405163046b337b60e51b815260040161078f9190613d2d565b6000828060200190518101906134aa91906159af565b90506001600160a01b038111806134c2575061040081105b15610aca578260405163046b337b60e51b815260040161078f9190613d2d565b60008060008060006135438860405160240161350d91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135c5565b92509250925082613569578160405163e1cd550960e01b815260040161078f9190613d2d565b6020825114613598578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b818060200190518101906135ac91906159af565b6135b682886152ff565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135e7576135e76139df565b6040519080825280601f01601f191660200182016040528015613611576020820181803683370190505b509150863b61362b5763030ed58f60e21b60005260046000fd5b5a8581101561364557632be8ca8b60e21b60005260046000fd5b8590036040810481038710613665576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156136885750835b808352806000602085013e50955095509592505050565b82518251600091908183036136c757604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136db57506101018111155b6136f8576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613722576040516309bde33960e01b815260040160405180910390fd5b8060000361374f578660008151811061373d5761373d615015565b6020026020010151935050505061391d565b6000816001600160401b03811115613769576137696139df565b604051908082528060200260200182016040528015613792578160200160208202803683370190505b50905060008080805b858110156138bc5760006001821b8b8116036137f657888510156137df578c5160018601958e9181106137d0576137d0615015565b60200260200101519050613818565b85516001850194879181106137d0576137d0615015565b8b5160018401938d91811061380d5761380d615015565b602002602001015190505b600089861015613848578d5160018701968f91811061383957613839615015565b6020026020010151905061386a565b865160018601958891811061385f5761385f615015565b602002602001015190505b8285111561388b576040516309bde33960e01b815260040160405180910390fd5b6138958282613924565b8784815181106138a7576138a7615015565b6020908102919091010152505060010161379b565b5060018503821480156138ce57508683145b80156138d957508581145b6138f6576040516309bde33960e01b815260040160405180910390fd5b83600186038151811061390b5761390b615015565b60200260200101519750505050505050505b9392505050565b600081831061393c576139378284613942565b610ac7565b610ac783835b6040805160016020820152908101839052606081018290526000906080016132ba565b8280548282559060005260206000209081019282156139ba579160200282015b828111156139ba57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613985565b506139c69291506139ca565b5090565b5b808211156139c657600081556001016139cb565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a1757613a176139df565b60405290565b604051606081016001600160401b0381118282101715613a1757613a176139df565b60405160a081016001600160401b0381118282101715613a1757613a176139df565b60405160c081016001600160401b0381118282101715613a1757613a176139df565b604080519081016001600160401b0381118282101715613a1757613a176139df565b604051601f8201601f191681016001600160401b0381118282101715613acd57613acd6139df565b604052919050565b60006001600160401b03821115613aee57613aee6139df565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b2457600080fd5b919050565b801515811461051357600080fd5b8035613b2481613b29565b60006001600160401b03821115613b5b57613b5b6139df565b50601f01601f191660200190565b600082601f830112613b7a57600080fd5b8135613b8d613b8882613b42565b613aa5565b818152846020838601011115613ba257600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bd257600080fd5b82356001600160401b0380821115613be957600080fd5b818501915085601f830112613bfd57600080fd5b8135613c0b613b8882613ad5565b81815260059190911b83018401908481019088831115613c2a57600080fd5b8585015b83811015613cd057803585811115613c465760008081fd5b86016080818c03601f1901811315613c5e5760008081fd5b613c666139f5565b89830135613c7381613af8565b81526040613c82848201613b0d565b8b830152606080850135613c9581613b29565b83830152928401359289841115613cae57600091508182fd5b613cbc8f8d86880101613b69565b908301525085525050918601918601613c2e565b5098975050505050505050565b60005b83811015613cf8578181015183820152602001613ce0565b50506000910152565b60008151808452613d19816020860160208601613cdd565b601f01601f19169290920160200192915050565b602081526000610ac76020830184613d01565b8060608101831015610aca57600080fd5b60008083601f840112613d6357600080fd5b5081356001600160401b03811115613d7a57600080fd5b602083019150836020828501011115613d9257600080fd5b9250929050565b60008083601f840112613dab57600080fd5b5081356001600160401b03811115613dc257600080fd5b6020830191508360208260051b8501011115613d9257600080fd5b60008060008060008060008060e0898b031215613df957600080fd5b613e038a8a613d40565b975060608901356001600160401b0380821115613e1f57600080fd5b613e2b8c838d01613d51565b909950975060808b0135915080821115613e4457600080fd5b613e508c838d01613d99565b909750955060a08b0135915080821115613e6957600080fd5b50613e768b828c01613d99565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613ea457600080fd5b613eae8585613d40565b925060608401356001600160401b03811115613ec957600080fd5b613ed586828701613d51565b9497909650939450505050565b60008060408385031215613ef557600080fd5b613efe83613b0d565b9150613f0c60208401613b0d565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f3b57613f3b613f15565b9052565b60208101610aca8284613f2b565b8035613b2481613af8565b63ffffffff8116811461051357600080fd5b600060608284031215613f7c57600080fd5b613f84613a1d565b8235613f8f81613af8565b81526020830135613f9f81613f58565b60208201526040830135613fb281613af8565b60408201529392505050565b600060208284031215613fd057600080fd5b81356001600160401b03811115613fe657600080fd5b820160a0818503121561391d57600080fd5b803560ff81168114613b2457600080fd5b60006020828403121561401b57600080fd5b610ac782613ff8565b60008151808452602080850194506020840160005b8381101561405e5781516001600160a01b031687529582019590820190600101614039565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140b860e0840182614024565b90506040840151601f198483030160c08501526140d58282614024565b95945050505050565b600080604083850312156140f157600080fd5b6140fa83613b0d565b946020939093013593505050565b600060a0828403121561411a57600080fd5b614122613a3f565b90508135815261413460208301613b0d565b602082015261414560408301613b0d565b604082015261415660608301613b0d565b606082015261416760808301613b0d565b608082015292915050565b600082601f83011261418357600080fd5b81356020614193613b8883613ad5565b82815260059290921b840181019181810190868411156141b257600080fd5b8286015b848110156142ac5780356001600160401b03808211156141d65760008081fd5b9088019060a0828b03601f19018113156141f05760008081fd5b6141f8613a3f565b878401358381111561420a5760008081fd5b6142188d8a83880101613b69565b8252506040808501358481111561422f5760008081fd5b61423d8e8b83890101613b69565b8a84015250606080860135858111156142565760008081fd5b6142648f8c838a0101613b69565b8385015250608091508186013581840152508285013592508383111561428a5760008081fd5b6142988d8a85880101613b69565b9082015286525050509183019183016141b6565b509695505050505050565b600061014082840312156142ca57600080fd5b6142d2613a61565b90506142de8383614108565b815260a08201356001600160401b03808211156142fa57600080fd5b61430685838601613b69565b602084015260c084013591508082111561431f57600080fd5b61432b85838601613b69565b604084015261433c60e08501613f4d565b6060840152610100840135608084015261012084013591508082111561436157600080fd5b5061436e84828501614172565b60a08301525092915050565b60008060008060006060868803121561439257600080fd5b85356001600160401b03808211156143a957600080fd5b6143b589838a016142b7565b965060208801359150808211156143cb57600080fd5b6143d789838a01613d99565b909650945060408801359150808211156143f057600080fd5b506143fd88828901613d99565b969995985093965092949392505050565b600082601f83011261441f57600080fd5b8135602061442f613b8883613ad5565b82815260059290921b8401810191818101908684111561444e57600080fd5b8286015b848110156142ac5780356001600160401b038111156144715760008081fd5b61447f8986838b01016142b7565b845250918301918301614452565b600082601f83011261449e57600080fd5b813560206144ae613b8883613ad5565b82815260059290921b840181019181810190868411156144cd57600080fd5b8286015b848110156142ac5780356001600160401b03808211156144f057600080fd5b818901915089603f83011261450457600080fd5b85820135614514613b8882613ad5565b81815260059190911b830160400190878101908c83111561453457600080fd5b604085015b8381101561456d5780358581111561455057600080fd5b61455f8f6040838a0101613b69565b845250918901918901614539565b508752505050928401925083016144d1565b600082601f83011261459057600080fd5b813560206145a0613b8883613ad5565b8083825260208201915060208460051b8701019350868411156145c257600080fd5b602086015b848110156142ac57803583529183019183016145c7565b600082601f8301126145ef57600080fd5b813560206145ff613b8883613ad5565b82815260059290921b8401810191818101908684111561461e57600080fd5b8286015b848110156142ac5780356001600160401b03808211156146425760008081fd5b9088019060a0828b03601f190181131561465c5760008081fd5b614664613a3f565b61466f888501613b0d565b8152604080850135848111156146855760008081fd5b6146938e8b8389010161440e565b8a84015250606080860135858111156146ac5760008081fd5b6146ba8f8c838a010161448d565b83850152506080915081860135858111156146d55760008081fd5b6146e38f8c838a010161457f565b9184019190915250919093013590830152508352918301918301614622565b6000806040838503121561471557600080fd5b6001600160401b038335111561472a57600080fd5b61473784843585016145de565b91506001600160401b036020840135111561475157600080fd5b6020830135830184601f82011261476757600080fd5b614774613b888235613ad5565b81358082526020808301929160051b84010187101561479257600080fd5b602083015b6020843560051b85010181101561493b576001600160401b03813511156147bd57600080fd5b87603f8235860101126147cf57600080fd5b6147e2613b886020833587010135613ad5565b81358501602081810135808452908301929160059190911b016040018a101561480a57600080fd5b604083358701015b83358701602081013560051b0160400181101561492b576001600160401b038135111561483e57600080fd5b833587018135016040818d03603f1901121561485957600080fd5b614861613a83565b604082013581526001600160401b036060830135111561488057600080fd5b8c605f60608401358401011261489557600080fd5b60406060830135830101356148ac613b8882613ad5565b808282526020820191508f60608460051b60608801358801010111156148d157600080fd5b6060808601358601015b60608460051b60608801358801010181101561490b576148fb8135613f58565b80358352602092830192016148db565b508060208501525050508085525050602083019250602081019050614812565b5084525060209283019201614797565b508093505050509250929050565b60006020828403121561495b57600080fd5b610ac782613b0d565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b0360408301511660608201526000606083015160808084015261330d60a0840182613d01565b6000602082840312156149c357600080fd5b813561391d81613af8565b600082601f8301126149df57600080fd5b813560206149ef613b8883613ad5565b8083825260208201915060208460051b870101935086841115614a1157600080fd5b602086015b848110156142ac578035614a2981613af8565b8352918301918301614a16565b60006020808385031215614a4957600080fd5b82356001600160401b0380821115614a6057600080fd5b818501915085601f830112614a7457600080fd5b8135614a82613b8882613ad5565b81815260059190911b83018401908481019088831115614aa157600080fd5b8585015b83811015613cd057803585811115614abc57600080fd5b860160c0818c03601f19011215614ad35760008081fd5b614adb613a61565b8882013581526040614aee818401613ff8565b8a8301526060614aff818501613ff8565b8284015260809150614b12828501613b37565b9083015260a08381013589811115614b2a5760008081fd5b614b388f8d838801016149ce565b838501525060c0840135915088821115614b525760008081fd5b614b608e8c848701016149ce565b9083015250845250918601918601614aa5565b80356001600160e01b0381168114613b2457600080fd5b600082601f830112614b9b57600080fd5b81356020614bab613b8883613ad5565b82815260069290921b84018101918181019086841115614bca57600080fd5b8286015b848110156142ac5760408189031215614be75760008081fd5b614bef613a83565b614bf882613b0d565b8152614c05858301614b73565b81860152835291830191604001614bce565b600082601f830112614c2857600080fd5b81356020614c38613b8883613ad5565b82815260059290921b84018101918181019086841115614c5757600080fd5b8286015b848110156142ac5780356001600160401b0380821115614c7b5760008081fd5b9088019060a0828b03601f1901811315614c955760008081fd5b614c9d613a3f565b614ca8888501613b0d565b815260408085013584811115614cbe5760008081fd5b614ccc8e8b83890101613b69565b8a8401525060609350614ce0848601613b0d565b908201526080614cf1858201613b0d565b93820193909352920135908201528352918301918301614c5b565b600082601f830112614d1d57600080fd5b81356020614d2d613b8883613ad5565b82815260069290921b84018101918181019086841115614d4c57600080fd5b8286015b848110156142ac5760408189031215614d695760008081fd5b614d71613a83565b813581528482013585820152835291830191604001614d50565b60006020808385031215614d9e57600080fd5b82356001600160401b0380821115614db557600080fd5b9084019060608287031215614dc957600080fd5b614dd1613a1d565b823582811115614de057600080fd5b83016040818903811315614df357600080fd5b614dfb613a83565b823585811115614e0a57600080fd5b8301601f81018b13614e1b57600080fd5b8035614e29613b8882613ad5565b81815260069190911b8201890190898101908d831115614e4857600080fd5b928a01925b82841015614e985785848f031215614e655760008081fd5b614e6d613a83565b8435614e7881613af8565b8152614e85858d01614b73565b818d0152825292850192908a0190614e4d565b845250505082870135915084821115614eb057600080fd5b614ebc8a838501614b8a565b81880152835250508284013582811115614ed557600080fd5b614ee188828601614c17565b85830152506040830135935081841115614efa57600080fd5b614f0687858501614d0c565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a06001600160401b03808351168652868301518288880152614f6a83880182613d01565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f32565b5090979650505050505050565b60006040808352614fc76040840186614f15565b83810360208581019190915285518083528682019282019060005b8181101561500757845180518452840151848401529383019391850191600101614fe2565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561508257835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161504b565b50508583015187820388850152805180835290840192506000918401905b808310156150db57835180516001600160401b031683528501516001600160e01b0316858301529284019260019290920191908501906150a0565b50979650505050505050565b602081526000610ac7602083018461502b565b60006020828403121561510c57600080fd5b815161391d81613b29565b600181811c9082168061512b57607f821691505b60208210810361514b57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835461515f81615117565b60018281168015615177576001811461518c576151bb565b60ff19841687528215158302870194506151bb565b8760005260208060002060005b858110156151b25781548a820152908401908201615199565b50505082870194505b50929695505050505050565b600081546151d481615117565b8085526020600183811680156151f1576001811461520b57615239565b60ff1985168884015283151560051b880183019550615239565b866000528260002060005b858110156152315781548a8201860152908301908401615216565b890184019650505b505050505092915050565b6040815260006152576040830185613d01565b82810360208401526140d581856151c7565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561529f5761529f615269565b5092915050565b6040815260006152b96040830185614f15565b82810360208401526140d5818561502b565b6000602082840312156152dd57600080fd5b81356001600160401b038111156152f357600080fd5b61330d848285016145de565b81810381811115610aca57610aca615269565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061534257615342615312565b92169190910692915050565b8082028115828204841417610aca57610aca615269565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261539860a0870182613d01565b9050606085015186820360608801526153b18282613d01565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150db57835180516001600160a01b03168352860151868301529285019260019290920191908401906153d4565b602081526000610ac76020830184615365565b60808152600061542c6080830187615365565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561546a57600080fd5b835161547581613b29565b60208501519093506001600160401b0381111561549157600080fd5b8401601f810186136154a257600080fd5b80516154b0613b8882613b42565b8181528760208385010111156154c557600080fd5b6154d6826020830160208601613cdd565b809450505050604084015190509250925092565b6000602082840312156154fc57600080fd5b815161391d81613f58565b601f821115611272576000816000526020600020601f850160051c810160208610156155305750805b601f850160051c820191505b8181101561554f5782815560010161553c565b505050505050565b81516001600160401b03811115615570576155706139df565b6155848161557e8454615117565b84615507565b602080601f8311600181146155b957600084156155a15750858301515b600019600386901b1c1916600185901b17855561554f565b600085815260208120601f198616915b828110156155e8578886015182559484019460019091019084016155c9565b50858210156156065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c16606084015250608080830152610ac760a08301600185016151c7565b80820180821115610aca57610aca615269565b60ff8181168382160190811115610aca57610aca615269565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b03808416806156ce576156ce615312565b92169190910492915050565b6000602082840312156156ec57600080fd5b813561391d81613f58565b6000808335601e1984360301811261570e57600080fd5b8301803591506001600160401b0382111561572857600080fd5b602001915036819003821315613d9257600080fd5b602081016005831061575157615751613f15565b91905290565b60ff818116838216029081169081811461529f5761529f615269565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157cb5784546001600160a01b0316835260019485019492840192016157a6565b50508481036060860152865180825290820192508187019060005b8181101561580b5782516001600160a01b0316855293830193918301916001016157e6565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140d56060830184613d01565b82815260406020820152600061330d6040830184613d01565b6001600160401b038481168252831660208201526060810161330d6040830184613f2b565b84815261589f6020820185613f2b565b6080604082015260006158b56080830185613d01565b905082606083015295945050505050565b6000602082840312156158d857600080fd5b815161391d81613af8565b6020815260008251610100806020850152615902610120850183613d01565b9150602085015161591e60408601826001600160401b03169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161595860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526159758483613d01565b935060c08701519150808685030160e08701526159928483613d01565b935060e087015191508086850301838701525061581b8382613d01565b6000602082840312156159c157600080fd5b5051919050565b84815260006001600160401b0380861660208401528085166040840152506080606083015261581b6080830184613d01565b86815260c060208201526000615a1360c0830188613d01565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a08151818652615a8f82870182613d01565b9150508582015185820387870152615aa78282613d01565b91505060408083015186830382880152615ac18382613d01565b92505050606080830151818701525060808083015192508582038187015250615aea8183613d01565b9a86019a9450505090830190600101615a69565b602081526000610ac76020830184615a4c565b60008282518085526020808601955060208260051b8401016020860160005b84811015614fa657601f19868403018952615b4c838351613d01565b98840198925090830190600101615b30565b60008151808452602080850194506020840160005b8381101561405e57815163ffffffff1687529582019590820190600101615b73565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615bfd6101a0850183613d01565b91506040870151605f198086850301610120870152615c1c8483613d01565b935060608901519150615c39838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615c628282615a4c565b9150508281036020840152615c778186615b11565b9050828103604084015261581b8185615b5e56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index b3ed8635dd..cdcd337b8e 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin d7f33e895b1b282930c81ac4e19ec51f6a7900fe6dddda3a7ba1b2796eacff32 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 56945d1dff7a37553ad6db6b0701159af4ad2d85fb49acf368f66881c382f08a onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 594439983f963f4158f9c5009dee7cba4ee56be61900bb1d5b9108eaeac3d6a6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2