diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index af1f2962369..2cbe67eac22 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -14,9 +14,9 @@ AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19668) AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21253) AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16418) AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18306) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13047) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13048) AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18989) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17479) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17480) AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30062) AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32071) BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28761) @@ -34,7 +34,7 @@ BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28761) BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55115) BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243517) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2132684) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2132690) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9517) CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 70831) CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 363664) @@ -114,9 +114,9 @@ CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143718) CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37399) CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129098) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11047) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11048) CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20642) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11046) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11047) CommitStore_verify:test_Blessed_Success() (gas: 96389) CommitStore_verify:test_NotBlessed_Success() (gas: 61374) CommitStore_verify:test_Paused_Revert() (gas: 18496) @@ -124,73 +124,73 @@ CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36785) DefensiveExampleTest:test_HappyPath_Success() (gas: 200018) DefensiveExampleTest:test_Recovery() (gas: 424256) E2E:test_E2E_3MessagesSuccess_gas() (gas: 1104033) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37797) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103733) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85258) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36786) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94302) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39768) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37770) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103730) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85255) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36783) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94299) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39765) EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86559) EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 385246) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 141896) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 141905) EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 803071) EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 179244) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29240) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66444) EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 210968) EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 222232) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126637) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 126640) EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 237791) EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246391) EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 329828) EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 312265) -EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17030) +EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153727) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5665947) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5665956) EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144461) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21318) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36432) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21315) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36429) EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51598) EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 473329) EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47668) -EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152359) +EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152356) EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 102842) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 163804) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 163810) EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178205) EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42539) EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157347) EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 172692) EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247069) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 114153) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 114150) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 407451) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54096) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131047) -EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52090) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 563385) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 495508) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35383) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131053) +EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52087) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 563391) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 495505) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35380) EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 544641) -EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64326) +EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64323) EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122322) EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142532) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427337) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427328) EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278097) -EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18659) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278106) +EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 221421) EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47881) EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47352) EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 313917) EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70008) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229319) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229325) EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276790) EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258696) EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226253) EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130745) EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) -EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3247348) -EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83333) +EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) +EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185829) EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27049) EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45155) @@ -198,29 +198,29 @@ EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 274 EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 530151) EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 345758) EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187324) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2321906) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2321912) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 362965) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143900) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 366104) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482691) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482682) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189727) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153641) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59894) -EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8838) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40153) -EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38236) -EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141962) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162525) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16690) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197721) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5579769) +EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40156) +EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) +EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141923) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16693) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5579757) EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35778) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98428) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114198) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114240) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130207) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138653) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129829) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98446) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114204) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114246) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130213) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138659) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129838) EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38257) EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38440) EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25489) @@ -242,7 +242,7 @@ EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30187) EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43300) EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109305) EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 312579) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112322) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112331) EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72206) EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 710475) EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147664) @@ -251,13 +251,13 @@ EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Suc EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95349) EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20544) EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20912) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78230) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234078) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78233) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234081) EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16715) EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95271) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 159436) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 159439) EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24089) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117922) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117925) EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19902) EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64648) EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) @@ -280,7 +280,7 @@ EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127367) EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133251) EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146446) EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141021) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297510) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297519) EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15294) EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42365) EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21246) @@ -352,10 +352,10 @@ FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 30963) FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94303) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14614) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20410) -FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 70443) +FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 70458) FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45750) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45765) FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 62252) FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 84800) FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 41227) @@ -368,15 +368,15 @@ FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_S FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40013) FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29299) FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18180) -FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 81054) +FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 81057) FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54294) -FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 237472) +FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 237475) FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 19949) FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31746) FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 97692) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 142833) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 142836) FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 29407) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 111861) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 111864) FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 20085) FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 61933) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2094539) @@ -431,31 +431,31 @@ FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73252) FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107744) FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40091) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10970) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10971) LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17992) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3368110) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3364509) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11380) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3368113) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3364513) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11381) LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60043) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11355) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3124819) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11356) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3124822) LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29942) LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79844) LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59464) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3121261) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11380) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3121265) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11381) LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72644) LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56196) LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225108) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10992) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10993) LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18058) LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83171) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55878) LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60043) -LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11355) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11029) +LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11356) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11030) LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5451) MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3552) @@ -464,7 +464,7 @@ MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 33965) MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60758) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126294) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126306) MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63302) MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 43853) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132031) @@ -512,7 +512,7 @@ MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsA MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18287) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18216) -MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59331) +MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59228) MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 44298) MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283711) MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422848) @@ -520,7 +520,7 @@ MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511694) MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 829593) MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 457446) MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12376) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2143220) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2143120) MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141744) MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 808478) MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 171331) @@ -528,36 +528,36 @@ MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 30298) MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254454) MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 861521) MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475825) -MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42837) -MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48442) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76930) -MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 66127) -MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33419) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79521) -MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 34131) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47114) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25682) -MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18726) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24191) -MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61409) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39890) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32973) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 410714) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1486877) +MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42833) +MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48438) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 66125) +MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 34129) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47110) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25678) +MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18724) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61407) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 410717) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1509131) NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37907) -NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23694) -NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38763) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71847) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 257298) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 259415) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 320051) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 295325) +NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23703) +NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38790) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71874) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 253899) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 258016) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 317264) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 292534) NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244940) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233260) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 150194) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168502) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220478) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125070) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233077) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 146806) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168505) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220481) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125079) NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107731) NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122943) NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42959) @@ -591,172 +591,163 @@ OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51686) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23484) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39665) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20557) -OffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40127) -OffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 107130) -OffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 88331) -OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 39848) -OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 97399) -OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 42843) -OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 89579) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 467917) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99161) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12395) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93181) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109824) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13263) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 17988) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15343) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 313729) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 255119) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 166168) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 187819) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 153185) -OffRamp_batchExecute:test_Unhealthy_Revert() (gas: 532970) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10439) -OffRamp_ccipReceive:test_Reverts() (gas: 15773) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67436) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59778) -OffRamp_commit:test_InvalidRootRevert() (gas: 58858) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6551011) -OffRamp_commit:test_NoConfig_Revert() (gas: 6134083) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 106295) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 116369) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 106316) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 351652) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 159342) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 136480) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 136947) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59126) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 225582) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 117632) -OffRamp_commit:test_Unhealthy_Revert() (gas: 77652) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 205066) -OffRamp_commit:test_WrongConfigWithoutSigners_Revert() (gas: 6545334) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 47832) -OffRamp_constructor:test_Constructor_Success() (gas: 6137987) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 137086) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103803) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101696) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 139661) -OffRamp_constructor:test_ZeroRMNProxy_Revert() (gas: 101573) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101618) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17305) -OffRamp_execute:test_LargeBatch_Success() (gas: 1728220) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 349589) -OffRamp_execute:test_MultipleReports_Success() (gas: 277112) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6601732) -OffRamp_execute:test_NoConfig_Revert() (gas: 6184566) -OffRamp_execute:test_NonArray_Revert() (gas: 27777) -OffRamp_execute:test_SingleReport_Success() (gas: 172547) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147479) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6963806) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17203) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18235) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 249015) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 20517) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 207654) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 48779) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48302) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 229610) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 86181) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 280837) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 92415) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 35127) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 23923) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 486078) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 54457) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 35905) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 154471) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 35338) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 184911) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 196169) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 48074) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 444732) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 250427) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 187283) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 206863) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 263565) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 138454) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 417627) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 65877) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 80910) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 576137) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 525167) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 35743) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 531800) -OffRamp_executeSingleReport:test_Unhealthy_Revert() (gas: 529168) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 494410) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 133560) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 162760) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3742124) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 118859) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 88048) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 75551) +OffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40170) +OffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 107155) +OffRamp__releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 88356) +OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 39873) +OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 97421) +OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 42865) +OffRamp__releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 89601) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 467980) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99186) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12392) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93184) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109846) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13260) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 17994) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15349) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 306918) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 250286) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 161425) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 184395) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 149856) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10441) +OffRamp_ccipReceive:test_Reverts() (gas: 15705) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64218) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 66899) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 59166) +OffRamp_commit:test_InvalidRootRevert() (gas: 58276) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6474312) +OffRamp_commit:test_NoConfig_Revert() (gas: 6057542) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113577) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121511) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113576) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 357514) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 166301) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 141404) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 141963) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 58510) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 238928) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 121757) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 211845) +OffRamp_commit:test_WrongConfigWithoutSigners_Revert() (gas: 6470657) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51147) +OffRamp_constructor:test_Constructor_Success() (gas: 6059326) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136944) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103698) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101546) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 139585) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101475) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101534) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17236) +OffRamp_execute:test_LargeBatch_Success() (gas: 1711098) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 344670) +OffRamp_execute:test_MultipleReports_Success() (gas: 272179) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6519543) +OffRamp_execute:test_NoConfig_Revert() (gas: 6102447) +OffRamp_execute:test_NonArray_Revert() (gas: 27708) +OffRamp_execute:test_SingleReport_Success() (gas: 169068) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 144000) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6881617) +OffRamp_execute:test_ZeroReports_Revert() (gas: 17134) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18190) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 248970) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 20472) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 207612) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 48734) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48257) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 229576) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 86147) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 280789) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 92381) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 25257) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 14084) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 493145) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 44612) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 26041) +OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 154195) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 25490) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 181524) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 191417) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 37085) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 441385) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 243651) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 182509) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 202131) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 253699) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 135109) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 416217) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 56035) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 71091) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 574704) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 523740) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 25901) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 492932) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 128830) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 158029) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3635486) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 118421) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 87417) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 75545) OffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 26439) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 168628) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 205504) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 25993) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 152822) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 518556) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2384534) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 205857) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 215965) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 649750) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 319062) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 165822) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 24603) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66263) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41294) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 83291) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 177934) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 191136) -OffRamp_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11423) -OffRamp_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 215351) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11585) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 14130) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 49093) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 27103) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225773) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 234394) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 309206) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 283972) -OffRamp_verify:test_Blessed_Success() (gas: 176664) -OffRamp_verify:test_NotBlessedWrongChainSelector_Success() (gas: 178732) -OffRamp_verify:test_NotBlessed_Success() (gas: 141593) -OffRamp_verify:test_TooManyLeaves_Revert() (gas: 51510) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 165218) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 207208) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 25990) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 152816) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 520251) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2381757) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 207561) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 217669) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 672360) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 314175) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 165844) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 24622) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66282) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41313) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 83310) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 177953) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 191164) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11604) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 14149) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 49134) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 27144) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225686) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 234307) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 308936) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 283882) OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 390336) -OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 63649) +OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 63655) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInalidChainSelector_Revert() (gas: 13308) OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94260) OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92177) OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97198) OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92235) -OnRamp_constructor:test_Constructor_Success() (gas: 2455004) +OnRamp_constructor:test_Constructor_Success() (gas: 2455007) OnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 72010) -OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 112791) -OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 143561) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 143137) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 141314) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 143367) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 142736) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 135246) +OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 112797) +OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 143567) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 143143) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 141332) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 143373) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 142745) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 135252) OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 26349) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 133253) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 133268) OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 24426) OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12872) OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 32033) OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 15762) OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 182032) OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 208301) -OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 122714) +OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 122723) OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 144094) OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3887491) OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 108659) OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 74066) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 273416) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 104351) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 273431) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 104354) OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 73173) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 119675) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 119678) OnRamp_getFee:test_Unhealthy_Revert() (gas: 43679) OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35270) @@ -765,7 +756,7 @@ OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11112) OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 15939) OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 52018) -OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97192) +OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97180) PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150169) PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20277) PingPong_plumbing:test_Pausing_Success() (gas: 17777) @@ -849,24 +840,24 @@ RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Rever RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129731) Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89288) Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10642128) -Router_applyRampUpdates:test_OnRampDisable() (gas: 55913) +Router_applyRampUpdates:test_OnRampDisable() (gas: 55935) Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12311) Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 113880) Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201336) Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 128515) Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 215973) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66269) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66281) Router_ccipSend:test_InvalidMsgValue() (gas: 31963) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68740) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68737) Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 173606) Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 56031) Router_ccipSend:test_NativeFeeToken_Success() (gas: 172200) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 242714) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 242717) Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24749) Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44724) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 174416) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 174386) Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 244854) -Router_constructor:test_Constructor_Success() (gas: 13074) +Router_constructor:test_Constructor_Success() (gas: 13070) Router_getArmProxy:test_getArmProxy() (gas: 10561) Router_getFee:test_GetFeeSupportedChain_Success() (gas: 46458) Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17138) @@ -877,11 +868,11 @@ Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 422138) Router_recoverTokens:test_RecoverTokens_Success() (gas: 50437) Router_routeMessage:test_AutoExec_Success() (gas: 42684) -Router_routeMessage:test_ExecutionEvent_Success() (gas: 157980) +Router_routeMessage:test_ExecutionEvent_Success() (gas: 157989) Router_routeMessage:test_ManualExec_Success() (gas: 35381) Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25116) Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44724) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10985) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 53531) SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 416966) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20151) @@ -893,12 +884,12 @@ TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBound TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17581) TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39902) TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105922) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104001) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15481) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15026) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112536) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107656) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115686) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104037) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15493) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15038) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112548) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107668) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115698) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12585) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54473) TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19148) @@ -907,19 +898,19 @@ TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35943) TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30617) TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18043) TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 6070353) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 6101826) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6319594) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 6070356) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 6101829) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6319597) TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3387124) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6913778) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7097803) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2209837) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6913781) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7097809) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2209840) TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12089) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23324) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177568) -TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 23670) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177792) +TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 23740) TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8363) -TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24831) +TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271305) TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 541162) TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18344) @@ -930,11 +921,11 @@ TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70721) TokenPool_constructor:test_immutableFields_Success() (gas: 20544) TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 273962) TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276909) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289406) -TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349720) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289413) +TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349729) TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276643) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253432) -TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304761) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253439) +TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304770) TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17061) TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15062) TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15620) @@ -949,16 +940,16 @@ TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261558) TokenProxy_constructor:test_Constructor() (gas: 13812) TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16827) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12658) -TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15849) +TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15852) TokenProxy_getFee:test_GetFee_Success() (gas: 86690) -USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25290) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35322) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30073) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133102) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477183) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268111) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50676) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98591) +USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25338) +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35352) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30094) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133112) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477240) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268166) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50700) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98609) USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66150) USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11333) USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file diff --git a/core/gethwrappers/ccip/generated/ccip_reader_tester/ccip_reader_tester.go b/core/gethwrappers/ccip/generated/ccip_reader_tester/ccip_reader_tester.go index 915a045c104..4751e845218 100644 --- a/core/gethwrappers/ccip/generated/ccip_reader_tester/ccip_reader_tester.go +++ b/core/gethwrappers/ccip/generated/ccip_reader_tester/ccip_reader_tester.go @@ -72,20 +72,18 @@ type InternalTokenPriceUpdate struct { UsdPerToken *big.Int } -type OffRampCommitReport struct { - PriceUpdates InternalPriceUpdates - MerkleRoots []OffRampMerkleRoot -} - -type OffRampInterval struct { - Min uint64 - Max uint64 -} - -type OffRampMerkleRoot struct { +type MerkleRoot struct { SourceChainSelector uint64 - Interval OffRampInterval + MinSeqNr uint64 + MaxSeqNr uint64 MerkleRoot [32]byte + OnRampAddress []byte +} + +type OffRampCommitReport struct { + PriceUpdates InternalPriceUpdates + MerkleRoots []MerkleRoot + RmnSignatures []Signature } type OffRampSourceChainConfig struct { @@ -95,9 +93,14 @@ type OffRampSourceChainConfig struct { OnRamp []byte } +type Signature struct { + R [32]byte + S [32]byte +} + var CCIPReaderTesterMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"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\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"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[]\"}],\"indexed\":false,\"internalType\":\"structInternal.EVM2AnyRampMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"CCIPSendRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structOffRamp.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"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\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"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\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"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.EVM2AnyRampMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"emitCCIPSendRequested\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structOffRamp.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"}],\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"emitCommitReportAccepted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"emitExecutionStateChanged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"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\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceChainConfig\",\"type\":\"tuple\"}],\"name\":\"setSourceChainConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5061118d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80634cf66e361461005c57806385096da914610071578063e44302b714610084578063e83eabba14610097578063e9d68a8e146100aa575b600080fd5b61006f61006a3660046104c9565b6100d3565b005b61006f61007f366004610741565b610128565b61006f6100923660046109df565b61016d565b61006f6100a5366004610b49565b6101a7565b6100bd6100b8366004610c04565b610233565b6040516100ca9190610c6c565b60405180910390f35b82846001600160401b0316866001600160401b03167f8c324ce1367b83031769f6a813e3bb4c117aba2185789d66b98b791405be6df28585604051610119929190610cc4565b60405180910390a45050505050565b816001600160401b03167fcae3d9f68a9ed33d0a770e9bcc6fc25d4041dd6391e6cd8015546547a3c93140826040516101619190610dc7565b60405180910390a25050565b7f3a3950e13dd607cc37980db0ef14266c40d2bba9c01b2e44bfe549808883095d8160405161019c9190610f81565b60405180910390a150565b6001600160401b0380831660009081526020818152604091829020845181549286015193860151909416600160a81b02600160a81b600160e81b0319931515600160a01b026001600160a81b03199093166001600160a01b039095169490941791909117919091169190911781556060820151829190600182019061022c90826110c1565b5050505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b038781168452838352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916102be90611036565b80601f01602080910402602001604051908101604052809291908181526020018280546102ea90611036565b80156103375780601f1061030c57610100808354040283529160200191610337565b820191906000526020600020905b81548152906001019060200180831161031a57829003601f168201915b5050505050815250509050919050565b80356001600160401b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561039b5761039b610363565b60405290565b60405161010081016001600160401b038111828210171561039b5761039b610363565b604080519081016001600160401b038111828210171561039b5761039b610363565b604051606081016001600160401b038111828210171561039b5761039b610363565b604051608081016001600160401b038111828210171561039b5761039b610363565b604051601f8201601f191681016001600160401b038111828210171561045257610452610363565b604052919050565b600082601f83011261046b57600080fd5b81356001600160401b0381111561048457610484610363565b610497601f8201601f191660200161042a565b8181528460208386010111156104ac57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156104e157600080fd5b6104ea86610347565b94506104f860208701610347565b93506040860135925060608601356004811061051357600080fd5b915060808601356001600160401b0381111561052e57600080fd5b61053a8882890161045a565b9150509295509295909350565b600060a0828403121561055957600080fd5b610561610379565b90508135815261057360208301610347565b602082015261058460408301610347565b604082015261059560608301610347565b60608201526105a660808301610347565b608082015292915050565b6001600160a01b03811681146105c657600080fd5b50565b803561035e816105b1565b60006001600160401b038211156105ed576105ed610363565b5060051b60200190565b600082601f83011261060857600080fd5b8135602061061d610618836105d4565b61042a565b82815260059290921b8401810191818101908684111561063c57600080fd5b8286015b848110156107365780356001600160401b03808211156106605760008081fd5b9088019060a0828b03601f190181131561067a5760008081fd5b610682610379565b87840135838111156106945760008081fd5b6106a28d8a8388010161045a565b825250604080850135848111156106b95760008081fd5b6106c78e8b8389010161045a565b8a84015250606080860135858111156106e05760008081fd5b6106ee8f8c838a010161045a565b838501525060809150818601358184015250828501359250838311156107145760008081fd5b6107228d8a8588010161045a565b908201528652505050918301918301610640565b509695505050505050565b6000806040838503121561075457600080fd5b61075d83610347565b915060208301356001600160401b038082111561077957600080fd5b90840190610180828703121561078e57600080fd5b6107966103a1565b6107a08784610547565b81526107ae60a084016105c9565b602082015260c0830135828111156107c557600080fd5b6107d18882860161045a565b60408301525060e0830135828111156107e957600080fd5b6107f58882860161045a565b6060830152506101008301358281111561080e57600080fd5b61081a8882860161045a565b60808301525061082d61012084016105c9565b60a082015261014083013560c08201526101608301358281111561085057600080fd5b61085c888286016105f7565b60e0830152508093505050509250929050565b80356001600160e01b038116811461035e57600080fd5b600082601f83011261089757600080fd5b813560206108a7610618836105d4565b82815260069290921b840181019181810190868411156108c657600080fd5b8286015b8481101561073657604081890312156108e35760008081fd5b6108eb6103c4565b6108f482610347565b815261090185830161086f565b818601528352918301916040016108ca565b600082601f83011261092457600080fd5b81356020610934610618836105d4565b82815260079290921b8401810191818101908684111561095357600080fd5b8286015b848110156107365780880360808112156109715760008081fd5b6109796103e6565b61098283610347565b8152604080601f19840112156109985760008081fd5b6109a06103c4565b92506109ad878501610347565b83526109ba818501610347565b8388015281870192909252606083013591810191909152835291830191608001610957565b600060208083850312156109f257600080fd5b82356001600160401b0380821115610a0957600080fd5b81850191506040808388031215610a1f57600080fd5b610a276103c4565b833583811115610a3657600080fd5b84016040818a031215610a4857600080fd5b610a506103c4565b813585811115610a5f57600080fd5b8201601f81018b13610a7057600080fd5b8035610a7e610618826105d4565b81815260069190911b8201890190898101908d831115610a9d57600080fd5b928a01925b82841015610aed5787848f031215610aba5760008081fd5b610ac26103c4565b8435610acd816105b1565b8152610ada858d0161086f565b818d0152825292870192908a0190610aa2565b845250505081870135935084841115610b0557600080fd5b610b118a858401610886565b8188015282525083850135915082821115610b2b57600080fd5b610b3788838601610913565b85820152809550505050505092915050565b60008060408385031215610b5c57600080fd5b610b6583610347565b915060208301356001600160401b0380821115610b8157600080fd5b9084019060808287031215610b9557600080fd5b610b9d610408565b8235610ba8816105b1565b815260208301358015158114610bbd57600080fd5b6020820152610bce60408401610347565b6040820152606083013582811115610be557600080fd5b610bf18882860161045a565b6060830152508093505050509250929050565b600060208284031215610c1657600080fd5b610c1f82610347565b9392505050565b6000815180845260005b81811015610c4c57602081850181015186830182015201610c30565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282516001600160a01b03168282015282015115156040808301919091528201516001600160401b0316606080830191909152820151608080830152600090610cbc60a0840182610c26565b949350505050565b600060048410610ce457634e487b7160e01b600052602160045260246000fd5b83825260406020830152610cbc6040830184610c26565b6001600160a01b03169052565b600082825180855260208086019550808260051b84010181860160005b84811015610dba57601f19868403018952815160a08151818652610d4b82870182610c26565b9150508582015185820387870152610d638282610c26565b91505060408083015186830382880152610d7d8382610c26565b92505050606080830151818701525060808083015192508582038187015250610da68183610c26565b9a86019a9450505090830190600101610d25565b5090979650505050505050565b60208152610e14602082018351805182526020808201516001600160401b039081169184019190915260408083015182169084015260608083015182169084015260809182015116910152565b60006020830151610e2860c0840182610cfb565b5060408301516101808060e0850152610e456101a0850183610c26565b91506060850151601f198086850301610100870152610e648483610c26565b9350608087015191508086850301610120870152610e828483610c26565b935060a08701519150610e99610140870183610cfb565b60c087015161016087015260e0870151915080868503018387015250610ebf8382610d08565b9695505050505050565b60008151808452602080850194506020840160005b83811015610f1757815180516001600160401b031688528301516001600160e01b03168388015260409096019590820190600101610ede565b509495945050505050565b600081518084526020808501945080840160005b83811015610f1757815180516001600160401b0390811689528482015180518216868b0152850151166040898101919091520151606088015260809096019590820190600101610f36565b6000602080835283516040808386015260a0850182516040606088015281815180845260c0890191508683019350600092505b80831015610fef57835180516001600160a01b031683528701516001600160e01b031687830152928601926001929092019190840190610fb4565b5093850151878503605f190160808901529361100b8186610ec9565b945050505050818501519150601f1984820301604085015261102d8183610f22565b95945050505050565b600181811c9082168061104a57607f821691505b60208210810361106a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156110bc576000816000526020600020601f850160051c810160208610156110995750805b601f850160051c820191505b818110156110b8578281556001016110a5565b5050505b505050565b81516001600160401b038111156110da576110da610363565b6110ee816110e88454611036565b84611070565b602080601f831160018114611123576000841561110b5750858301515b600019600386901b1c1916600185901b1785556110b8565b600085815260208120601f198616915b8281101561115257888601518255948401946001909101908401611133565b50858210156111705787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000818000a", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"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\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"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[]\"}],\"indexed\":false,\"internalType\":\"structInternal.EVM2AnyRampMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"CCIPSendRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"}],\"internalType\":\"structMerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structSignature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"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\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"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\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"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.EVM2AnyRampMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"emitCCIPSendRequested\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"}],\"internalType\":\"structMerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structSignature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"emitCommitReportAccepted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"emitExecutionStateChanged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"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\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceChainConfig\",\"type\":\"tuple\"}],\"name\":\"setSourceChainConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b506112e1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806344f38be51461005c5780634cf66e361461007157806385096da914610084578063e83eabba14610097578063e9d68a8e146100aa575b600080fd5b61006f61006a36600461073a565b6100d3565b005b61006f61007f3660046108c4565b61010d565b61006f610092366004610ae6565b610162565b61006f6100a5366004610c14565b6101a7565b6100bd6100b8366004610ccf565b610233565b6040516100ca9190610d37565b60405180910390f35b7fd7868a16facbdde7b5c020620136316b3c266fffcb4e1e41cb6a662fe14ba3e1816040516101029190610ecd565b60405180910390a150565b82846001600160401b0316866001600160401b03167f8c324ce1367b83031769f6a813e3bb4c117aba2185789d66b98b791405be6df28585604051610153929190610f9f565b60405180910390a45050505050565b816001600160401b03167fcae3d9f68a9ed33d0a770e9bcc6fc25d4041dd6391e6cd8015546547a3c931408260405161019b9190611088565b60405180910390a25050565b6001600160401b0380831660009081526020818152604091829020845181549286015193860151909416600160a81b02600160a81b600160e81b0319931515600160a01b026001600160a81b03199093166001600160a01b039095169490941791909117919091169190911781556060820151829190600182019061022c9082611215565b5050505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b038781168452838352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916102be9061118a565b80601f01602080910402602001604051908101604052809291908181526020018280546102ea9061118a565b80156103375780601f1061030c57610100808354040283529160200191610337565b820191906000526020600020905b81548152906001019060200180831161031a57829003601f168201915b5050505050815250509050919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561037f5761037f610347565b60405290565b60405160a081016001600160401b038111828210171561037f5761037f610347565b604051606081016001600160401b038111828210171561037f5761037f610347565b60405161010081016001600160401b038111828210171561037f5761037f610347565b604051608081016001600160401b038111828210171561037f5761037f610347565b604051601f8201601f191681016001600160401b038111828210171561043657610436610347565b604052919050565b60006001600160401b0382111561045757610457610347565b5060051b60200190565b6001600160a01b038116811461047657600080fd5b50565b803561048481610461565b919050565b80356001600160e01b038116811461048457600080fd5b80356001600160401b038116811461048457600080fd5b600082601f8301126104c857600080fd5b813560206104dd6104d88361043e565b61040e565b82815260069290921b840181019181810190868411156104fc57600080fd5b8286015b8481101561054957604081890312156105195760008081fd5b61052161035d565b61052a826104a0565b8152610537858301610489565b81860152835291830191604001610500565b509695505050505050565b600082601f83011261056557600080fd5b81356001600160401b0381111561057e5761057e610347565b610591601f8201601f191660200161040e565b8181528460208386010111156105a657600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126105d457600080fd5b813560206105e46104d88361043e565b82815260059290921b8401810191818101908684111561060357600080fd5b8286015b848110156105495780356001600160401b03808211156106275760008081fd5b9088019060a0828b03601f19018113156106415760008081fd5b610649610385565b6106548885016104a0565b815260406106638186016104a0565b8983015260606106748187016104a0565b8284015260809150818601358184015250828501359250838311156106995760008081fd5b6106a78d8a85880101610554565b908201528652505050918301918301610607565b600082601f8301126106cc57600080fd5b813560206106dc6104d88361043e565b82815260069290921b840181019181810190868411156106fb57600080fd5b8286015b8481101561054957604081890312156107185760008081fd5b61072061035d565b8135815284820135858201528352918301916040016106ff565b6000602080838503121561074d57600080fd5b82356001600160401b038082111561076457600080fd5b908401906060828703121561077857600080fd5b6107806103a7565b82358281111561078f57600080fd5b830160408189038113156107a257600080fd5b6107aa61035d565b8235858111156107b957600080fd5b8301601f81018b136107ca57600080fd5b80356107d86104d88261043e565b81815260069190911b8201890190898101908d8311156107f757600080fd5b928a01925b828410156108475785848f0312156108145760008081fd5b61081c61035d565b843561082781610461565b8152610834858d01610489565b818d0152825292850192908a01906107fc565b84525050508287013591508482111561085f57600080fd5b61086b8a8385016104b7565b8188015283525050828401358281111561088457600080fd5b610890888286016105c3565b858301525060408301359350818411156108a957600080fd5b6108b5878585016106bb565b60408201529695505050505050565b600080600080600060a086880312156108dc57600080fd5b6108e5866104a0565b94506108f3602087016104a0565b93506040860135925060608601356004811061090e57600080fd5b915060808601356001600160401b0381111561092957600080fd5b61093588828901610554565b9150509295509295909350565b600060a0828403121561095457600080fd5b61095c610385565b90508135815261096e602083016104a0565b602082015261097f604083016104a0565b6040820152610990606083016104a0565b60608201526109a1608083016104a0565b608082015292915050565b600082601f8301126109bd57600080fd5b813560206109cd6104d88361043e565b82815260059290921b840181019181810190868411156109ec57600080fd5b8286015b848110156105495780356001600160401b0380821115610a105760008081fd5b9088019060a0828b03601f1901811315610a2a5760008081fd5b610a32610385565b8784013583811115610a445760008081fd5b610a528d8a83880101610554565b82525060408085013584811115610a695760008081fd5b610a778e8b83890101610554565b8a8401525060608086013585811115610a905760008081fd5b610a9e8f8c838a0101610554565b83850152506080915081860135818401525082850135925083831115610ac45760008081fd5b610ad28d8a85880101610554565b9082015286525050509183019183016109f0565b60008060408385031215610af957600080fd5b610b02836104a0565b915060208301356001600160401b0380821115610b1e57600080fd5b908401906101808287031215610b3357600080fd5b610b3b6103c9565b610b458784610942565b8152610b5360a08401610479565b602082015260c083013582811115610b6a57600080fd5b610b7688828601610554565b60408301525060e083013582811115610b8e57600080fd5b610b9a88828601610554565b60608301525061010083013582811115610bb357600080fd5b610bbf88828601610554565b608083015250610bd26101208401610479565b60a082015261014083013560c082015261016083013582811115610bf557600080fd5b610c01888286016109ac565b60e0830152508093505050509250929050565b60008060408385031215610c2757600080fd5b610c30836104a0565b915060208301356001600160401b0380821115610c4c57600080fd5b9084019060808287031215610c6057600080fd5b610c686103ec565b8235610c7381610461565b815260208301358015158114610c8857600080fd5b6020820152610c99604084016104a0565b6040820152606083013582811115610cb057600080fd5b610cbc88828601610554565b6060830152508093505050509250929050565b600060208284031215610ce157600080fd5b610cea826104a0565b9392505050565b6000815180845260005b81811015610d1757602081850181015186830182015201610cfb565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282516001600160a01b03168282015282015115156040808301919091528201516001600160401b0316606080830191909152820151608080830152600090610d8760a0840182610cf1565b949350505050565b6001600160a01b03169052565b60008151808452602080850194506020840160005b83811015610dea57815180516001600160401b031688528301516001600160e01b03168388015260409096019590820190600101610db1565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b84811015610e8457858303601f19018952815180516001600160401b03908116855285820151811686860152604080830151909116908501526060808201519085015260809081015160a091850182905290610e7081860183610cf1565b9a86019a9450505090830190600101610e12565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015610dea578151805188528301518388015260409096019590820190600101610ea6565b602080825282516060838301528051604060808501819052815160c086018190526000949392840191859160e08801905b80841015610f3957845180516001600160a01b031683528701516001600160e01b031687830152938601936001939093019290820190610efe565b5093850151878503607f190160a089015293610f558186610d9c565b945050505050818501519150601f1980858303016040860152610f788284610df5565b9250604086015191508085840301606086015250610f968282610e91565b95945050505050565b600060048410610fbf57634e487b7160e01b600052602160045260246000fd5b83825260406020830152610d876040830184610cf1565b600082825180855260208086019550808260051b84010181860160005b84811015610e8457601f19868403018952815160a0815181865261101982870182610cf1565b91505085820151858203878701526110318282610cf1565b9150506040808301518683038288015261104b8382610cf1565b925050506060808301518187015250608080830151925085820381870152506110748183610cf1565b9a86019a9450505090830190600101610ff3565b602081526110d5602082018351805182526020808201516001600160401b039081169184019190915260408083015182169084015260608083015182169084015260809182015116910152565b600060208301516110e960c0840182610d8f565b5060408301516101808060e08501526111066101a0850183610cf1565b91506060850151601f1980868503016101008701526111258483610cf1565b93506080870151915080868503016101208701526111438483610cf1565b935060a0870151915061115a610140870183610d8f565b60c087015161016087015260e08701519150808685030183870152506111808382610fd6565b9695505050505050565b600181811c9082168061119e57607f821691505b6020821081036111be57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611210576000816000526020600020601f850160051c810160208610156111ed5750805b601f850160051c820191505b8181101561120c578281556001016111f9565b5050505b505050565b81516001600160401b0381111561122e5761122e610347565b6112428161123c845461118a565b846111c4565b602080601f831160018114611277576000841561125f5750858301515b600019600386901b1c1916600185901b17855561120c565b600085815260208120601f198616915b828110156112a657888601518255948401946001909101908401611287565b50858210156112c45787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000818000a", } var CCIPReaderTesterABI = CCIPReaderTesterMetaData.ABI @@ -717,7 +720,7 @@ func (CCIPReaderTesterCCIPSendRequested) Topic() common.Hash { } func (CCIPReaderTesterCommitReportAccepted) Topic() common.Hash { - return common.HexToHash("0x3a3950e13dd607cc37980db0ef14266c40d2bba9c01b2e44bfe549808883095d") + return common.HexToHash("0xd7868a16facbdde7b5c020620136316b3c266fffcb4e1e41cb6a662fe14ba3e1") } func (CCIPReaderTesterExecutionStateChanged) Topic() common.Hash { diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index 2ce6804b3c7..9aa8239761e 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -91,6 +91,14 @@ type InternalTokenPriceUpdate struct { UsdPerToken *big.Int } +type MerkleRoot struct { + SourceChainSelector uint64 + MinSeqNr uint64 + MaxSeqNr uint64 + MerkleRoot [32]byte + OnRampAddress []byte +} + type MultiOCR3BaseConfigInfo struct { ConfigDigest [32]byte F uint8 @@ -114,8 +122,9 @@ type MultiOCR3BaseOCRConfigArgs struct { } type OffRampCommitReport struct { - PriceUpdates InternalPriceUpdates - MerkleRoots []OffRampMerkleRoot + PriceUpdates InternalPriceUpdates + MerkleRoots []MerkleRoot + RmnSignatures []Signature } type OffRampDynamicConfig struct { @@ -126,17 +135,6 @@ type OffRampDynamicConfig struct { MessageValidator common.Address } -type OffRampInterval struct { - Min uint64 - Max uint64 -} - -type OffRampMerkleRoot struct { - SourceChainSelector uint64 - Interval OffRampInterval - MerkleRoot [32]byte -} - type OffRampSourceChainConfig struct { Router common.Address IsEnabled bool @@ -153,19 +151,19 @@ type OffRampSourceChainConfigArgs struct { type OffRampStaticConfig struct { ChainSelector uint64 - RmnProxy common.Address + RmnRemote common.Address TokenAdminRegistry common.Address NonceManager common.Address } -type OffRampUnblessedRoot struct { - SourceChainSelector uint64 - MerkleRoot [32]byte +type Signature struct { + R [32]byte + S [32]byte } var OffRampMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"rmnProxy\",\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"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\":[],\"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\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"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\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structOffRamp.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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\":\"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\":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\":\"address\",\"name\":\"rmnProxy\",\"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[]\"}],\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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\":\"address\",\"name\":\"rmnProxy\",\"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\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"isBlessed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"uint256[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structOffRamp.UnblessedRoot[]\",\"name\":\"rootToReset\",\"type\":\"tuple[]\"}],\"name\":\"resetUnblessedRoots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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: "0x6101206040523480156200001257600080fd5b5060405162006c1a38038062006c1a8339810160408190526200003591620008c7565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000c67565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b815181101562000666576000828281518110620003e557620003e562000a1d565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600660205260408120600181018054919291620004789062000a33565b80601f0160208091040260200160405190810160405280929190818152602001828054620004a69062000a33565b8015620004f75780601f10620004cb57610100808354040283529160200191620004f7565b820191906000526020600020905b815481529060010190602001808311620004d957829003601f168201915b5050505050905060008460600151905081516000036200059e57805160000362000534576040516342bcdf7f60e11b815260040160405180910390fd5b6001830162000544828262000ac4565b508254600160a81b600160e81b031916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620005d9565b8080519060200120828051906020012014620005d95760405163c39a620560e01b81526001600160401b038516600482015260240162000083565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906200064d90869062000b90565b60405180910390a25050505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620006a557620006a56200066a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006d657620006d66200066a565b604052919050565b80516001600160401b0381168114620006f657600080fd5b919050565b6001600160a01b03811681146200071157600080fd5b50565b805163ffffffff81168114620006f657600080fd5b6000601f83601f8401126200073d57600080fd5b825160206001600160401b03808311156200075c576200075c6200066a565b8260051b6200076d838201620006ab565b93845286810183019383810190898611156200078857600080fd5b84890192505b85831015620008ba57825184811115620007a85760008081fd5b89016080601f19828d038101821315620007c25760008081fd5b620007cc62000680565b88840151620007db81620006fb565b81526040620007ec858201620006de565b8a8301526060808601518015158114620008065760008081fd5b838301529385015193898511156200081e5760008081fd5b84860195508f603f8701126200083657600094508485fd5b8a8601519450898511156200084f576200084f6200066a565b620008608b858f88011601620006ab565b93508484528f82868801011115620008785760008081fd5b60005b8581101562000898578681018301518582018d01528b016200087b565b5060009484018b0194909452509182015283525091840191908401906200078e565b9998505050505050505050565b6000806000838503610140811215620008df57600080fd5b6080811215620008ee57600080fd5b620008f862000680565b6200090386620006de565b815260208601516200091581620006fb565b602082015260408601516200092a81620006fb565b604082015260608601516200093f81620006fb565b6060820152935060a0607f19820112156200095957600080fd5b5060405160a081016001600160401b0380821183831017156200098057620009806200066a565b81604052608087015191506200099682620006fb565b818352620009a760a0880162000714565b6020840152620009ba60c0880162000714565b6040840152620009cd60e0880162000714565b60608401526101008701519150620009e582620006fb565b608083018290526101208701519294508083111562000a0357600080fd5b505062000a138682870162000729565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168062000a4857607f821691505b60208210810362000a6957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000abf576000816000526020600020601f850160051c8101602086101562000a9a5750805b601f850160051c820191505b8181101562000abb5782815560010162000aa6565b5050505b505050565b81516001600160401b0381111562000ae05762000ae06200066a565b62000af88162000af1845462000a33565b8462000a6f565b602080601f83116001811462000b30576000841562000b175750858301515b600019600386901b1c1916600185901b17855562000abb565b600085815260208120601f198616915b8281101562000b615788860151825594840194600190910190840162000b40565b508582101562000b805787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000be58162000a33565b8060a089015260c0600183166000811462000c09576001811462000c265762000c58565b60ff19841660c08b015260c083151560051b8b0101945062000c58565b85600052602060002060005b8481101562000c4f5781548c820185015290880190890162000c32565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615f4462000cd6600039600081816102660152612a010152600081816102370152612ef40152600081816102080152818161142b015261196d0152600081816101d801526125f00152600081816117f3015261183f0152615f446000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806385572ffb116100d8578063ccd37ba31161008c578063f2fde38b11610066578063f2fde38b14610583578063f716f99f14610596578063ff888fb1146105a957600080fd5b8063ccd37ba31461050b578063d2a15d3514610550578063e9d68a8e1461056357600080fd5b8063991a5018116100bd578063991a5018146104c5578063a80036b4146104d8578063c673e584146104eb57600080fd5b806385572ffb1461049c5780638da5cb5b146104aa57600080fd5b8063311cd5131161012f5780635e36480c116101145780635e36480c146103785780637437ff9f1461039857806379ba50971461049457600080fd5b8063311cd513146103495780633f4b04aa1461035c57600080fd5b806306285c691161016057806306285c69146101a4578063181f5a77146102ed5780632d04ab761461033657600080fd5b806304666f9c1461017c57806305d938b514610191575b600080fd5b61018f61018a3660046140af565b6105cc565b005b61018f61019f36600461473b565b6105e0565b61029660408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102e49190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103296040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102e491906148b6565b61018f610344366004614961565b610785565b61018f610357366004614a14565b610b5c565b60095460405167ffffffffffffffff90911681526020016102e4565b61038b610386366004614a68565b610bc5565b6040516102e49190614ac5565b6104376040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102e49190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b61018f610c1b565b61018f610177366004614ad3565b6000546040516001600160a01b0390911681526020016102e4565b61018f6104d3366004614b22565b610cd9565b61018f6104e6366004614b96565b610cea565b6104fe6104f9366004614c03565b61105d565b6040516102e49190614c63565b610542610519366004614cd8565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102e4565b61018f61055e366004614d02565b6111bb565b610576610571366004614d77565b611275565b6040516102e49190614d92565b61018f610591366004614de0565b611382565b61018f6105a4366004614e65565b611393565b6105bc6105b7366004614fa3565b6113d5565b60405190151581526020016102e4565b6105d4611496565b6105dd816114f2565b50565b6105e86117f0565b815181518114610624576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8181101561077557600084828151811061064357610643614fbc565b6020026020010151905060008160200151519050600085848151811061066b5761066b614fbc565b60200260200101519050805182146106af576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b828110156107665760008282815181106106ce576106ce614fbc565b602002602001015190508060001461075d57846020015182815181106106f6576106f6614fbc565b60200260200101516080015181101561075d5784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b506001016106b2565b50505050806001019050610627565b506107808383611871565b505050565b600061079387890189615142565b805151519091501515806107ac57508051602001515115155b156108ac5760095460208a01359067ffffffffffffffff8083169116101561086b576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f9261083492910161536a565b600060405180830381600087803b15801561084e57600080fd5b505af1158015610862573d6000803e3d6000fd5b505050506108aa565b8160200151516000036108aa576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610aa5576000826020015182815181106108d4576108d4614fbc565b602002602001015190506000816000015190506108f081611921565b60006108fb82611a23565b602084015151815491925067ffffffffffffffff908116600160a81b9092041614158061093f575060208084015190810151905167ffffffffffffffff9182169116115b1561097f57825160208401516040517feefb0cac00000000000000000000000000000000000000000000000000000000815261075492919060040161537d565b6040830151806109bb576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610a2e5783516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101829052604401610754565b6020808501510151610a419060016153c8565b82547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909255925116600090815260086020908152604080832094835293905291909120429055506001016108af565b507f3a3950e13dd607cc37980db0ef14266c40d2bba9c01b2e44bfe549808883095d81604051610ad591906153f0565b60405180910390a1610b5160008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250611a8a915050565b505050505050505050565b610b9c610b6b8284018461548d565b6040805160008082526020820190925290610b96565b6060815260200190600190039081610b815790505b50611871565b604080516000808252602082019092529050610bbf600185858585866000611a8a565b50505050565b6000610bd3600160046154c2565b6002610be06080856154eb565b67ffffffffffffffff16610bf49190615512565b610bfe8585611e01565b901c166003811115610c1257610c12614a9b565b90505b92915050565b6001546001600160a01b03163314610c755760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610754565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610ce1611496565b6105dd81611e48565b333014610d23576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610d60565b6040805180820190915260008082526020820152815260200190600190039081610d395790505b5060a08501515190915015610d9457610d918460a00151856020015186606001518760000151602001518787611fae565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff1681830152808701518351600094840192610dd09291016148b6565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015610edd576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190610e4a9085906004016155cb565b600060405180830381600087803b158015610e6457600080fd5b505af1925050508015610e75575060015b610edd573d808015610ea3576040519150601f19603f3d011682016040523d82523d6000602084013e610ea8565b606091505b50806040517f09c2532500000000000000000000000000000000000000000000000000000000815260040161075491906148b6565b604086015151158015610ef257506080860151155b80610f09575060608601516001600160a01b03163b155b80610f4957506060860151610f47906001600160a01b03167f85572ffb000000000000000000000000000000000000000000000000000000006120cd565b155b15610f5657505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf9798392610fce92899261138892916004016155de565b6000604051808303816000875af1158015610fed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611015919081019061561a565b50915091508161105357806040517f0a8d6e8c00000000000000000000000000000000000000000000000000000000815260040161075491906148b6565b5050505050505050565b6110a06040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c08201529485529182018054845181840281018401909552808552929385830193909283018282801561114957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161112b575b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156111ab57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161118d575b5050505050815250509050919050565b6111c3611496565b60005b818110156107805760008383838181106111e2576111e2614fbc565b9050604002018036038101906111f891906156b0565b905061120781602001516113d5565b61126c57805167ffffffffffffffff1660009081526008602090815260408083208285018051855290835281842093909355915191519182527f202f1139a3e334b6056064c0e9b19fd07e44a88d8f6e5ded571b24cf8c371f12910160405180910390a15b506001016111c6565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b909204909216948301949094526001840180549394929391840191611302906156e9565b80601f016020809104026020016040519081016040528092919081815260200182805461132e906156e9565b80156111ab5780601f10611350576101008083540402835291602001916111ab565b820191906000526020600020905b81548152906001019060200180831161135e57505050919092525091949350505050565b61138a611496565b6105dd816120e9565b61139b611496565b60005b81518110156113d1576113c98282815181106113bc576113bc614fbc565b602002602001015161219f565b60010161139e565b5050565b6040805180820182523081526020810183815291517f4d61677100000000000000000000000000000000000000000000000000000000815290516001600160a01b039081166004830152915160248201526000917f00000000000000000000000000000000000000000000000000000000000000001690634d61677190604401602060405180830381865afa158015611472573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190615723565b6000546001600160a01b031633146114f05760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610754565b565b60005b81518110156113d157600082828151811061151257611512614fbc565b602002602001015190506000816020015190508067ffffffffffffffff16600003611569576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b0316611591576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff811660009081526006602052604081206001810180549192916115bc906156e9565b80601f01602080910402602001604051908101604052809291908181526020018280546115e8906156e9565b80156116355780601f1061160a57610100808354040283529160200191611635565b820191906000526020600020905b81548152906001019060200180831161161857829003601f168201915b5050505050905060008460600151905081516000036116ed578051600003611670576040516342bcdf7f60e11b815260040160405180910390fd5b6001830161167e8282615788565b5082547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17835560405167ffffffffffffffff851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1611740565b8080519060200120828051906020012014611740576040517fc39a620500000000000000000000000000000000000000000000000000000000815267ffffffffffffffff85166004820152602401610754565b604080860151845487516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171784555167ffffffffffffffff8516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906117d8908690615848565b60405180910390a250505050508060010190506114f5565b467f0000000000000000000000000000000000000000000000000000000000000000146114f0576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006004820152466024820152604401610754565b81516000036118ab576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b845181101561191a576119128582815181106118e0576118e0614fbc565b60200260200101518461190c578583815181106118ff576118ff614fbc565b60200260200101516124e3565b836124e3565b6001016118c2565b5050505050565b6040517f2cbc26bb000000000000000000000000000000000000000000000000000000008152608082901b77ffffffffffffffff000000000000000000000000000000001660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156119bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e09190615723565b156105dd576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff82166004820152602401610754565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610c15576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff84166004820152602401610754565b60ff87811660009081526002602090815260408083208151608081018352815481526001909101548086169382019390935261010083048516918101919091526201000090910490921615156060830152873590611ae98760a4615916565b9050826060015115611b31578451611b02906020615512565b8651611b0f906020615512565b611b1a9060a0615916565b611b249190615916565b611b2e9082615916565b90505b368114611b73576040517f8e1192e100000000000000000000000000000000000000000000000000000000815260048101829052366024820152604401610754565b5081518114611bbb5781516040517f93df584c000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610754565b611bc36117f0565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611c1157611c11614a9b565b6002811115611c2257611c22614a9b565b9052509050600281602001516002811115611c3f57611c3f614a9b565b148015611c935750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611c7b57611c7b614fbc565b6000918252602090912001546001600160a01b031633145b611cc9576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611dab576020820151611ce4906001615929565b60ff16855114611d20576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611d5b576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611d6d929190615942565b604051908190038120611d84918b90602001615952565b604051602081830303815290604052805190602001209050611da98a82888888612c86565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611e26608085615966565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611e70576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611fca57611fca613ec6565b60405190808252806020026020018201604052801561200f57816020015b6040805180820190915260008082526020820152815260200190600190039081611fe85790505b50905060005b87518110156120c15761209c88828151811061203357612033614fbc565b602002602001015188888888888781811061205057612050614fbc565b9050602002810190612062919061598d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9392505050565b8282815181106120ae576120ae614fbc565b6020908102919091010152600101612015565b505b9695505050505050565b60006120d883613238565b8015610c125750610c12838361329c565b336001600160a01b038216036121415760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610754565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff166000036121ca576000604051631b3fab5160e11b815260040161075491906159f2565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361223757606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff90921691909117905561228c565b6060840151600182015460ff620100009091041615159015151461228c576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff84166004820152602401610754565b60a08401518051601f60ff821611156122bb576001604051631b3fab5160e11b815260040161075491906159f2565b612321858560030180548060200260200160405190810160405280929190818152602001828054801561231757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122f9575b5050505050613357565b8560600151156124505761238f8585600201805480602002602001604051908101604052809291908181526020018280548015612317576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116122f9575050505050613357565b608086015180516123a99060028701906020840190613e20565b5080516001850180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff841690810291909117909155601f1015612409576002604051631b3fab5160e11b815260040161075491906159f2565b6040880151612419906003615a0c565b60ff168160ff1611612441576003604051631b3fab5160e11b815260040161075491906159f2565b61244d878360016133c0565b50505b61245c858360026133c0565b81516124719060038601906020850190613e20565b5060408681015160018501805460ff191660ff8316179055875180865560a089015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936124ca938a939260028b01929190615a28565b60405180910390a16124db85613540565b505050505050565b81516124ee81611921565b60006124f982611a23565b602085015151909150600081900361253c576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846040015151811461257a576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561259557612595613ec6565b6040519080825280602002602001820160405280156125be578160200160208202803683370190505b50905060005b82811015612733576000876020015182815181106125e4576125e4614fbc565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461267757805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602401610754565b61270d8186600101805461268a906156e9565b80601f01602080910402602001604051908101604052809291908181526020018280546126b6906156e9565b80156127035780601f106126d857610100808354040283529160200191612703565b820191906000526020600020905b8154815290600101906020018083116126e657829003601f168201915b505050505061355c565b83838151811061271f5761271f614fbc565b6020908102919091010152506001016125c4565b50600061274a858389606001518a6080015161367e565b905080600003612792576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff86166004820152602401610754565b8551151560005b84811015610b515760005a905060008a6020015183815181106127be576127be614fbc565b6020026020010151905060006127dc8a836000015160600151610bc5565b905060008160038111156127f2576127f2614a9b565b148061280f5750600381600381111561280d5761280d614a9b565b145b612867578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612c7e565b841561293757600454600090600160a01b900463ffffffff1661288a88426154c2565b11905080806128aa575060038260038111156128a8576128a8614a9b565b145b6128ec576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c166004820152602401610754565b8b85815181106128fe576128fe614fbc565b6020026020010151600014612931578b858151811061291f5761291f614fbc565b60200260200101518360800181815250505b50612998565b600081600381111561294b5761294b614a9b565b14612998578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209101612857565b81516080015167ffffffffffffffff1615612a875760008160038111156129c1576129c1614a9b565b03612a875781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612a38928f929190600401615ad4565b6020604051808303816000875af1158015612a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7b9190615723565b612a8757505050612c7e565b60008c604001518581518110612a9f57612a9f614fbc565b6020026020010151905080518360a001515114612b03578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e1660048301529091166024820152604401610754565b612b178b84600001516060015160016136d4565b600080612b24858461377c565b91509150612b3b8d866000015160600151846136d4565b8715612bab576003826003811115612b5557612b55614a9b565b03612bab576000846003811115612b6e57612b6e614a9b565b14612bab578451516040517f2b11b8d900000000000000000000000000000000000000000000000000000000815261075491908390600401615b01565b6002826003811115612bbf57612bbf614a9b565b14612c19576003826003811115612bd857612bd8614a9b565b14612c19578451606001516040517f926c5a3e000000000000000000000000000000000000000000000000000000008152610754918f918590600401615b1a565b8451805160609091015167ffffffffffffffff908116908f167fdc8ccbc35e0eebd81239bcd1971fcd53c7eb34034880142a0f43c809a458732f85855a612c60908d6154c2565b604051612c6f93929190615b40565b60405180910390a45050505050505b600101612799565b612c8e613e92565b835160005b81811015611053576000600188868460208110612cb257612cb2614fbc565b612cbf91901a601b615929565b898581518110612cd157612cd1614fbc565b6020026020010151898681518110612ceb57612ceb614fbc565b602002602001015160405160008152602001604052604051612d29949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612d4b573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612dac57612dac614a9b565b6002811115612dbd57612dbd614a9b565b9052509050600181602001516002811115612dda57612dda614a9b565b14612e11576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051859060ff16601f8110612e2857612e28614fbc565b602002015115612e64576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600185826000015160ff16601f8110612e7f57612e7f614fbc565b911515602090920201525050600101612c93565b60408051808201909152600080825260208201526000612eb68760200151613846565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5f9190615b70565b90506001600160a01b0381161580612fa75750612fa56001600160a01b0382167faff2afbf000000000000000000000000000000000000000000000000000000006120cd565b155b15612fe9576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610754565b600454600090819061300b9089908690600160e01b900463ffffffff166138ec565b9150915060008060006130d86040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016130899190615b8d565b60408051601f198184030181529190526020810180516001600160e01b03167f390775370000000000000000000000000000000000000000000000000000000017905287866113886084613a1a565b9250925092508261311757816040517fe1cd550900000000000000000000000000000000000000000000000000000000815260040161075491906148b6565b815160201461315f5781516040517f78ef8024000000000000000000000000000000000000000000000000000000008152602060048201526024810191909152604401610754565b6000828060200190518101906131759190615c5a565b9050866001600160a01b03168c6001600160a01b03161461320a5760006131a68d8a6131a1868a6154c2565b6138ec565b509050868110806131c05750816131bd88836154c2565b14155b15613208576040517fa966e21f000000000000000000000000000000000000000000000000000000008152600481018390526024810188905260448101829052606401610754565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613264827f01ffc9a70000000000000000000000000000000000000000000000000000000061329c565b8015610c155750613295827fffffffff0000000000000000000000000000000000000000000000000000000061329c565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d91506000519050828015613340575060208210155b801561334c5750600081115b979650505050505050565b60005b81518110156107805760ff83166000908152600360205260408120835190919084908490811061338c5761338c614fbc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff1916905560010161335a565b60005b82518160ff161015610bbf576000838260ff16815181106133e6576133e6614fbc565b602002602001015190506000600281111561340357613403614a9b565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561344257613442614a9b565b14613463576004604051631b3fab5160e11b815260040161075491906159f2565b6001600160a01b0381166134a3576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156134c9576134c9614a9b565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561352657613526614a9b565b0217905550905050508061353990615c73565b90506133c3565b60ff81166105dd576009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936135a2937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615c92565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976135eb9794969395929491939101615cc5565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016136229190615dd7565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b60008061368c858585613b40565b9050613697816113d5565b6136a55760009150506136cc565b67ffffffffffffffff86166000908152600860209081526040808320938352929052205490505b949350505050565b600060026136e36080856154eb565b67ffffffffffffffff166136f79190615512565b905060006137058585611e01565b905081613714600160046154c2565b901b19168183600381111561372b5761372b614a9b565b67ffffffffffffffff871660009081526007602052604081209190921b9290921791829161375a608088615966565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b4906137c09087908790600401615e37565b600060405180830381600087803b1580156137da57600080fd5b505af19250505080156137eb575060015b61382a573d808015613819576040519150601f19603f3d011682016040523d82523d6000602084013e61381e565b606091505b5060039250905061383f565b50506040805160208101909152600081526002905b9250929050565b6000815160201461388557816040517f8d666f6000000000000000000000000000000000000000000000000000000000815260040161075491906148b6565b60008280602001905181019061389b9190615c5a565b90506001600160a01b038111806138b3575061040081105b15610c1557826040517f8d666f6000000000000000000000000000000000000000000000000000000000815260040161075491906148b6565b60008060008060006139668860405160240161391791906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a082310000000000000000000000000000000000000000000000000000000017905288886113886084613a1a565b925092509250826139a557816040517fe1cd550900000000000000000000000000000000000000000000000000000000815260040161075491906148b6565b60208251146139ed5781516040517f78ef8024000000000000000000000000000000000000000000000000000000008152602060048201526024810191909152604401610754565b81806020019051810190613a019190615c5a565b613a0b82886154c2565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff811115613a3d57613a3d613ec6565b6040519080825280601f01601f191660200182016040528015613a67576020820181803683370190505b509150863b613a9a577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613acd577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613b06577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613b295750835b808352806000602085013e50955095509592505050565b8251825160009190818303613b81576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613b9557506101018111155b613bb2576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613bdc576040516309bde33960e01b815260040160405180910390fd5b80600003613c095786600081518110613bf757613bf7614fbc565b60200260200101519350505050613dd8565b60008167ffffffffffffffff811115613c2457613c24613ec6565b604051908082528060200260200182016040528015613c4d578160200160208202803683370190505b50905060008080805b85811015613d775760006001821b8b811603613cb15788851015613c9a578c5160018601958e918110613c8b57613c8b614fbc565b60200260200101519050613cd3565b8551600185019487918110613c8b57613c8b614fbc565b8b5160018401938d918110613cc857613cc8614fbc565b602002602001015190505b600089861015613d03578d5160018701968f918110613cf457613cf4614fbc565b60200260200101519050613d25565b8651600186019588918110613d1a57613d1a614fbc565b602002602001015190505b82851115613d46576040516309bde33960e01b815260040160405180910390fd5b613d508282613ddf565b878481518110613d6257613d62614fbc565b60209081029190910101525050600101613c56565b506001850382148015613d8957508683145b8015613d9457508581145b613db1576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613dc657613dc6614fbc565b60200260200101519750505050505050505b9392505050565b6000818310613df757613df28284613dfd565b610c12565b610c1283835b604080516001602082015290810183905260608101829052600090608001613660565b828054828255906000526020600020908101928215613e82579160200282015b82811115613e82578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613e40565b50613e8e929150613eb1565b5090565b604051806103e00160405280601f906020820280368337509192915050565b5b80821115613e8e5760008155600101613eb2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613eff57613eff613ec6565b60405290565b60405160a0810167ffffffffffffffff81118282101715613eff57613eff613ec6565b60405160c0810167ffffffffffffffff81118282101715613eff57613eff613ec6565b6040805190810167ffffffffffffffff81118282101715613eff57613eff613ec6565b6040516060810167ffffffffffffffff81118282101715613eff57613eff613ec6565b604051601f8201601f1916810167ffffffffffffffff81118282101715613fba57613fba613ec6565b604052919050565b600067ffffffffffffffff821115613fdc57613fdc613ec6565b5060051b60200190565b6001600160a01b03811681146105dd57600080fd5b803567ffffffffffffffff8116811461401357600080fd5b919050565b80151581146105dd57600080fd5b803561401381614018565b600067ffffffffffffffff82111561404b5761404b613ec6565b50601f01601f191660200190565b600082601f83011261406a57600080fd5b813561407d61407882614031565b613f91565b81815284602083860101111561409257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208083850312156140c257600080fd5b823567ffffffffffffffff808211156140da57600080fd5b818501915085601f8301126140ee57600080fd5b81356140fc61407882613fc2565b81815260059190911b8301840190848101908883111561411b57600080fd5b8585015b838110156141c1578035858111156141375760008081fd5b86016080818c03601f190181131561414f5760008081fd5b614157613edc565b8983013561416481613fe6565b81526040614173848201613ffb565b8b83015260608085013561418681614018565b8383015292840135928984111561419f57600091508182fd5b6141ad8f8d86880101614059565b90830152508552505091860191860161411f565b5098975050505050505050565b600060a082840312156141e057600080fd5b6141e8613f05565b9050813581526141fa60208301613ffb565b602082015261420b60408301613ffb565b604082015261421c60608301613ffb565b606082015261422d60808301613ffb565b608082015292915050565b803561401381613fe6565b600082601f83011261425457600080fd5b8135602061426461407883613fc2565b82815260059290921b8401810191818101908684111561428357600080fd5b8286015b848110156120c157803567ffffffffffffffff808211156142a85760008081fd5b818901915060a080601f19848d030112156142c35760008081fd5b6142cb613f05565b87840135838111156142dd5760008081fd5b6142eb8d8a83880101614059565b825250604080850135848111156143025760008081fd5b6143108e8b83890101614059565b8a84015250606080860135858111156143295760008081fd5b6143378f8c838a0101614059565b8385015250608091508186013581840152508285013592508383111561435d5760008081fd5b61436b8d8a85880101614059565b908201528652505050918301918301614287565b6000610140828403121561439257600080fd5b61439a613f28565b90506143a683836141ce565b815260a082013567ffffffffffffffff808211156143c357600080fd5b6143cf85838601614059565b602084015260c08401359150808211156143e857600080fd5b6143f485838601614059565b604084015261440560e08501614238565b6060840152610100840135608084015261012084013591508082111561442a57600080fd5b5061443784828501614243565b60a08301525092915050565b600082601f83011261445457600080fd5b8135602061446461407883613fc2565b82815260059290921b8401810191818101908684111561448357600080fd5b8286015b848110156120c157803567ffffffffffffffff8111156144a75760008081fd5b6144b58986838b010161437f565b845250918301918301614487565b600082601f8301126144d457600080fd5b813560206144e461407883613fc2565b82815260059290921b8401810191818101908684111561450357600080fd5b8286015b848110156120c157803567ffffffffffffffff8082111561452757600080fd5b818901915089603f83011261453b57600080fd5b8582013561454b61407882613fc2565b81815260059190911b830160400190878101908c83111561456b57600080fd5b604085015b838110156145a45780358581111561458757600080fd5b6145968f6040838a0101614059565b845250918901918901614570565b50875250505092840192508301614507565b600082601f8301126145c757600080fd5b813560206145d761407883613fc2565b8083825260208201915060208460051b8701019350868411156145f957600080fd5b602086015b848110156120c157803583529183019183016145fe565b600082601f83011261462657600080fd5b8135602061463661407883613fc2565b82815260059290921b8401810191818101908684111561465557600080fd5b8286015b848110156120c157803567ffffffffffffffff8082111561467a5760008081fd5b818901915060a080601f19848d030112156146955760008081fd5b61469d613f05565b6146a8888501613ffb565b8152604080850135848111156146be5760008081fd5b6146cc8e8b83890101614443565b8a84015250606080860135858111156146e55760008081fd5b6146f38f8c838a01016144c3565b838501525060809150818601358581111561470e5760008081fd5b61471c8f8c838a01016145b6565b9184019190915250919093013590830152508352918301918301614659565b600080604080848603121561474f57600080fd5b833567ffffffffffffffff8082111561476757600080fd5b61477387838801614615565b945060209150818601358181111561478a57600080fd5b8601601f8101881361479b57600080fd5b80356147a961407882613fc2565b81815260059190911b8201840190848101908a8311156147c857600080fd5b8584015b83811015614854578035868111156147e45760008081fd5b8501603f81018d136147f65760008081fd5b8781013561480661407882613fc2565b81815260059190911b82018a0190898101908f8311156148265760008081fd5b928b01925b828410156148445783358252928a0192908a019061482b565b86525050509186019186016147cc565b50809750505050505050509250929050565b60005b83811015614881578181015183820152602001614869565b50506000910152565b600081518084526148a2816020860160208601614866565b601f01601f19169290920160200192915050565b602081526000610c12602083018461488a565b8060608101831015610c1557600080fd5b60008083601f8401126148ec57600080fd5b50813567ffffffffffffffff81111561490457600080fd5b60208301915083602082850101111561383f57600080fd5b60008083601f84011261492e57600080fd5b50813567ffffffffffffffff81111561494657600080fd5b6020830191508360208260051b850101111561383f57600080fd5b60008060008060008060008060e0898b03121561497d57600080fd5b6149878a8a6148c9565b9750606089013567ffffffffffffffff808211156149a457600080fd5b6149b08c838d016148da565b909950975060808b01359150808211156149c957600080fd5b6149d58c838d0161491c565b909750955060a08b01359150808211156149ee57600080fd5b506149fb8b828c0161491c565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215614a2957600080fd5b614a3385856148c9565b9250606084013567ffffffffffffffff811115614a4f57600080fd5b614a5b868287016148da565b9497909650939450505050565b60008060408385031215614a7b57600080fd5b614a8483613ffb565b9150614a9260208401613ffb565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614ac157614ac1614a9b565b9052565b60208101610c158284614ab1565b600060208284031215614ae557600080fd5b813567ffffffffffffffff811115614afc57600080fd5b820160a08185031215613dd857600080fd5b803563ffffffff8116811461401357600080fd5b600060a08284031215614b3457600080fd5b614b3c613f05565b8235614b4781613fe6565b8152614b5560208401614b0e565b6020820152614b6660408401614b0e565b6040820152614b7760608401614b0e565b60608201526080830135614b8a81613fe6565b60808201529392505050565b600080600060408486031215614bab57600080fd5b833567ffffffffffffffff80821115614bc357600080fd5b614bcf8783880161437f565b94506020860135915080821115614be557600080fd5b50614a5b8682870161491c565b803560ff8116811461401357600080fd5b600060208284031215614c1557600080fd5b610c1282614bf2565b60008151808452602080850194506020840160005b83811015614c585781516001600160a01b031687529582019590820190600101614c33565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614cb260e0840182614c1e565b90506040840151601f198483030160c0850152614ccf8282614c1e565b95945050505050565b60008060408385031215614ceb57600080fd5b614cf483613ffb565b946020939093013593505050565b60008060208385031215614d1557600080fd5b823567ffffffffffffffff80821115614d2d57600080fd5b818501915085601f830112614d4157600080fd5b813581811115614d5057600080fd5b8660208260061b8501011115614d6557600080fd5b60209290920196919550909350505050565b600060208284031215614d8957600080fd5b610c1282613ffb565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526136cc60a084018261488a565b600060208284031215614df257600080fd5b8135613dd881613fe6565b600082601f830112614e0e57600080fd5b81356020614e1e61407883613fc2565b8083825260208201915060208460051b870101935086841115614e4057600080fd5b602086015b848110156120c1578035614e5881613fe6565b8352918301918301614e45565b60006020808385031215614e7857600080fd5b823567ffffffffffffffff80821115614e9057600080fd5b818501915085601f830112614ea457600080fd5b8135614eb261407882613fc2565b81815260059190911b83018401908481019088831115614ed157600080fd5b8585015b838110156141c157803585811115614eec57600080fd5b860160c0818c03601f19011215614f035760008081fd5b614f0b613f28565b8882013581526040614f1e818401614bf2565b8a8301526060614f2f818501614bf2565b8284015260809150614f42828501614026565b9083015260a08381013589811115614f5a5760008081fd5b614f688f8d83880101614dfd565b838501525060c0840135915088821115614f825760008081fd5b614f908e8c84870101614dfd565b9083015250845250918601918601614ed5565b600060208284031215614fb557600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b038116811461401357600080fd5b600082601f830112614ffa57600080fd5b8135602061500a61407883613fc2565b82815260069290921b8401810191818101908684111561502957600080fd5b8286015b848110156120c157604081890312156150465760008081fd5b61504e613f4b565b61505782613ffb565b8152615064858301614fd2565b8186015283529183019160400161502d565b600082601f83011261508757600080fd5b8135602061509761407883613fc2565b82815260079290921b840181019181810190868411156150b657600080fd5b8286015b848110156120c15780880360808112156150d45760008081fd5b6150dc613f6e565b6150e583613ffb565b8152604080601f19840112156150fb5760008081fd5b615103613f4b565b9250615110878501613ffb565b835261511d818501613ffb565b83880152818701929092526060830135918101919091528352918301916080016150ba565b6000602080838503121561515557600080fd5b823567ffffffffffffffff8082111561516d57600080fd5b8185019150604080838803121561518357600080fd5b61518b613f4b565b83358381111561519a57600080fd5b84016040818a0312156151ac57600080fd5b6151b4613f4b565b8135858111156151c357600080fd5b8201601f81018b136151d457600080fd5b80356151e261407882613fc2565b81815260069190911b8201890190898101908d83111561520157600080fd5b928a01925b828410156152515787848f03121561521e5760008081fd5b615226613f4b565b843561523181613fe6565b815261523e858d01614fd2565b818d0152825292870192908a0190615206565b84525050508187013593508484111561526957600080fd5b6152758a858401614fe9565b818801528252508385013591508282111561528f57600080fd5b61529b88838601615076565b85820152809550505050505092915050565b805160408084528151848201819052600092602091908201906060870190855b8181101561530457835180516001600160a01b031684528501516001600160e01b03168584015292840192918501916001016152cd565b50508583015187820388850152805180835290840192506000918401905b8083101561535e578351805167ffffffffffffffff1683528501516001600160e01b031685830152928401926001929092019190850190615322565b50979650505050505050565b602081526000610c1260208301846152ad565b67ffffffffffffffff8316815260608101613dd86020830184805167ffffffffffffffff908116835260209182015116910152565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156153e9576153e96153b2565b5092915050565b60006020808352606084516040808487015261540f60608701836152ad565b87850151878203601f19016040890152805180835290860193506000918601905b808310156141c157845167ffffffffffffffff81511683528781015161546f89850182805167ffffffffffffffff908116835260209182015116910152565b50840151828701529386019360019290920191608090910190615430565b60006020828403121561549f57600080fd5b813567ffffffffffffffff8111156154b657600080fd5b6136cc84828501614615565b81810381811115610c1557610c156153b2565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff80841680615506576155066154d5565b92169190910692915050565b8082028115828204841417610c1557610c156153b2565b805182526000602067ffffffffffffffff81840151168185015260408084015160a0604087015261555d60a087018261488a565b905060608501518682036060880152615576828261488a565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561535e57835180516001600160a01b0316835286015186830152928501926001929092019190840190615599565b602081526000610c126020830184615529565b6080815260006155f16080830187615529565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561562f57600080fd5b835161563a81614018565b602085015190935067ffffffffffffffff81111561565757600080fd5b8401601f8101861361566857600080fd5b805161567661407882614031565b81815287602083850101111561568b57600080fd5b61569c826020830160208601614866565b809450505050604084015190509250925092565b6000604082840312156156c257600080fd5b6156ca613f4b565b6156d383613ffb565b8152602083013560208201528091505092915050565b600181811c908216806156fd57607f821691505b60208210810361571d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561573557600080fd5b8151613dd881614018565b601f821115610780576000816000526020600020601f850160051c810160208610156157695750805b601f850160051c820191505b818110156124db57828155600101615775565b815167ffffffffffffffff8111156157a2576157a2613ec6565b6157b6816157b084546156e9565b84615740565b602080601f8311600181146157eb57600084156157d35750858301515b600019600386901b1c1916600185901b1785556124db565b600085815260208120601f198616915b8281101561581a578886015182559484019460019091019084016157fb565b50858210156158385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c1660608501525060018085016080808601526000815461589a816156e9565b8060a089015260c060018316600081146158bb57600181146158d757615907565b60ff19841660c08b015260c083151560051b8b01019450615907565b85600052602060002060005b848110156158fe5781548c82018501529088019089016158e3565b8b0160c0019550505b50929998505050505050505050565b80820180821115610c1557610c156153b2565b60ff8181168382160190811115610c1557610c156153b2565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff80841680615981576159816154d5565b92169190910492915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126159c257600080fd5b83018035915067ffffffffffffffff8211156159dd57600080fd5b60200191503681900382131561383f57600080fd5b6020810160058310615a0657615a06614a9b565b91905290565b60ff81811683821602908116908181146153e9576153e96153b2565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615a805784546001600160a01b031683526001948501949284019201615a5b565b50508481036060860152865180825290820192508187019060005b81811015615ac05782516001600160a01b031685529383019391830191600101615a9b565b50505060ff851660808501525090506120c3565b600067ffffffffffffffff808616835280851660208401525060606040830152614ccf606083018461488a565b8281526040602082015260006136cc604083018461488a565b67ffffffffffffffff848116825283166020820152606081016136cc6040830184614ab1565b615b4a8185614ab1565b606060208201526000615b60606083018561488a565b9050826040830152949350505050565b600060208284031215615b8257600080fd5b8151613dd881613fe6565b6020815260008251610100806020850152615bac61012085018361488a565b91506020850151615bc9604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615c0360a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615c20848361488a565b935060c08701519150808685030160e0870152615c3d848361488a565b935060e08701519150808685030183870152506120c3838261488a565b600060208284031215615c6c57600080fd5b5051919050565b600060ff821660ff8103615c8957615c896153b2565b60010192915050565b848152600067ffffffffffffffff8086166020840152808516604084015250608060608301526120c3608083018461488a565b86815260c060208201526000615cde60c083018861488a565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015615dca57601f19868403018952815160a08151818652615d5b8287018261488a565b9150508582015185820387870152615d73828261488a565b91505060408083015186830382880152615d8d838261488a565b92505050606080830151818701525060808083015192508582038187015250615db6818361488a565b9a86019a9450505090830190600101615d35565b5090979650505050505050565b602081526000610c126020830184615d18565b60008282518085526020808601955060208260051b8401016020860160005b84811015615dca57601f19868403018952615e2583835161488a565b98840198925090830190600101615e09565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e0850152615e9f61018085018361488a565b915060408601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08086850301610100870152615edc848361488a565b935060608801519150615efb6101208701836001600160a01b03169052565b60808801518387015260a0880151925080868503016101608701525050615f228282615d18565b9150508281036020840152614ccf8185615dea56fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNRemote\",\"name\":\"rmnRemote\",\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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\":[],\"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\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"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\":[],\"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\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"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\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"}],\"internalType\":\"structMerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structSignature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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\":\"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\":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\":\"contractIRMNRemote\",\"name\":\"rmnRemote\",\"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[]\"}],\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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\":\"contractIRMNRemote\",\"name\":\"rmnRemote\",\"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[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"uint256[][]\"}],\"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\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"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: "0x6101206040523480156200001257600080fd5b5060405162006a6b38038062006a6b8339810160408190526200003591620008c7565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000c67565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b815181101562000666576000828281518110620003e557620003e562000a1d565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600660205260408120600181018054919291620004789062000a33565b80601f0160208091040260200160405190810160405280929190818152602001828054620004a69062000a33565b8015620004f75780601f10620004cb57610100808354040283529160200191620004f7565b820191906000526020600020905b815481529060010190602001808311620004d957829003601f168201915b5050505050905060008460600151905081516000036200059e57805160000362000534576040516342bcdf7f60e11b815260040160405180910390fd5b6001830162000544828262000ac4565b508254600160a81b600160e81b031916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620005d9565b8080519060200120828051906020012014620005d95760405163c39a620560e01b81526001600160401b038516600482015260240162000083565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906200064d90869062000b90565b60405180910390a25050505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620006a557620006a56200066a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006d657620006d66200066a565b604052919050565b80516001600160401b0381168114620006f657600080fd5b919050565b6001600160a01b03811681146200071157600080fd5b50565b805163ffffffff81168114620006f657600080fd5b6000601f83601f8401126200073d57600080fd5b825160206001600160401b03808311156200075c576200075c6200066a565b8260051b6200076d838201620006ab565b93845286810183019383810190898611156200078857600080fd5b84890192505b85831015620008ba57825184811115620007a85760008081fd5b89016080601f19828d038101821315620007c25760008081fd5b620007cc62000680565b88840151620007db81620006fb565b81526040620007ec858201620006de565b8a8301526060808601518015158114620008065760008081fd5b838301529385015193898511156200081e5760008081fd5b84860195508f603f8701126200083657600094508485fd5b8a8601519450898511156200084f576200084f6200066a565b620008608b858f88011601620006ab565b93508484528f82868801011115620008785760008081fd5b60005b8581101562000898578681018301518582018d01528b016200087b565b5060009484018b0194909452509182015283525091840191908401906200078e565b9998505050505050505050565b6000806000838503610140811215620008df57600080fd5b6080811215620008ee57600080fd5b620008f862000680565b6200090386620006de565b815260208601516200091581620006fb565b602082015260408601516200092a81620006fb565b604082015260608601516200093f81620006fb565b6060820152935060a0607f19820112156200095957600080fd5b5060405160a081016001600160401b0380821183831017156200098057620009806200066a565b81604052608087015191506200099682620006fb565b818352620009a760a0880162000714565b6020840152620009ba60c0880162000714565b6040840152620009cd60e0880162000714565b60608401526101008701519150620009e582620006fb565b608083018290526101208701519294508083111562000a0357600080fd5b505062000a138682870162000729565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168062000a4857607f821691505b60208210810362000a6957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000abf576000816000526020600020601f850160051c8101602086101562000a9a5750805b601f850160051c820191505b8181101562000abb5782815560010162000aa6565b5050505b505050565b81516001600160401b0381111562000ae05762000ae06200066a565b62000af88162000af1845462000a33565b8462000a6f565b602080601f83116001811462000b30576000841562000b175750858301515b600019600386901b1c1916600185901b17855562000abb565b600085815260208120601f198616915b8281101562000b615788860151825594840194600190910190840162000b40565b508582101562000b805787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000be58162000a33565b8060a089015260c0600183166000811462000c09576001811462000c265762000c58565b60ff19841660c08b015260c083151560051b8b0101945062000c58565b85600052602060002060005b8481101562000c4f5781548c820185015290880190890162000c32565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615d9c62000ccf6000396000818161024001526127f40152600081816102110152612ce70152600081816101e2015261077f0152600081816101b201526123e30152600081816116f1015261173d0152615d9c6000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b610169610164366004613e8a565b610570565b005b610169610179366004614516565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be9190614691565b61016961031e36600461473c565b610729565b6101696103313660046147ef565b610bd5565b60095460405167ffffffffffffffff90911681526020016102be565b610365610360366004614843565b610c3e565b6040516102be91906148a0565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610c94565b6101696101513660046148ae565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad3660046148fd565b610d52565b6101696104c0366004614971565b610d63565b6104d86104d33660046149de565b6110d6565b6040516102be9190614a3e565b61051c6104f3366004614ab3565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614add565b611234565b6040516102be9190614af8565b610169610558366004614b46565b611341565b61016961056b366004614bcb565b611352565b610578611394565b610581816113f0565b50565b61058c6116ee565b8151815181146105c8576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156107195760008482815181106105e7576105e7614d09565b6020026020010151905060008160200151519050600085848151811061060f5761060f614d09565b6020026020010151905080518214610653576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8281101561070a57600082828151811061067257610672614d09565b6020026020010151905080600014610701578460200151828151811061069a5761069a614d09565b6020026020010151608001518110156107015784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610656565b505050508060010190506105cb565b50610724838361176f565b505050565b600061073787890189614f3c565b602081015151909150156107e357602081015160408083015190517f30dfc3080000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926330dfc308926107b2926004016151a0565b60006040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050505b805151511515806107f957508051602001515115155b156108f95760095460208a01359067ffffffffffffffff808316911610156108b8576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f92610881929101615282565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b505050506108f7565b8160200151516000036108f7576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610b1e5760008260200151828151811061092157610921614d09565b60200260200101519050600081600001519050600061093f8261181f565b6020840151815491925067ffffffffffffffff908116600160a81b909204161415806109865750826040015167ffffffffffffffff16836020015167ffffffffffffffff16115b156109fb57825160408051808201825260208087015167ffffffffffffffff908116835283880151811691830191825292517feefb0cac0000000000000000000000000000000000000000000000000000000081529383166004850152905182166024840152511660448201526064016106f8565b606083015180610a37576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610aaa5783516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106f8565b6040840151610aba9060016152ab565b82547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909255925116600090815260086020908152604080832094835293905291909120429055506001016108fc565b507fd7868a16facbdde7b5c020620136316b3c266fffcb4e1e41cb6a662fe14ba3e181604051610b4e91906152d3565b60405180910390a1610bca60008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250611886915050565b505050505050505050565b610c15610be48284018461532b565b6040805160008082526020820190925290610c0f565b6060815260200190600190039081610bfa5790505b5061176f565b604080516000808252602082019092529050610c38600185858585866000611886565b50505050565b6000610c4c60016004615360565b6002610c59608085615389565b67ffffffffffffffff16610c6d91906153b0565b610c778585611bfd565b901c166003811115610c8b57610c8b614876565b90505b92915050565b6001546001600160a01b03163314610cee5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106f8565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610d5a611394565b61058181611c44565b333014610d9c576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610dd9565b6040805180820190915260008082526020820152815260200190600190039081610db25790505b5060a08501515190915015610e0d57610e0a8460a00151856020015186606001518760000151602001518787611daa565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff1681830152808701518351600094840192610e49929101614691565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015610f56576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190610ec3908590600401615469565b600060405180830381600087803b158015610edd57600080fd5b505af1925050508015610eee575060015b610f56573d808015610f1c576040519150601f19603f3d011682016040523d82523d6000602084013e610f21565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106f89190614691565b604086015151158015610f6b57506080860151155b80610f82575060608601516001600160a01b03163b155b80610fc257506060860151610fc0906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611ec9565b155b15610fcf57505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf9798392611047928992611388929160040161547c565b6000604051808303816000875af1158015611066573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261108e91908101906154b8565b5091509150816110cc57806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106f89190614691565b5050505050505050565b6111196040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c0820152948552918201805484518184028101840190955280855292938583019390928301828280156111c257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111a4575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561122457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611206575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916112c19061554e565b80601f01602080910402602001604051908101604052809291908181526020018280546112ed9061554e565b80156112245780601f1061130f57610100808354040283529160200191611224565b820191906000526020600020905b81548152906001019060200180831161131d57505050919092525091949350505050565b611349611394565b61058181611ee5565b61135a611394565b60005b81518110156113905761138882828151811061137b5761137b614d09565b6020026020010151611f9b565b60010161135d565b5050565b6000546001600160a01b031633146113ee5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106f8565b565b60005b815181101561139057600082828151811061141057611410614d09565b602002602001015190506000816020015190508067ffffffffffffffff16600003611467576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b031661148f576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff811660009081526006602052604081206001810180549192916114ba9061554e565b80601f01602080910402602001604051908101604052809291908181526020018280546114e69061554e565b80156115335780601f1061150857610100808354040283529160200191611533565b820191906000526020600020905b81548152906001019060200180831161151657829003601f168201915b5050505050905060008460600151905081516000036115eb57805160000361156e576040516342bcdf7f60e11b815260040160405180910390fd5b6001830161157c82826155d0565b5082547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17835560405167ffffffffffffffff851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a161163e565b808051906020012082805190602001201461163e576040517fc39a620500000000000000000000000000000000000000000000000000000000815267ffffffffffffffff851660048201526024016106f8565b604080860151845487516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171784555167ffffffffffffffff8516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906116d6908690615690565b60405180910390a250505050508060010190506113f3565b467f0000000000000000000000000000000000000000000000000000000000000000146113ee576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106f8565b81516000036117a9576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b8451811015611818576118108582815181106117de576117de614d09565b60200260200101518461180a578583815181106117fd576117fd614d09565b60200260200101516122df565b836122df565b6001016117c0565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610c8e576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106f8565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906118e58760a461575e565b905082606001511561192d5784516118fe9060206153b0565b865161190b9060206153b0565b6119169060a061575e565b611920919061575e565b61192a908261575e565b90505b36811461196f576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106f8565b50815181146119b75781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106f8565b6119bf6116ee565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611a0d57611a0d614876565b6002811115611a1e57611a1e614876565b9052509050600281602001516002811115611a3b57611a3b614876565b148015611a8f5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611a7757611a77614d09565b6000918252602090912001546001600160a01b031633145b611ac5576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611ba7576020820151611ae0906001615771565b60ff16855114611b1c576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611b57576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611b6992919061578a565b604051908190038120611b80918b9060200161579a565b604051602081830303815290604052805190602001209050611ba58a82888888612a79565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611c226080856157ae565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611c6c576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611dc657611dc6613ca1565b604051908082528060200260200182016040528015611e0b57816020015b6040805180820190915260008082526020820152815260200190600190039081611de45790505b50905060005b8751811015611ebd57611e98888281518110611e2f57611e2f614d09565b6020026020010151888888888887818110611e4c57611e4c614d09565b9050602002810190611e5e91906157d5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c8692505050565b828281518110611eaa57611eaa614d09565b6020908102919091010152600101611e11565b505b9695505050505050565b6000611ed48361302b565b8015610c8b5750610c8b838361308f565b336001600160a01b03821603611f3d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106f8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611fc6576000604051631b3fab5160e11b81526004016106f8919061583a565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361203357606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055612088565b6060840151600182015460ff6201000090910416151590151514612088576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106f8565b60a08401518051601f60ff821611156120b7576001604051631b3fab5160e11b81526004016106f8919061583a565b61211d858560030180548060200260200160405190810160405280929190818152602001828054801561211357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120f5575b505050505061314a565b85606001511561224c5761218b8585600201805480602002602001604051908101604052809291908181526020018280548015612113576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116120f557505050505061314a565b608086015180516121a59060028701906020840190613bfb565b5080516001850180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff841690810291909117909155601f1015612205576002604051631b3fab5160e11b81526004016106f8919061583a565b6040880151612215906003615854565b60ff168160ff161161223d576003604051631b3fab5160e11b81526004016106f8919061583a565b612249878360016131b3565b50505b612258858360026131b3565b815161226d9060038601906020850190613bfb565b5060408681015160018501805460ff191660ff8316179055875180865560a089015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936122c6938a939260028b01929190615870565b60405180910390a16122d785613333565b505050505050565b815160006122ec8261181f565b602085015151909150600081900361232f576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846040015151811461236d576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561238857612388613ca1565b6040519080825280602002602001820160405280156123b1578160200160208202803683370190505b50905060005b82811015612526576000876020015182815181106123d7576123d7614d09565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461246a57805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106f8565b6125008186600101805461247d9061554e565b80601f01602080910402602001604051908101604052809291908181526020018280546124a99061554e565b80156124f65780601f106124cb576101008083540402835291602001916124f6565b820191906000526020600020905b8154815290600101906020018083116124d957829003601f168201915b505050505061334f565b83838151811061251257612512614d09565b6020908102919091010152506001016123b7565b50600061253d858389606001518a60800151613471565b905080600003612585576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff861660048201526024016106f8565b8551151560005b84811015610bca5760005a905060008a6020015183815181106125b1576125b1614d09565b6020026020010151905060006125cf8a836000015160600151610c3e565b905060008160038111156125e5576125e5614876565b14806126025750600381600381111561260057612600614876565b145b61265a578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612a71565b841561272a57600454600090600160a01b900463ffffffff1661267d8842615360565b119050808061269d5750600382600381111561269b5761269b614876565b145b6126df576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106f8565b8b85815181106126f1576126f1614d09565b6020026020010151600014612724578b858151811061271257612712614d09565b60200260200101518360800181815250505b5061278b565b600081600381111561273e5761273e614876565b1461278b578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910161264a565b81516080015167ffffffffffffffff161561287a5760008160038111156127b4576127b4614876565b0361287a5781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae9261282b928f92919060040161591c565b6020604051808303816000875af115801561284a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286e9190615949565b61287a57505050612a71565b60008c60400151858151811061289257612892614d09565b6020026020010151905080518360a0015151146128f6578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106f8565b61290a8b84600001516060015160016134af565b6000806129178584613557565b9150915061292e8d866000015160600151846134af565b871561299e57600382600381111561294857612948614876565b0361299e57600084600381111561296157612961614876565b1461299e578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106f891908390600401615966565b60028260038111156129b2576129b2614876565b14612a0c5760038260038111156129cb576129cb614876565b14612a0c578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106f8918f91859060040161597f565b8451805160609091015167ffffffffffffffff908116908f167fdc8ccbc35e0eebd81239bcd1971fcd53c7eb34034880142a0f43c809a458732f85855a612a53908d615360565b604051612a62939291906159a5565b60405180910390a45050505050505b60010161258c565b612a81613c6d565b835160005b818110156110cc576000600188868460208110612aa557612aa5614d09565b612ab291901a601b615771565b898581518110612ac457612ac4614d09565b6020026020010151898681518110612ade57612ade614d09565b602002602001015160405160008152602001604052604051612b1c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612b3e573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612b9f57612b9f614876565b6002811115612bb057612bb0614876565b9052509050600181602001516002811115612bcd57612bcd614876565b14612c04576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051859060ff16601f8110612c1b57612c1b614d09565b602002015115612c57576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600185826000015160ff16601f8110612c7257612c72614d09565b911515602090920201525050600101612a86565b60408051808201909152600080825260208201526000612ca98760200151613621565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5291906159d5565b90506001600160a01b0381161580612d9a5750612d986001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611ec9565b155b15612ddc576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f8565b6004546000908190612dfe9089908690600160e01b900463ffffffff166136c7565b915091506000806000612ecb6040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612e7c91906159f2565b60408051601f198184030181529190526020810180516001600160e01b03167f3907753700000000000000000000000000000000000000000000000000000000179052878661138860846137f5565b92509250925082612f0a57816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614691565b8151602014612f525781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b600082806020019051810190612f689190615abf565b9050866001600160a01b03168c6001600160a01b031614612ffd576000612f998d8a612f94868a615360565b6136c7565b50905086811080612fb3575081612fb08883615360565b14155b15612ffb576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106f8565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613057827f01ffc9a70000000000000000000000000000000000000000000000000000000061308f565b8015610c8e5750613088827fffffffff0000000000000000000000000000000000000000000000000000000061308f565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d91506000519050828015613133575060208210155b801561313f5750600081115b979650505050505050565b60005b81518110156107245760ff83166000908152600360205260408120835190919084908490811061317f5761317f614d09565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff1916905560010161314d565b60005b82518160ff161015610c38576000838260ff16815181106131d9576131d9614d09565b60200260200101519050600060028111156131f6576131f6614876565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561323557613235614876565b14613256576004604051631b3fab5160e11b81526004016106f8919061583a565b6001600160a01b038116613296576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156132bc576132bc614876565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561331957613319614876565b0217905550905050508061332c90615ad8565b90506131b6565b60ff8116610581576009805467ffffffffffffffff1916905550565b815160208082015160409283015192516000938493613395937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615af7565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976133de9794969395929491939101615b2a565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016134159190615c2f565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b60008061347f85858561391b565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b600060026134be608085615389565b67ffffffffffffffff166134d291906153b0565b905060006134e08585611bfd565b9050816134ef60016004615360565b901b19168183600381111561350657613506614876565b67ffffffffffffffff871660009081526007602052604081209190921b929092179182916135356080886157ae565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b49061359b9087908790600401615c8f565b600060405180830381600087803b1580156135b557600080fd5b505af19250505080156135c6575060015b613605573d8080156135f4576040519150601f19603f3d011682016040523d82523d6000602084013e6135f9565b606091505b5060039250905061361a565b50506040805160208101909152600081526002905b9250929050565b6000815160201461366057816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614691565b6000828060200190518101906136769190615abf565b90506001600160a01b0381118061368e575061040081105b15610c8e57826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614691565b6000806000806000613741886040516024016136f291906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a0823100000000000000000000000000000000000000000000000000000000179052888861138860846137f5565b9250925092508261378057816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614691565b60208251146137c85781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b818060200190518101906137dc9190615abf565b6137e68288615360565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff81111561381857613818613ca1565b6040519080825280601f01601f191660200182016040528015613842576020820181803683370190505b509150863b613875577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a858110156138a8577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b85900360408104810387106138e1577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156139045750835b808352806000602085013e50955095509592505050565b825182516000919081830361395c576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610101821180159061397057506101018111155b61398d576040516309bde33960e01b815260040160405180910390fd5b600019828201016101008111156139b7576040516309bde33960e01b815260040160405180910390fd5b806000036139e457866000815181106139d2576139d2614d09565b60200260200101519350505050613bb3565b60008167ffffffffffffffff8111156139ff576139ff613ca1565b604051908082528060200260200182016040528015613a28578160200160208202803683370190505b50905060008080805b85811015613b525760006001821b8b811603613a8c5788851015613a75578c5160018601958e918110613a6657613a66614d09565b60200260200101519050613aae565b8551600185019487918110613a6657613a66614d09565b8b5160018401938d918110613aa357613aa3614d09565b602002602001015190505b600089861015613ade578d5160018701968f918110613acf57613acf614d09565b60200260200101519050613b00565b8651600186019588918110613af557613af5614d09565b602002602001015190505b82851115613b21576040516309bde33960e01b815260040160405180910390fd5b613b2b8282613bba565b878481518110613b3d57613b3d614d09565b60209081029190910101525050600101613a31565b506001850382148015613b6457508683145b8015613b6f57508581145b613b8c576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613ba157613ba1614d09565b60200260200101519750505050505050505b9392505050565b6000818310613bd257613bcd8284613bd8565b610c8b565b610c8b83835b604080516001602082015290810183905260608101829052600090608001613453565b828054828255906000526020600020908101928215613c5d579160200282015b82811115613c5d578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613c1b565b50613c69929150613c8c565b5090565b604051806103e00160405280601f906020820280368337509192915050565b5b80821115613c695760008155600101613c8d565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613cda57613cda613ca1565b60405290565b60405160a0810167ffffffffffffffff81118282101715613cda57613cda613ca1565b60405160c0810167ffffffffffffffff81118282101715613cda57613cda613ca1565b6040805190810167ffffffffffffffff81118282101715613cda57613cda613ca1565b6040516060810167ffffffffffffffff81118282101715613cda57613cda613ca1565b604051601f8201601f1916810167ffffffffffffffff81118282101715613d9557613d95613ca1565b604052919050565b600067ffffffffffffffff821115613db757613db7613ca1565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff81168114613dee57600080fd5b919050565b801515811461058157600080fd5b8035613dee81613df3565b600067ffffffffffffffff821115613e2657613e26613ca1565b50601f01601f191660200190565b600082601f830112613e4557600080fd5b8135613e58613e5382613e0c565b613d6c565b818152846020838601011115613e6d57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613e9d57600080fd5b823567ffffffffffffffff80821115613eb557600080fd5b818501915085601f830112613ec957600080fd5b8135613ed7613e5382613d9d565b81815260059190911b83018401908481019088831115613ef657600080fd5b8585015b83811015613f9c57803585811115613f125760008081fd5b86016080818c03601f1901811315613f2a5760008081fd5b613f32613cb7565b89830135613f3f81613dc1565b81526040613f4e848201613dd6565b8b830152606080850135613f6181613df3565b83830152928401359289841115613f7a57600091508182fd5b613f888f8d86880101613e34565b908301525085525050918601918601613efa565b5098975050505050505050565b600060a08284031215613fbb57600080fd5b613fc3613ce0565b905081358152613fd560208301613dd6565b6020820152613fe660408301613dd6565b6040820152613ff760608301613dd6565b606082015261400860808301613dd6565b608082015292915050565b8035613dee81613dc1565b600082601f83011261402f57600080fd5b8135602061403f613e5383613d9d565b82815260059290921b8401810191818101908684111561405e57600080fd5b8286015b84811015611ebd57803567ffffffffffffffff808211156140835760008081fd5b818901915060a080601f19848d0301121561409e5760008081fd5b6140a6613ce0565b87840135838111156140b85760008081fd5b6140c68d8a83880101613e34565b825250604080850135848111156140dd5760008081fd5b6140eb8e8b83890101613e34565b8a84015250606080860135858111156141045760008081fd5b6141128f8c838a0101613e34565b838501525060809150818601358184015250828501359250838311156141385760008081fd5b6141468d8a85880101613e34565b908201528652505050918301918301614062565b6000610140828403121561416d57600080fd5b614175613d03565b90506141818383613fa9565b815260a082013567ffffffffffffffff8082111561419e57600080fd5b6141aa85838601613e34565b602084015260c08401359150808211156141c357600080fd5b6141cf85838601613e34565b60408401526141e060e08501614013565b6060840152610100840135608084015261012084013591508082111561420557600080fd5b506142128482850161401e565b60a08301525092915050565b600082601f83011261422f57600080fd5b8135602061423f613e5383613d9d565b82815260059290921b8401810191818101908684111561425e57600080fd5b8286015b84811015611ebd57803567ffffffffffffffff8111156142825760008081fd5b6142908986838b010161415a565b845250918301918301614262565b600082601f8301126142af57600080fd5b813560206142bf613e5383613d9d565b82815260059290921b840181019181810190868411156142de57600080fd5b8286015b84811015611ebd57803567ffffffffffffffff8082111561430257600080fd5b818901915089603f83011261431657600080fd5b85820135614326613e5382613d9d565b81815260059190911b830160400190878101908c83111561434657600080fd5b604085015b8381101561437f5780358581111561436257600080fd5b6143718f6040838a0101613e34565b84525091890191890161434b565b508752505050928401925083016142e2565b600082601f8301126143a257600080fd5b813560206143b2613e5383613d9d565b8083825260208201915060208460051b8701019350868411156143d457600080fd5b602086015b84811015611ebd57803583529183019183016143d9565b600082601f83011261440157600080fd5b81356020614411613e5383613d9d565b82815260059290921b8401810191818101908684111561443057600080fd5b8286015b84811015611ebd57803567ffffffffffffffff808211156144555760008081fd5b818901915060a080601f19848d030112156144705760008081fd5b614478613ce0565b614483888501613dd6565b8152604080850135848111156144995760008081fd5b6144a78e8b8389010161421e565b8a84015250606080860135858111156144c05760008081fd5b6144ce8f8c838a010161429e565b83850152506080915081860135858111156144e95760008081fd5b6144f78f8c838a0101614391565b9184019190915250919093013590830152508352918301918301614434565b600080604080848603121561452a57600080fd5b833567ffffffffffffffff8082111561454257600080fd5b61454e878388016143f0565b945060209150818601358181111561456557600080fd5b8601601f8101881361457657600080fd5b8035614584613e5382613d9d565b81815260059190911b8201840190848101908a8311156145a357600080fd5b8584015b8381101561462f578035868111156145bf5760008081fd5b8501603f81018d136145d15760008081fd5b878101356145e1613e5382613d9d565b81815260059190911b82018a0190898101908f8311156146015760008081fd5b928b01925b8284101561461f5783358252928a0192908a0190614606565b86525050509186019186016145a7565b50809750505050505050509250929050565b60005b8381101561465c578181015183820152602001614644565b50506000910152565b6000815180845261467d816020860160208601614641565b601f01601f19169290920160200192915050565b602081526000610c8b6020830184614665565b8060608101831015610c8e57600080fd5b60008083601f8401126146c757600080fd5b50813567ffffffffffffffff8111156146df57600080fd5b60208301915083602082850101111561361a57600080fd5b60008083601f84011261470957600080fd5b50813567ffffffffffffffff81111561472157600080fd5b6020830191508360208260051b850101111561361a57600080fd5b60008060008060008060008060e0898b03121561475857600080fd5b6147628a8a6146a4565b9750606089013567ffffffffffffffff8082111561477f57600080fd5b61478b8c838d016146b5565b909950975060808b01359150808211156147a457600080fd5b6147b08c838d016146f7565b909750955060a08b01359150808211156147c957600080fd5b506147d68b828c016146f7565b999c989b50969995989497949560c00135949350505050565b60008060006080848603121561480457600080fd5b61480e85856146a4565b9250606084013567ffffffffffffffff81111561482a57600080fd5b614836868287016146b5565b9497909650939450505050565b6000806040838503121561485657600080fd5b61485f83613dd6565b915061486d60208401613dd6565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b6004811061489c5761489c614876565b9052565b60208101610c8e828461488c565b6000602082840312156148c057600080fd5b813567ffffffffffffffff8111156148d757600080fd5b820160a08185031215613bb357600080fd5b803563ffffffff81168114613dee57600080fd5b600060a0828403121561490f57600080fd5b614917613ce0565b823561492281613dc1565b8152614930602084016148e9565b6020820152614941604084016148e9565b6040820152614952606084016148e9565b6060820152608083013561496581613dc1565b60808201529392505050565b60008060006040848603121561498657600080fd5b833567ffffffffffffffff8082111561499e57600080fd5b6149aa8783880161415a565b945060208601359150808211156149c057600080fd5b50614836868287016146f7565b803560ff81168114613dee57600080fd5b6000602082840312156149f057600080fd5b610c8b826149cd565b60008151808452602080850194506020840160005b83811015614a335781516001600160a01b031687529582019590820190600101614a0e565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614a8d60e08401826149f9565b90506040840151601f198483030160c0850152614aaa82826149f9565b95945050505050565b60008060408385031215614ac657600080fd5b614acf83613dd6565b946020939093013593505050565b600060208284031215614aef57600080fd5b610c8b82613dd6565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526134a760a0840182614665565b600060208284031215614b5857600080fd5b8135613bb381613dc1565b600082601f830112614b7457600080fd5b81356020614b84613e5383613d9d565b8083825260208201915060208460051b870101935086841115614ba657600080fd5b602086015b84811015611ebd578035614bbe81613dc1565b8352918301918301614bab565b60006020808385031215614bde57600080fd5b823567ffffffffffffffff80821115614bf657600080fd5b818501915085601f830112614c0a57600080fd5b8135614c18613e5382613d9d565b81815260059190911b83018401908481019088831115614c3757600080fd5b8585015b83811015613f9c57803585811115614c5257600080fd5b860160c0818c03601f19011215614c695760008081fd5b614c71613d03565b8882013581526040614c848184016149cd565b8a8301526060614c958185016149cd565b8284015260809150614ca8828501613e01565b9083015260a08381013589811115614cc05760008081fd5b614cce8f8d83880101614b63565b838501525060c0840135915088821115614ce85760008081fd5b614cf68e8c84870101614b63565b9083015250845250918601918601614c3b565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b0381168114613dee57600080fd5b600082601f830112614d4757600080fd5b81356020614d57613e5383613d9d565b82815260069290921b84018101918181019086841115614d7657600080fd5b8286015b84811015611ebd5760408189031215614d935760008081fd5b614d9b613d26565b614da482613dd6565b8152614db1858301614d1f565b81860152835291830191604001614d7a565b600082601f830112614dd457600080fd5b81356020614de4613e5383613d9d565b82815260059290921b84018101918181019086841115614e0357600080fd5b8286015b84811015611ebd57803567ffffffffffffffff80821115614e285760008081fd5b818901915060a080601f19848d03011215614e435760008081fd5b614e4b613ce0565b614e56888501613dd6565b81526040614e65818601613dd6565b898301526060614e76818701613dd6565b828401526080915081860135818401525082850135925083831115614e9b5760008081fd5b614ea98d8a85880101613e34565b908201528652505050918301918301614e07565b600082601f830112614ece57600080fd5b81356020614ede613e5383613d9d565b82815260069290921b84018101918181019086841115614efd57600080fd5b8286015b84811015611ebd5760408189031215614f1a5760008081fd5b614f22613d26565b813581528482013585820152835291830191604001614f01565b60006020808385031215614f4f57600080fd5b823567ffffffffffffffff80821115614f6757600080fd5b9084019060608287031215614f7b57600080fd5b614f83613d49565b823582811115614f9257600080fd5b83016040818903811315614fa557600080fd5b614fad613d26565b823585811115614fbc57600080fd5b8301601f81018b13614fcd57600080fd5b8035614fdb613e5382613d9d565b81815260069190911b8201890190898101908d831115614ffa57600080fd5b928a01925b8284101561504a5785848f0312156150175760008081fd5b61501f613d26565b843561502a81613dc1565b8152615037858d01614d1f565b818d0152825292850192908a0190614fff565b84525050508287013591508482111561506257600080fd5b61506e8a838501614d36565b8188015283525050828401358281111561508757600080fd5b61509388828601614dc3565b858301525060408301359350818411156150ac57600080fd5b6150b887858501614ebd565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561515757858303601f190189528151805167ffffffffffffffff908116855285820151811686860152604080830151909116908501526060808201519085015260809081015160a09185018290529061514381860183614665565b9a86019a94505050908301906001016150e4565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614a33578151805188528301518388015260409096019590820190600101615179565b6040815260006151b360408301856150c7565b8281036020840152614aaa8185615164565b805160408084528151848201819052600092602091908201906060870190855b8181101561521c57835180516001600160a01b031684528501516001600160e01b03168584015292840192918501916001016151e5565b50508583015187820388850152805180835290840192506000918401905b80831015615276578351805167ffffffffffffffff1683528501516001600160e01b03168583015292840192600192909201919085019061523a565b50979650505050505050565b602081526000610c8b60208301846151c5565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156152cc576152cc615295565b5092915050565b6020815260008251606060208401526152ef60808401826151c5565b90506020840151601f198085840301604086015261530d83836150c7565b9250604086015191508085840301606086015250614aaa8282615164565b60006020828403121561533d57600080fd5b813567ffffffffffffffff81111561535457600080fd5b6134a7848285016143f0565b81810381811115610c8e57610c8e615295565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff808416806153a4576153a4615373565b92169190910692915050565b8082028115828204841417610c8e57610c8e615295565b805182526000602067ffffffffffffffff81840151168185015260408084015160a060408701526153fb60a0870182614665565b9050606085015186820360608801526154148282614665565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561527657835180516001600160a01b0316835286015186830152928501926001929092019190840190615437565b602081526000610c8b60208301846153c7565b60808152600061548f60808301876153c7565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b6000806000606084860312156154cd57600080fd5b83516154d881613df3565b602085015190935067ffffffffffffffff8111156154f557600080fd5b8401601f8101861361550657600080fd5b8051615514613e5382613e0c565b81815287602083850101111561552957600080fd5b61553a826020830160208601614641565b809450505050604084015190509250925092565b600181811c9082168061556257607f821691505b60208210810361558257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610724576000816000526020600020601f850160051c810160208610156155b15750805b601f850160051c820191505b818110156122d7578281556001016155bd565b815167ffffffffffffffff8111156155ea576155ea613ca1565b6155fe816155f8845461554e565b84615588565b602080601f831160018114615633576000841561561b5750858301515b600019600386901b1c1916600185901b1785556122d7565b600085815260208120601f198616915b8281101561566257888601518255948401946001909101908401615643565b50858210156156805787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c166060850152506001808501608080860152600081546156e28161554e565b8060a089015260c06001831660008114615703576001811461571f5761574f565b60ff19841660c08b015260c083151560051b8b0101945061574f565b85600052602060002060005b848110156157465781548c820185015290880190890161572b565b8b0160c0019550505b50929998505050505050505050565b80820180821115610c8e57610c8e615295565b60ff8181168382160190811115610c8e57610c8e615295565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff808416806157c9576157c9615373565b92169190910492915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261580a57600080fd5b83018035915067ffffffffffffffff82111561582557600080fd5b60200191503681900382131561361a57600080fd5b602081016005831061584e5761584e614876565b91905290565b60ff81811683821602908116908181146152cc576152cc615295565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156158c85784546001600160a01b0316835260019485019492840192016158a3565b50508481036060860152865180825290820192508187019060005b818110156159085782516001600160a01b0316855293830193918301916001016158e3565b50505060ff85166080850152509050611ebf565b600067ffffffffffffffff808616835280851660208401525060606040830152614aaa6060830184614665565b60006020828403121561595b57600080fd5b8151613bb381613df3565b8281526040602082015260006134a76040830184614665565b67ffffffffffffffff848116825283166020820152606081016134a7604083018461488c565b6159af818561488c565b6060602082015260006159c56060830185614665565b9050826040830152949350505050565b6000602082840312156159e757600080fd5b8151613bb381613dc1565b6020815260008251610100806020850152615a11610120850183614665565b91506020850151615a2e604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615a6860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615a858483614665565b935060c08701519150808685030160e0870152615aa28483614665565b935060e0870151915080868503018387015250611ebf8382614665565b600060208284031215615ad157600080fd5b5051919050565b600060ff821660ff8103615aee57615aee615295565b60010192915050565b848152600067ffffffffffffffff808616602084015280851660408401525060806060830152611ebf6080830184614665565b86815260c060208201526000615b4360c0830188614665565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b8481101561515757601f19868403018952815160a08151818652615bc082870182614665565b9150508582015185820387870152615bd88282614665565b91505060408083015186830382880152615bf28382614665565b92505050606080830151818701525060808083015192508582038187015250615c1b8183614665565b9a86019a9450505090830190600101615b9a565b602081526000610c8b6020830184615b7d565b60008282518085526020808601955060208260051b8401016020860160005b8481101561515757601f19868403018952615c7d838351614665565b98840198925090830190600101615c61565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e0850152615cf7610180850183614665565b915060408601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08086850301610100870152615d348483614665565b935060608801519150615d536101208701836001600160a01b03169052565b60808801518387015260a0880151925080868503016101608701525050615d7a8282615b7d565b9150508281036020840152614aaa8185615c4256fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI @@ -456,28 +454,6 @@ func (_OffRamp *OffRampCallerSession) GetStaticConfig() (OffRampStaticConfig, er return _OffRamp.Contract.GetStaticConfig(&_OffRamp.CallOpts) } -func (_OffRamp *OffRampCaller) IsBlessed(opts *bind.CallOpts, root [32]byte) (bool, error) { - var out []interface{} - err := _OffRamp.contract.Call(opts, &out, "isBlessed", root) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -func (_OffRamp *OffRampSession) IsBlessed(root [32]byte) (bool, error) { - return _OffRamp.Contract.IsBlessed(&_OffRamp.CallOpts, root) -} - -func (_OffRamp *OffRampCallerSession) IsBlessed(root [32]byte) (bool, error) { - return _OffRamp.Contract.IsBlessed(&_OffRamp.CallOpts, root) -} - func (_OffRamp *OffRampCaller) LatestConfigDetails(opts *bind.CallOpts, ocrPluginType uint8) (MultiOCR3BaseOCRConfig, error) { var out []interface{} err := _OffRamp.contract.Call(opts, &out, "latestConfigDetails", ocrPluginType) @@ -616,18 +592,6 @@ func (_OffRamp *OffRampTransactorSession) ManuallyExecute(reports []InternalExec return _OffRamp.Contract.ManuallyExecute(&_OffRamp.TransactOpts, reports, gasLimitOverrides) } -func (_OffRamp *OffRampTransactor) ResetUnblessedRoots(opts *bind.TransactOpts, rootToReset []OffRampUnblessedRoot) (*types.Transaction, error) { - return _OffRamp.contract.Transact(opts, "resetUnblessedRoots", rootToReset) -} - -func (_OffRamp *OffRampSession) ResetUnblessedRoots(rootToReset []OffRampUnblessedRoot) (*types.Transaction, error) { - return _OffRamp.Contract.ResetUnblessedRoots(&_OffRamp.TransactOpts, rootToReset) -} - -func (_OffRamp *OffRampTransactorSession) ResetUnblessedRoots(rootToReset []OffRampUnblessedRoot) (*types.Transaction, error) { - return _OffRamp.Contract.ResetUnblessedRoots(&_OffRamp.TransactOpts, rootToReset) -} - func (_OffRamp *OffRampTransactor) SetDynamicConfig(opts *bind.TransactOpts, dynamicConfig OffRampDynamicConfig) (*types.Transaction, error) { return _OffRamp.contract.Transact(opts, "setDynamicConfig", dynamicConfig) } @@ -2322,7 +2286,7 @@ func (OffRampAlreadyAttempted) Topic() common.Hash { } func (OffRampCommitReportAccepted) Topic() common.Hash { - return common.HexToHash("0x3a3950e13dd607cc37980db0ef14266c40d2bba9c01b2e44bfe549808883095d") + return common.HexToHash("0xd7868a16facbdde7b5c020620136316b3c266fffcb4e1e41cb6a662fe14ba3e1") } func (OffRampConfigSet) Topic() common.Hash { @@ -2388,8 +2352,6 @@ type OffRampInterface interface { GetStaticConfig(opts *bind.CallOpts) (OffRampStaticConfig, error) - IsBlessed(opts *bind.CallOpts, root [32]byte) (bool, error) - LatestConfigDetails(opts *bind.CallOpts, ocrPluginType uint8) (MultiOCR3BaseOCRConfig, error) Owner(opts *bind.CallOpts) (common.Address, error) @@ -2408,8 +2370,6 @@ type OffRampInterface interface { ManuallyExecute(opts *bind.TransactOpts, reports []InternalExecutionReportSingleChain, gasLimitOverrides [][]*big.Int) (*types.Transaction, error) - ResetUnblessedRoots(opts *bind.TransactOpts, rootToReset []OffRampUnblessedRoot) (*types.Transaction, error) - SetDynamicConfig(opts *bind.TransactOpts, dynamicConfig OffRampDynamicConfig) (*types.Transaction, error) SetOCR3Configs(opts *bind.TransactOpts, ocrConfigArgs []MultiOCR3BaseOCRConfigArgs) (*types.Transaction, error) diff --git a/core/gethwrappers/ccip/generated/report_codec/report_codec.go b/core/gethwrappers/ccip/generated/report_codec/report_codec.go index 0080cfc419d..0223cf94c60 100644 --- a/core/gethwrappers/ccip/generated/report_codec/report_codec.go +++ b/core/gethwrappers/ccip/generated/report_codec/report_codec.go @@ -78,25 +78,28 @@ type InternalTokenPriceUpdate struct { UsdPerToken *big.Int } -type OffRampCommitReport struct { - PriceUpdates InternalPriceUpdates - MerkleRoots []OffRampMerkleRoot +type MerkleRoot struct { + SourceChainSelector uint64 + MinSeqNr uint64 + MaxSeqNr uint64 + MerkleRoot [32]byte + OnRampAddress []byte } -type OffRampInterval struct { - Min uint64 - Max uint64 +type OffRampCommitReport struct { + PriceUpdates InternalPriceUpdates + MerkleRoots []MerkleRoot + RmnSignatures []Signature } -type OffRampMerkleRoot struct { - SourceChainSelector uint64 - Interval OffRampInterval - MerkleRoot [32]byte +type Signature struct { + R [32]byte + S [32]byte } var ReportCodecMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structOffRamp.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportDecoded\",\"type\":\"event\"},{\"anonymous\":false,\"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\"}],\"indexed\":false,\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"report\",\"type\":\"tuple[]\"}],\"name\":\"ExecuteReportDecoded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"decodeCommitReport\",\"outputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"internalType\":\"structOffRamp.Interval\",\"name\":\"interval\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structOffRamp.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"}],\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"decodeExecuteReport\",\"outputs\":[{\"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\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5061126d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636fb349561461003b578063f816ec6014610064575b600080fd5b61004e61004936600461022c565b610084565b60405161005b91906104ed565b60405180910390f35b61007761007236600461022c565b6100a0565b60405161005b91906107a6565b60608180602001905181019061009a9190610de1565b92915050565b604080516080810182526060918101828152828201839052815260208101919091528180602001905181019061009a91906110f7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715610128576101286100d6565b60405290565b60405160c0810167ffffffffffffffff81118282101715610128576101286100d6565b6040805190810167ffffffffffffffff81118282101715610128576101286100d6565b6040516060810167ffffffffffffffff81118282101715610128576101286100d6565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156101de576101de6100d6565b604052919050565b600067ffffffffffffffff821115610200576102006100d6565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006020828403121561023e57600080fd5b813567ffffffffffffffff81111561025557600080fd5b8201601f8101841361026657600080fd5b8035610279610274826101e6565b610197565b81815285602083850101111561028e57600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b838110156102c75781810151838201526020016102af565b50506000910152565b600081518084526102e88160208601602086016102ac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b848110156103ea577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403018952815160a0815181865261037b828701826102d0565b915050858201518582038787015261039382826102d0565b915050604080830151868303828801526103ad83826102d0565b925050506060808301518187015250608080830151925085820381870152506103d681836102d0565b9a86019a9450505090830190600101610337565b5090979650505050505050565b6000828251808552602080860195506005818360051b8501018287016000805b868110156104a2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe088850381018c5283518051808752908801908887019080891b88018a01865b8281101561048b57858a83030184526104798286516102d0565b948c0194938c0193915060010161045f565b509e8a019e97505050938701935050600101610417565b50919998505050505050505050565b60008151808452602080850194506020840160005b838110156104e2578151875295820195908201906001016104c6565b509495945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156106d5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815160a0860167ffffffffffffffff8083511688528883015160a08a8a015282815180855260c08b01915060c08160051b8c010194508b8301925060005b8181101561067e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408c87030183528351805180518852868f820151168f890152866040820151166040890152866060820151166060890152866080820151166080890152508d81015161014060a08901526106016101408901826102d0565b9050604082015188820360c08a015261061a82826102d0565b915050606082015161064460e08a018273ffffffffffffffffffffffffffffffffffffffff169052565b50608082015161010089015260a0820151915087810361012089015261066a818361031a565b97505050928c0192918c0191600101610581565b50505050506040820151878203604089015261069a82826103f7565b915050606082015187820360608901526106b482826104b1565b60809384015198909301979097525094509285019290850190600101610514565b5092979650505050505050565b60008151808452602080850194506020840160005b838110156104e2578151805167ffffffffffffffff1688528301517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1683880152604090960195908201906001016106f7565b600081518084526020808501945080840160005b838110156104e2578151805167ffffffffffffffff90811689528482015180518216868b0152850151166040808a0191909152015160608801526080909601959082019060010161075a565b6000602080835283516040808386015260a0850182516040606088015281815180845260c0890191508683019350600092505b80831015610836578351805173ffffffffffffffffffffffffffffffffffffffff1683528701517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16878301529286019260019290920191908401906107d9565b50938501518785037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00160808901529361087081866106e2565b9450505050508185015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160408501526108b08183610746565b95945050505050565b600067ffffffffffffffff8211156108d3576108d36100d6565b5060051b60200190565b805167ffffffffffffffff811681146108f557600080fd5b919050565b600060a0828403121561090c57600080fd5b610914610105565b905081518152610926602083016108dd565b6020820152610937604083016108dd565b6040820152610948606083016108dd565b6060820152610959608083016108dd565b608082015292915050565b600082601f83011261097557600080fd5b8151610983610274826101e6565b81815284602083860101111561099857600080fd5b6109a98260208301602087016102ac565b949350505050565b805173ffffffffffffffffffffffffffffffffffffffff811681146108f557600080fd5b600082601f8301126109e657600080fd5b815160206109f6610274836108b9565b82815260059290921b84018101918181019086841115610a1557600080fd5b8286015b84811015610b2f57805167ffffffffffffffff80821115610a3a5760008081fd5b818901915060a0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d03011215610a735760008081fd5b610a7b610105565b8784015183811115610a8d5760008081fd5b610a9b8d8a83880101610964565b82525060408085015184811115610ab25760008081fd5b610ac08e8b83890101610964565b8a8401525060608086015185811115610ad95760008081fd5b610ae78f8c838a0101610964565b83850152506080915081860151818401525082850151925083831115610b0d5760008081fd5b610b1b8d8a85880101610964565b908201528652505050918301918301610a19565b509695505050505050565b600082601f830112610b4b57600080fd5b81516020610b5b610274836108b9565b82815260059290921b84018101918181019086841115610b7a57600080fd5b8286015b84811015610b2f57805167ffffffffffffffff80821115610b9f5760008081fd5b8189019150610140807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d03011215610bd95760008081fd5b610be161012e565b610bed8c8986016108fa565b815260c084015183811115610c025760008081fd5b610c108d8a83880101610964565b898301525060e084015183811115610c285760008081fd5b610c368d8a83880101610964565b604083015250610c4961010085016109b1565b60608201526101208401516080820152908301519082821115610c6c5760008081fd5b610c7a8c89848701016109d5565b60a08201528652505050918301918301610b7e565b600082601f830112610ca057600080fd5b81516020610cb0610274836108b9565b82815260059290921b84018101918181019086841115610ccf57600080fd5b8286015b84811015610b2f57805167ffffffffffffffff80821115610cf357600080fd5b818901915089603f830112610d0757600080fd5b85820151610d17610274826108b9565b81815260059190911b830160400190878101908c831115610d3757600080fd5b604085015b83811015610d7057805185811115610d5357600080fd5b610d628f6040838a0101610964565b845250918901918901610d3c565b50875250505092840192508301610cd3565b600082601f830112610d9357600080fd5b81516020610da3610274836108b9565b8083825260208201915060208460051b870101935086841115610dc557600080fd5b602086015b84811015610b2f5780518352918301918301610dca565b60006020808385031215610df457600080fd5b825167ffffffffffffffff80821115610e0c57600080fd5b818501915085601f830112610e2057600080fd5b8151610e2e610274826108b9565b81815260059190911b83018401908481019088831115610e4d57600080fd5b8585015b83811015610f4757805185811115610e6857600080fd5b860160a0818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215610e9d5760008081fd5b610ea5610105565b610eb08983016108dd565b815260408083015188811115610ec65760008081fd5b610ed48e8c83870101610b3a565b8b8401525060608084015189811115610eed5760008081fd5b610efb8f8d83880101610c8f565b8385015250608091508184015189811115610f165760008081fd5b610f248f8d83880101610d82565b918401919091525060a09290920151918101919091528352918601918601610e51565b5098975050505050505050565b80517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811681146108f557600080fd5b600082601f830112610f9157600080fd5b81516020610fa1610274836108b9565b82815260069290921b84018101918181019086841115610fc057600080fd5b8286015b84811015610b2f5760408189031215610fdd5760008081fd5b610fe5610151565b610fee826108dd565b8152610ffb858301610f54565b81860152835291830191604001610fc4565b600082601f83011261101e57600080fd5b8151602061102e610274836108b9565b82815260079290921b8401810191818101908684111561104d57600080fd5b8286015b84811015610b2f57808803608081121561106b5760008081fd5b611073610174565b61107c836108dd565b81526040807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840112156110b05760008081fd5b6110b8610151565b92506110c58785016108dd565b83526110d28185016108dd565b8388015281870192909252606083015191810191909152835291830191608001611051565b6000602080838503121561110a57600080fd5b825167ffffffffffffffff8082111561112257600080fd5b8185019150604080838803121561113857600080fd5b611140610151565b83518381111561114f57600080fd5b84016040818a03121561116157600080fd5b611169610151565b81518581111561117857600080fd5b8201601f81018b1361118957600080fd5b8051611197610274826108b9565b81815260069190911b8201890190898101908d8311156111b657600080fd5b928a01925b828410156112045787848f0312156111d35760008081fd5b6111db610151565b6111e4856109b1565b81526111f18c8601610f54565b818d0152825292870192908a01906111bb565b84525050508187015193508484111561121c57600080fd5b6112288a858401610f80565b818801528252508385015191508282111561124257600080fd5b61124e8883860161100d565b8582015280955050505050509291505056fea164736f6c6343000818000a", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"}],\"internalType\":\"structMerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structSignature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportDecoded\",\"type\":\"event\"},{\"anonymous\":false,\"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\"}],\"indexed\":false,\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"report\",\"type\":\"tuple[]\"}],\"name\":\"ExecuteReportDecoded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"decodeCommitReport\",\"outputs\":[{\"components\":[{\"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[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"}],\"internalType\":\"structMerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structSignature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"decodeExecuteReport\",\"outputs\":[{\"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\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b506113e6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636fb349561461003b578063f816ec6014610064575b600080fd5b61004e610049366004610231565b610084565b60405161005b91906104f2565b60405180910390f35b610077610072366004610231565b6100a0565b60405161005b9190610835565b60608180602001905181019061009a9190610e8d565b92915050565b6040805160a08101825260608082018181526080830182905282526020808301829052928201528251909161009a9184018101908401611250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561012d5761012d6100db565b60405290565b60405160c0810167ffffffffffffffff8111828210171561012d5761012d6100db565b6040805190810167ffffffffffffffff8111828210171561012d5761012d6100db565b6040516060810167ffffffffffffffff8111828210171561012d5761012d6100db565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156101e3576101e36100db565b604052919050565b600067ffffffffffffffff821115610205576102056100db565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006020828403121561024357600080fd5b813567ffffffffffffffff81111561025a57600080fd5b8201601f8101841361026b57600080fd5b803561027e610279826101eb565b61019c565b81815285602083850101111561029357600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b838110156102cc5781810151838201526020016102b4565b50506000910152565b600081518084526102ed8160208601602086016102b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b848110156103ef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403018952815160a08151818652610380828701826102d5565b915050858201518582038787015261039882826102d5565b915050604080830151868303828801526103b283826102d5565b925050506060808301518187015250608080830151925085820381870152506103db81836102d5565b9a86019a945050509083019060010161033c565b5090979650505050505050565b6000828251808552602080860195506005818360051b8501018287016000805b868110156104a7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe088850381018c5283518051808752908801908887019080891b88018a01865b8281101561049057858a830301845261047e8286516102d5565b948c0194938c01939150600101610464565b509e8a019e9750505093870193505060010161041c565b50919998505050505050505050565b60008151808452602080850194506020840160005b838110156104e7578151875295820195908201906001016104cb565b509495945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156106da577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815160a0860167ffffffffffffffff8083511688528883015160a08a8a015282815180855260c08b01915060c08160051b8c010194508b8301925060005b81811015610683577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408c87030183528351805180518852868f820151168f890152866040820151166040890152866060820151166060890152866080820151166080890152508d81015161014060a08901526106066101408901826102d5565b9050604082015188820360c08a015261061f82826102d5565b915050606082015161064960e08a018273ffffffffffffffffffffffffffffffffffffffff169052565b50608082015161010089015260a0820151915087810361012089015261066f818361031f565b97505050928c0192918c0191600101610586565b50505050506040820151878203604089015261069f82826103fc565b915050606082015187820360608901526106b982826104b6565b60809384015198909301979097525094509285019290850190600101610519565b5092979650505050505050565b60008151808452602080850194506020840160005b838110156104e7578151805167ffffffffffffffff1688528301517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1683880152604090960195908201906001016106fc565b600082825180855260208086019550808260051b84010181860160005b848110156103ef578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00189528151805167ffffffffffffffff908116855285820151811686860152604080830151909116908501526060808201519085015260809081015160a0918501829052906107e5818601836102d5565b9a86019a9450505090830190600101610768565b60008151808452602080850194506020840160005b838110156104e757815180518852830151838801526040909601959082019060010161080e565b602080825282516060838301528051604060808501819052815160c086018190526000949392840191859160e08801905b808410156108c3578451805173ffffffffffffffffffffffffffffffffffffffff1683528701517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1687830152938601936001939093019290820190610866565b50938501518785037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800160a0890152936108fd81866106e7565b9450505050508185015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08085830301604086015261093e828461074b565b925060408601519150808584030160608601525061095c82826107f9565b95945050505050565b600067ffffffffffffffff82111561097f5761097f6100db565b5060051b60200190565b805167ffffffffffffffff811681146109a157600080fd5b919050565b600060a082840312156109b857600080fd5b6109c061010a565b9050815181526109d260208301610989565b60208201526109e360408301610989565b60408201526109f460608301610989565b6060820152610a0560808301610989565b608082015292915050565b600082601f830112610a2157600080fd5b8151610a2f610279826101eb565b818152846020838601011115610a4457600080fd5b610a558260208301602087016102b1565b949350505050565b805173ffffffffffffffffffffffffffffffffffffffff811681146109a157600080fd5b600082601f830112610a9257600080fd5b81516020610aa261027983610965565b82815260059290921b84018101918181019086841115610ac157600080fd5b8286015b84811015610bdb57805167ffffffffffffffff80821115610ae65760008081fd5b818901915060a0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d03011215610b1f5760008081fd5b610b2761010a565b8784015183811115610b395760008081fd5b610b478d8a83880101610a10565b82525060408085015184811115610b5e5760008081fd5b610b6c8e8b83890101610a10565b8a8401525060608086015185811115610b855760008081fd5b610b938f8c838a0101610a10565b83850152506080915081860151818401525082850151925083831115610bb95760008081fd5b610bc78d8a85880101610a10565b908201528652505050918301918301610ac5565b509695505050505050565b600082601f830112610bf757600080fd5b81516020610c0761027983610965565b82815260059290921b84018101918181019086841115610c2657600080fd5b8286015b84811015610bdb57805167ffffffffffffffff80821115610c4b5760008081fd5b8189019150610140807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d03011215610c855760008081fd5b610c8d610133565b610c998c8986016109a6565b815260c084015183811115610cae5760008081fd5b610cbc8d8a83880101610a10565b898301525060e084015183811115610cd45760008081fd5b610ce28d8a83880101610a10565b604083015250610cf56101008501610a5d565b60608201526101208401516080820152908301519082821115610d185760008081fd5b610d268c8984870101610a81565b60a08201528652505050918301918301610c2a565b600082601f830112610d4c57600080fd5b81516020610d5c61027983610965565b82815260059290921b84018101918181019086841115610d7b57600080fd5b8286015b84811015610bdb57805167ffffffffffffffff80821115610d9f57600080fd5b818901915089603f830112610db357600080fd5b85820151610dc361027982610965565b81815260059190911b830160400190878101908c831115610de357600080fd5b604085015b83811015610e1c57805185811115610dff57600080fd5b610e0e8f6040838a0101610a10565b845250918901918901610de8565b50875250505092840192508301610d7f565b600082601f830112610e3f57600080fd5b81516020610e4f61027983610965565b8083825260208201915060208460051b870101935086841115610e7157600080fd5b602086015b84811015610bdb5780518352918301918301610e76565b60006020808385031215610ea057600080fd5b825167ffffffffffffffff80821115610eb857600080fd5b818501915085601f830112610ecc57600080fd5b8151610eda61027982610965565b81815260059190911b83018401908481019088831115610ef957600080fd5b8585015b83811015610ff357805185811115610f1457600080fd5b860160a0818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215610f495760008081fd5b610f5161010a565b610f5c898301610989565b815260408083015188811115610f725760008081fd5b610f808e8c83870101610be6565b8b8401525060608084015189811115610f995760008081fd5b610fa78f8d83880101610d3b565b8385015250608091508184015189811115610fc25760008081fd5b610fd08f8d83880101610e2e565b918401919091525060a09290920151918101919091528352918601918601610efd565b5098975050505050505050565b80517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811681146109a157600080fd5b600082601f83011261103d57600080fd5b8151602061104d61027983610965565b82815260069290921b8401810191818101908684111561106c57600080fd5b8286015b84811015610bdb57604081890312156110895760008081fd5b611091610156565b61109a82610989565b81526110a7858301611000565b81860152835291830191604001611070565b600082601f8301126110ca57600080fd5b815160206110da61027983610965565b82815260059290921b840181019181810190868411156110f957600080fd5b8286015b84811015610bdb57805167ffffffffffffffff8082111561111e5760008081fd5b818901915060a0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d030112156111575760008081fd5b61115f61010a565b61116a888501610989565b81526040611179818601610989565b89830152606061118a818701610989565b8284015260809150818601518184015250828501519250838311156111af5760008081fd5b6111bd8d8a85880101610a10565b9082015286525050509183019183016110fd565b600082601f8301126111e257600080fd5b815160206111f261027983610965565b82815260069290921b8401810191818101908684111561121157600080fd5b8286015b84811015610bdb576040818903121561122e5760008081fd5b611236610156565b815181528482015185820152835291830191604001611215565b6000602080838503121561126357600080fd5b825167ffffffffffffffff8082111561127b57600080fd5b908401906060828703121561128f57600080fd5b611297610179565b8251828111156112a657600080fd5b830160408189038113156112b957600080fd5b6112c1610156565b8251858111156112d057600080fd5b8301601f81018b136112e157600080fd5b80516112ef61027982610965565b81815260069190911b8201890190898101908d83111561130e57600080fd5b928a01925b8284101561135c5785848f03121561132b5760008081fd5b611333610156565b61133c85610a5d565b81526113498c8601611000565b818d0152825292850192908a0190611313565b84525050508287015191508482111561137457600080fd5b6113808a83850161102c565b8188015283525050828401518281111561139957600080fd5b6113a5888286016110b9565b858301525060408301519350818411156113be57600080fd5b6113ca878585016111d1565b6040820152969550505050505056fea164736f6c6343000818000a", } var ReportCodecABI = ReportCodecMetaData.ABI @@ -526,7 +529,7 @@ func (_ReportCodec *ReportCodec) ParseLog(log types.Log) (generated.AbigenLog, e } func (ReportCodecCommitReportDecoded) Topic() common.Hash { - return common.HexToHash("0x1b2cb5e9d31bdaabb2ae07532436ae669406f84003ca27179b4dfb72f127f7dc") + return common.HexToHash("0x83099d210b303f78572f4da1af1d1777cbf80cae42cdb9381f310dbdf21e8f89") } func (ReportCodecExecuteReportDecoded) Topic() common.Hash { 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 9fd0ac9e8d5..1b993dda224 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 @@ -5,7 +5,7 @@ burn_mint_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/BurnMintTokenPoo burn_with_from_mint_token_pool: ../../../contracts/solc/v0.8.24/BurnWithFromMintTokenPool/BurnWithFromMintTokenPool.abi ../../../contracts/solc/v0.8.24/BurnWithFromMintTokenPool/BurnWithFromMintTokenPool.bin 6333d0314d0bd29e75ea5e05fe62a4516ade0c6db91c30b6f93645035db52ed8 burn_with_from_mint_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/BurnWithFromMintTokenPoolAndProxy/BurnWithFromMintTokenPoolAndProxy.abi ../../../contracts/solc/v0.8.24/BurnWithFromMintTokenPoolAndProxy/BurnWithFromMintTokenPoolAndProxy.bin 08ed1235dda921ce8841b26aa18d0c0f36db4884779dd7670857159801b6d597 ccip_config: ../../../contracts/solc/v0.8.24/CCIPConfig/CCIPConfig.abi ../../../contracts/solc/v0.8.24/CCIPConfig/CCIPConfig.bin 213d4adc8634671aea16fb4207989375b1aac919b04d608f4767c29592affbf5 -ccip_reader_tester: ../../../contracts/solc/v0.8.24/CCIPReaderTester/CCIPReaderTester.abi ../../../contracts/solc/v0.8.24/CCIPReaderTester/CCIPReaderTester.bin 459ae9c785343bd032856baaacdfc8bf4f6b0d9f5d9082e1580b5846c2be80e5 +ccip_reader_tester: ../../../contracts/solc/v0.8.24/CCIPReaderTester/CCIPReaderTester.abi ../../../contracts/solc/v0.8.24/CCIPReaderTester/CCIPReaderTester.bin 6b258e3fc1a6dca93244060ed96e0e54db58f5d836ad98d11f245f730b527811 commit_store: ../../../contracts/solc/v0.8.24/CommitStore/CommitStore.abi ../../../contracts/solc/v0.8.24/CommitStore/CommitStore.bin 274d87db70b643e00ab0a7e7845bb4b791f3b613bfc87708d33fc5a8369e2a41 commit_store_helper: ../../../contracts/solc/v0.8.24/CommitStoreHelper/CommitStoreHelper.abi ../../../contracts/solc/v0.8.24/CommitStoreHelper/CommitStoreHelper.bin f7128dcc2ee6dbcbc976288abcc16970ffb19b59412c5202ef6b259d2007f801 ether_sender_receiver: ../../../contracts/solc/v0.8.24/EtherSenderReceiver/EtherSenderReceiver.abi ../../../contracts/solc/v0.8.24/EtherSenderReceiver/EtherSenderReceiver.bin 09510a3f773f108a3c231e8d202835c845ded862d071ec54c4f89c12d868b8de @@ -23,12 +23,12 @@ 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 aa299e0c2659d53aad4eace4d66be0e734b1366008593669cf30361ff529da6a 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 e21180898e1ad54a045ee20add85a2793c681425ea06f66d1a9e5cab128b6487 -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 4c1965d8e60a5ce133f71d46102b6cb932edce4538da096b048477154fac9fc1 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 277c26e21764d60f31d7c18011d51bfdf0363dfd10bf86b33ad11aed077b6ac4 onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 13927b48bd09b9ab2c62143973c747f8c2e1ebc9f95f17a61ace67a68c71ec75 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 registry_module_owner_custom: ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.abi ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.bin 75be86323c227917a9bbc3f799d7ed02f92db546653a36db30ed0ebe64461353 -report_codec: ../../../contracts/solc/v0.8.24/ReportCodec/ReportCodec.abi ../../../contracts/solc/v0.8.24/ReportCodec/ReportCodec.bin 3d7ebd8d4563b63cec83b141fe9f9ef5d8ab12a7c23ccd5e7e3434aba3cab66a +report_codec: ../../../contracts/solc/v0.8.24/ReportCodec/ReportCodec.abi ../../../contracts/solc/v0.8.24/ReportCodec/ReportCodec.bin 951dd3b2e26c3dc8fde7acde378cecd58c03ace310ee99885b254caef635e7cb rmn_contract: ../../../contracts/solc/v0.8.24/RMN/RMN.abi ../../../contracts/solc/v0.8.24/RMN/RMN.bin 8b45b0fb08631c6b582fd3c0b4052a79cc2b4e091e6286af1ab131bef63661f9 rmn_proxy_contract: ../../../contracts/solc/v0.8.24/ARMProxy/ARMProxy.abi ../../../contracts/solc/v0.8.24/ARMProxy/ARMProxy.bin b048d8e752e3c41113ebb305c1efa06737ad36b4907b93e627fb0a3113023454 router: ../../../contracts/solc/v0.8.24/Router/Router.abi ../../../contracts/solc/v0.8.24/Router/Router.bin 2e4f0a7826c8abb49d882bb49fc5ff20a186dbd3137624b9097ffed903ae4888