diff --git a/.changeset/khaki-tigers-agree.md b/.changeset/khaki-tigers-agree.md new file mode 100644 index 0000000000..ba9e56cc1d --- /dev/null +++ b/.changeset/khaki-tigers-agree.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#added #nops Add Zircuit Configs diff --git a/.changeset/tender-lemons-obey.md b/.changeset/tender-lemons-obey.md new file mode 100644 index 0000000000..2d6cb774b0 --- /dev/null +++ b/.changeset/tender-lemons-obey.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +Enable FeeHistory estimator for Polygon zkEVM #nops diff --git a/.goreleaser.devspace.yaml b/.goreleaser.devspace.yaml index a943d7235f..2f1e9754b4 100644 --- a/.goreleaser.devspace.yaml +++ b/.goreleaser.devspace.yaml @@ -83,6 +83,12 @@ changelog: exclude: - "^docs:" - "^test:" + +# See https://goreleaser.com/customization/git/ +git: + ignore_tags: + - contracts-ccip/v1.5.0-beta.0 + # modelines, feel free to remove those if you don't want/use them: # yaml-language-server: $schema=https://goreleaser.com/static/schema.json # vim: set ts=2 sw=2 tw=0 fo=cnqoj diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index 740dfc0c8f..5d00beeae3 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -36,29 +36,29 @@ BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 244050) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 24170) CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2052431) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9508) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 83274) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 354656) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 466876) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 433253) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 28063) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 61002) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 60940) -CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11668) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 87751) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 359022) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 478323) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443187) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 31646) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 64324) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 64262) +CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11734) CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8783) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 305974) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 46142) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 25040) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 362471) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 110001) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 141606) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 362211) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 141673) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 308111) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 48274) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 27945) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 368614) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 116145) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 149842) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 368354) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 149909) CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9632) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1699166) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 991503) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 991534) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1798048) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1040966) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1040997) CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9665) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16042) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16115) CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9596) CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 185139) CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 347170) @@ -67,30 +67,32 @@ CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14943) CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9617) CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370770) -CCIPConfig_constructor:test_constructor_Success() (gas: 3155264) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61226) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 22160) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 19491) +CCIPConfig_constructor:test_constructor_Success() (gas: 3275156) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61370) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 24518) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21077) CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9654) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1039133) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 1923111) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 1923145) -CCIPConfig_validateConfig:test__validateConfigLessTransmittersThanSigners_Success() (gas: 333177) -CCIPConfig_validateConfig:test__validateConfigSmallerFChain_Success() (gas: 464532) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 288463) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 291264) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 288096) -CCIPConfig_validateConfig:test__validateConfig_FChainTooHigh_Reverts() (gas: 335512) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 289648) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 289087) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 342330) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmittersEmptyAddresses_Reverts() (gas: 306844) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1209806) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 288202) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299119) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 788872) -CCIPConfig_validateConfig:test__validateConfig_ZeroP2PId_Reverts() (gas: 292418) -CCIPConfig_validateConfig:test__validateConfig_ZeroSignerKey_Reverts() (gas: 292467) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1092200) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2043837) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2043872) +CCIPConfig_validateConfig:test__validateConfigLessTransmittersThanSigners_Success() (gas: 334491) +CCIPConfig_validateConfig:test__validateConfigSmallerFChain_Success() (gas: 465605) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 289551) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_RMNHomeAddressCannotBeZero_Reverts() (gas: 289846) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 292593) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 289185) +CCIPConfig_validateConfig:test__validateConfig_FChainTooHigh_Reverts() (gas: 336851) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 290977) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 290416) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 343692) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmittersEmptyAddresses_Reverts() (gas: 309173) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1211220) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 289247) +CCIPConfig_validateConfig:test__validateConfig_RMNHomeAddressCannotBeZero_Reverts() (gas: 289485) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 300450) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 790349) +CCIPConfig_validateConfig:test__validateConfig_ZeroP2PId_Reverts() (gas: 293748) +CCIPConfig_validateConfig:test__validateConfig_ZeroSignerKey_Reverts() (gas: 293820) CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9596) CommitStore_constructor:test_Constructor_Success() (gas: 2855567) CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73954) @@ -121,7 +123,7 @@ CommitStore_verify:test_NotBlessed_Success() (gas: 61473) CommitStore_verify:test_Paused_Revert() (gas: 18568) CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36848) DefensiveExampleTest:test_HappyPath_Success() (gas: 200200) -DefensiveExampleTest:test_Recovery() (gas: 424479) +DefensiveExampleTest:test_Recovery() (gas: 424476) E2E:test_E2E_3MessagesSuccess_gas() (gas: 1106985) EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 38322) EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104438) diff --git a/contracts/src/v0.8/ccip/applications/CCIPClientExample.sol b/contracts/src/v0.8/ccip/applications/CCIPClientExample.sol index 77816ceadb..82de08ea64 100644 --- a/contracts/src/v0.8/ccip/applications/CCIPClientExample.sol +++ b/contracts/src/v0.8/ccip/applications/CCIPClientExample.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {IRouterClient} from "../interfaces/IRouterClient.sol"; diff --git a/contracts/src/v0.8/ccip/applications/CCIPReceiver.sol b/contracts/src/v0.8/ccip/applications/CCIPReceiver.sol index 1d4937c77a..208c4e47ce 100644 --- a/contracts/src/v0.8/ccip/applications/CCIPReceiver.sol +++ b/contracts/src/v0.8/ccip/applications/CCIPReceiver.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {IAny2EVMMessageReceiver} from "../interfaces/IAny2EVMMessageReceiver.sol"; diff --git a/contracts/src/v0.8/ccip/applications/DefensiveExample.sol b/contracts/src/v0.8/ccip/applications/DefensiveExample.sol index 89435ccbf1..f0501b5d90 100644 --- a/contracts/src/v0.8/ccip/applications/DefensiveExample.sol +++ b/contracts/src/v0.8/ccip/applications/DefensiveExample.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {IRouterClient} from "../interfaces/IRouterClient.sol"; @@ -8,7 +8,7 @@ import {CCIPClientExample} from "./CCIPClientExample.sol"; import {IERC20} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol"; -import {EnumerableMap} from "../../vendor/openzeppelin-solidity/v5.0.2/contracts/utils/structs/EnumerableMap.sol"; +import {EnumerableMap} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/utils/structs/EnumerableMap.sol"; contract DefensiveExample is CCIPClientExample { using EnumerableMap for EnumerableMap.Bytes32ToUintMap; diff --git a/contracts/src/v0.8/ccip/applications/PingPongDemo.sol b/contracts/src/v0.8/ccip/applications/PingPongDemo.sol index b902c47618..567ad3c27d 100644 --- a/contracts/src/v0.8/ccip/applications/PingPongDemo.sol +++ b/contracts/src/v0.8/ccip/applications/PingPongDemo.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {ITypeAndVersion} from "../../shared/interfaces/ITypeAndVersion.sol"; import {IRouterClient} from "../interfaces/IRouterClient.sol"; diff --git a/contracts/src/v0.8/ccip/applications/SelfFundedPingPong.sol b/contracts/src/v0.8/ccip/applications/SelfFundedPingPong.sol index f9e4fd0aa6..09c81ad5de 100644 --- a/contracts/src/v0.8/ccip/applications/SelfFundedPingPong.sol +++ b/contracts/src/v0.8/ccip/applications/SelfFundedPingPong.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.24; import {Router} from "../Router.sol"; import {Client} from "../libraries/Client.sol"; diff --git a/contracts/src/v0.8/ccip/capability/CCIPConfig.sol b/contracts/src/v0.8/ccip/capability/CCIPConfig.sol index 3414f4912f..e677c132f9 100644 --- a/contracts/src/v0.8/ccip/capability/CCIPConfig.sol +++ b/contracts/src/v0.8/ccip/capability/CCIPConfig.sol @@ -41,6 +41,7 @@ contract CCIPConfig is ITypeAndVersion, ICapabilityConfiguration, OwnerIsCreator error FChainTooHigh(uint256 fChain, uint256 FRoleDON); error InvalidPluginType(); error OfframpAddressCannotBeZero(); + error RMNHomeAddressCannotBeZero(); error InvalidConfigLength(uint256 length); error InvalidConfigStateTransition( CCIPConfigTypes.ConfigState currentState, CCIPConfigTypes.ConfigState proposedState @@ -227,6 +228,7 @@ contract CCIPConfig is ITypeAndVersion, ICapabilityConfiguration, OwnerIsCreator ocr3Config.FRoleDON = newOcr3Config.FRoleDON; ocr3Config.offchainConfigVersion = newOcr3Config.offchainConfigVersion; ocr3Config.offrampAddress = newOcr3Config.offrampAddress; + ocr3Config.rmnHomeAddress = newOcr3Config.rmnHomeAddress; ocr3Config.offchainConfig = newOcr3Config.offchainConfig; // Remove all excess nodes @@ -426,6 +428,9 @@ contract CCIPConfig is ITypeAndVersion, ICapabilityConfiguration, OwnerIsCreator if (cfg.offrampAddress.length == 0 || keccak256(cfg.offrampAddress) == EMPTY_ENCODED_ADDRESS_HASH) { revert OfframpAddressCannotBeZero(); } + if (cfg.rmnHomeAddress.length == 0 || keccak256(cfg.rmnHomeAddress) == EMPTY_ENCODED_ADDRESS_HASH) { + revert RMNHomeAddressCannotBeZero(); + } if (!s_remoteChainSelectors.contains(cfg.chainSelector)) revert ChainSelectorNotFound(cfg.chainSelector); // fChain cannot exceed FRoleDON, since it is a subcommittee in the larger DON @@ -494,6 +499,7 @@ contract CCIPConfig is ITypeAndVersion, ICapabilityConfiguration, OwnerIsCreator donId, ocr3Config.pluginType, ocr3Config.offrampAddress, + ocr3Config.rmnHomeAddress, configCount, ocr3Config.nodes, ocr3Config.FRoleDON, diff --git a/contracts/src/v0.8/ccip/capability/interfaces/IOCR3ConfigEncoder.sol b/contracts/src/v0.8/ccip/capability/interfaces/IOCR3ConfigEncoder.sol index 6d0b0f72a5..d09dbeb65a 100644 --- a/contracts/src/v0.8/ccip/capability/interfaces/IOCR3ConfigEncoder.sol +++ b/contracts/src/v0.8/ccip/capability/interfaces/IOCR3ConfigEncoder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {CCIPConfigTypes} from "../libraries/CCIPConfigTypes.sol"; diff --git a/contracts/src/v0.8/ccip/capability/libraries/CCIPConfigTypes.sol b/contracts/src/v0.8/ccip/capability/libraries/CCIPConfigTypes.sol index eca133f5dd..e5d77b02e5 100644 --- a/contracts/src/v0.8/ccip/capability/libraries/CCIPConfigTypes.sol +++ b/contracts/src/v0.8/ccip/capability/libraries/CCIPConfigTypes.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {Internal} from "../../libraries/Internal.sol"; @@ -55,6 +55,7 @@ library CCIPConfigTypes { uint8 FRoleDON; // | The "big F" parameter for the role DON. uint64 offchainConfigVersion; // ─────────────╯ The version of the offchain configuration. bytes offrampAddress; // The remote chain offramp address. + bytes rmnHomeAddress; // The home chain RMN home address. OCR3Node[] nodes; // Keys & IDs of nodes part of the role DON bytes offchainConfig; // The offchain configuration for the OCR3 protocol. Protobuf encoded. } diff --git a/contracts/src/v0.8/ccip/interfaces/IFeeQuoter.sol b/contracts/src/v0.8/ccip/interfaces/IFeeQuoter.sol index 4fa9cbfec4..84d430410b 100644 --- a/contracts/src/v0.8/ccip/interfaces/IFeeQuoter.sol +++ b/contracts/src/v0.8/ccip/interfaces/IFeeQuoter.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {Client} from "../libraries/Client.sol"; import {Internal} from "../libraries/Internal.sol"; diff --git a/contracts/src/v0.8/ccip/interfaces/IPriceRegistry.sol b/contracts/src/v0.8/ccip/interfaces/IPriceRegistry.sol index ed69b7b0cd..583a2e890b 100644 --- a/contracts/src/v0.8/ccip/interfaces/IPriceRegistry.sol +++ b/contracts/src/v0.8/ccip/interfaces/IPriceRegistry.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {Internal} from "../libraries/Internal.sol"; diff --git a/contracts/src/v0.8/ccip/interfaces/IRMNV2.sol b/contracts/src/v0.8/ccip/interfaces/IRMNV2.sol index ba6f652e36..0a66af76ef 100644 --- a/contracts/src/v0.8/ccip/interfaces/IRMNV2.sol +++ b/contracts/src/v0.8/ccip/interfaces/IRMNV2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {Internal} from "../libraries/Internal.sol"; diff --git a/contracts/src/v0.8/ccip/interfaces/IRouterClient.sol b/contracts/src/v0.8/ccip/interfaces/IRouterClient.sol index 9805a41bbd..27913b597d 100644 --- a/contracts/src/v0.8/ccip/interfaces/IRouterClient.sol +++ b/contracts/src/v0.8/ccip/interfaces/IRouterClient.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {Client} from "../libraries/Client.sol"; diff --git a/contracts/src/v0.8/ccip/libraries/Internal.sol b/contracts/src/v0.8/ccip/libraries/Internal.sol index 13ffc56b91..90b36adb7b 100644 --- a/contracts/src/v0.8/ccip/libraries/Internal.sol +++ b/contracts/src/v0.8/ccip/libraries/Internal.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {MerkleMultiProof} from "../libraries/MerkleMultiProof.sol"; import {Client} from "./Client.sol"; diff --git a/contracts/src/v0.8/ccip/libraries/MerkleMultiProof.sol b/contracts/src/v0.8/ccip/libraries/MerkleMultiProof.sol index fed8a1165b..95f52bdc52 100644 --- a/contracts/src/v0.8/ccip/libraries/MerkleMultiProof.sol +++ b/contracts/src/v0.8/ccip/libraries/MerkleMultiProof.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; library MerkleMultiProof { /// @notice Leaf domain separator, should be used as the first 32 bytes of a leaf's preimage. diff --git a/contracts/src/v0.8/ccip/libraries/RateLimiter.sol b/contracts/src/v0.8/ccip/libraries/RateLimiter.sol index 40ac3ca213..84914749e0 100644 --- a/contracts/src/v0.8/ccip/libraries/RateLimiter.sol +++ b/contracts/src/v0.8/ccip/libraries/RateLimiter.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; /// @notice Implements Token Bucket rate limiting. /// @dev uint128 is safe for rate limiter state. diff --git a/contracts/src/v0.8/ccip/ocr/MultiOCR3Base.sol b/contracts/src/v0.8/ccip/ocr/MultiOCR3Base.sol index f3e4d5a9ed..2e698cd230 100644 --- a/contracts/src/v0.8/ccip/ocr/MultiOCR3Base.sol +++ b/contracts/src/v0.8/ccip/ocr/MultiOCR3Base.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {OwnerIsCreator} from "../../shared/access/OwnerIsCreator.sol"; import {ITypeAndVersion} from "../../shared/interfaces/ITypeAndVersion.sol"; diff --git a/contracts/src/v0.8/ccip/ocr/OCR2Base.sol b/contracts/src/v0.8/ccip/ocr/OCR2Base.sol index 52a6df2f3a..74c8e47917 100644 --- a/contracts/src/v0.8/ccip/ocr/OCR2Base.sol +++ b/contracts/src/v0.8/ccip/ocr/OCR2Base.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {OwnerIsCreator} from "../../shared/access/OwnerIsCreator.sol"; import {OCR2Abstract} from "./OCR2Abstract.sol"; diff --git a/contracts/src/v0.8/ccip/ocr/OCR2BaseNoChecks.sol b/contracts/src/v0.8/ccip/ocr/OCR2BaseNoChecks.sol index a79df8d589..8bada2c378 100644 --- a/contracts/src/v0.8/ccip/ocr/OCR2BaseNoChecks.sol +++ b/contracts/src/v0.8/ccip/ocr/OCR2BaseNoChecks.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {OwnerIsCreator} from "../../shared/access/OwnerIsCreator.sol"; import {OCR2Abstract} from "./OCR2Abstract.sol"; diff --git a/contracts/src/v0.8/ccip/pools/LegacyPoolWrapper.sol b/contracts/src/v0.8/ccip/pools/LegacyPoolWrapper.sol index bc5adb0b2d..43326681e5 100644 --- a/contracts/src/v0.8/ccip/pools/LegacyPoolWrapper.sol +++ b/contracts/src/v0.8/ccip/pools/LegacyPoolWrapper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; +pragma solidity 0.8.24; import {IPoolPriorTo1_5} from "../interfaces/IPoolPriorTo1_5.sol"; diff --git a/contracts/src/v0.8/ccip/test/capability/CCIPConfig.t.sol b/contracts/src/v0.8/ccip/test/capability/CCIPConfig.t.sol index a64fee8b9a..0f95d8b42c 100644 --- a/contracts/src/v0.8/ccip/test/capability/CCIPConfig.t.sol +++ b/contracts/src/v0.8/ccip/test/capability/CCIPConfig.t.sol @@ -30,7 +30,7 @@ contract CCIPConfigSetup is Test { function _makeBytesArray(uint256 length, uint256 seed) internal pure returns (bytes[] memory arr) { arr = new bytes[](length); for (uint256 i = 0; i < length; i++) { - arr[i] = abi.encodePacked(keccak256(abi.encode(i, 1, seed))); + arr[i] = abi.encode(keccak256(abi.encode(i, 1, seed))); } return arr; } @@ -122,6 +122,7 @@ contract CCIPConfigSetup is Test { assertEq(a.FRoleDON, b.FRoleDON, "FRoleDON must match"); assertEq(a.offchainConfigVersion, b.offchainConfigVersion, "offchainConfigVersion must match"); assertEq(a.offrampAddress, b.offrampAddress, "offrampAddress must match"); + assertEq(a.rmnHomeAddress, b.rmnHomeAddress, "rmnHomeAddress must match"); assertEq(a.nodes.length, b.nodes.length, "nodes length must match"); assertEq(a.offchainConfig, b.offchainConfig, "offchainConfig must match"); @@ -375,7 +376,8 @@ contract CCIPConfig_validateConfig is CCIPConfigSetup { return CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: FRoleDON, @@ -437,6 +439,22 @@ contract CCIPConfig_validateConfig is CCIPConfigSetup { s_ccipCC.validateConfig(config); } + function test__validateConfig_RMNHomeAddressCannotBeZero_Reverts() public { + CCIPConfigTypes.OCR3Config memory config = _getCorrectOCR3Config(); + config.rmnHomeAddress = ""; // invalid + + vm.expectRevert(CCIPConfig.RMNHomeAddressCannotBeZero.selector); + s_ccipCC.validateConfig(config); + } + + function test__validateConfig_ABIEncodedAddress_RMNHomeAddressCannotBeZero_Reverts() public { + CCIPConfigTypes.OCR3Config memory config = _getCorrectOCR3Config(); + config.rmnHomeAddress = abi.encode(address(0)); // invalid + + vm.expectRevert(CCIPConfig.RMNHomeAddressCannotBeZero.selector); + s_ccipCC.validateConfig(config); + } + function test__validateConfig_ChainSelectorNotFound_Reverts() public { CCIPConfigTypes.OCR3Config memory config = _getCorrectOCR3Config(); config.chainSelector = 2; // not set @@ -599,7 +617,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { CCIPConfigTypes.OCR3Config memory config = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -646,7 +665,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { for (uint256 i = 0; i < numCommitCfgs; i++) { cfgs[i] = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -657,7 +677,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { for (uint256 i = 0; i < numExecCfgs; i++) { cfgs[numCommitCfgs + i] = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Execution, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -687,7 +708,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { CCIPConfigTypes.OCR3Config[] memory newConfig = new CCIPConfigTypes.OCR3Config[](1); newConfig[0] = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -717,7 +739,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -726,7 +749,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -789,7 +813,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -798,7 +823,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -843,7 +869,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -867,7 +894,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -876,7 +904,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -911,7 +940,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -920,7 +950,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -966,7 +997,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { for (uint256 i = 0; i < 3; i++) { cfgs[i] = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(p2pIds, signers, transmitters), FRoleDON: 1, @@ -986,7 +1018,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { for (uint256 i = 0; i < 3; i++) { cfgs[i] = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Execution, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(p2pIds, signers, transmitters), FRoleDON: 1, @@ -1008,7 +1041,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), // p2pIds: _makeBytes32Array(4, 0), @@ -1035,7 +1069,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), FRoleDON: 1, @@ -1044,7 +1079,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), // p2pIds: _makeBytes32Array(4, 0), @@ -1088,7 +1124,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), FRoleDON: 1, @@ -1097,7 +1134,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), FRoleDON: 1, @@ -1132,7 +1170,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), FRoleDON: 1, @@ -1141,7 +1180,8 @@ contract CCIPConfig_ConfigStateMachine is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: _constructNodesArray(_makeBytes32Array(4, 0), _makeBytesArray(4, 10), _makeBytesArray(4, 20)), FRoleDON: 1, @@ -1194,7 +1234,8 @@ contract CCIPConfig_updatePluginConfig is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1228,7 +1269,8 @@ contract CCIPConfig_updatePluginConfig is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1242,7 +1284,8 @@ contract CCIPConfig_updatePluginConfig is CCIPConfigSetup { s_ccipCC.updatePluginConfig(donId, Internal.OCRPluginType.Commit, startConfigs); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1283,7 +1326,8 @@ contract CCIPConfig_updatePluginConfig is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1297,7 +1341,8 @@ contract CCIPConfig_updatePluginConfig is CCIPConfigSetup { s_ccipCC.updatePluginConfig(donId, Internal.OCRPluginType.Commit, startConfigs); CCIPConfigTypes.OCR3Config memory greenConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1366,7 +1411,8 @@ contract CCIPConfig_beforeCapabilityConfigSet is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1395,7 +1441,8 @@ contract CCIPConfig_beforeCapabilityConfigSet is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Execution, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1426,7 +1473,8 @@ contract CCIPConfig_beforeCapabilityConfigSet is CCIPConfigSetup { uint32 donId = 1; CCIPConfigTypes.OCR3Config memory blueCommitConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Commit, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, @@ -1435,7 +1483,8 @@ contract CCIPConfig_beforeCapabilityConfigSet is CCIPConfigSetup { }); CCIPConfigTypes.OCR3Config memory blueExecConfig = CCIPConfigTypes.OCR3Config({ pluginType: Internal.OCRPluginType.Execution, - offrampAddress: abi.encodePacked(keccak256(abi.encode("offramp"))), + offrampAddress: abi.encode(keccak256(abi.encode("offramp"))), + rmnHomeAddress: abi.encode(keccak256(abi.encode("rmnHome"))), chainSelector: 1, nodes: nodes, FRoleDON: 1, diff --git a/contracts/src/v0.8/ccip/test/helpers/MaybeRevertingBurnMintTokenPool.sol b/contracts/src/v0.8/ccip/test/helpers/MaybeRevertingBurnMintTokenPool.sol index 73e764ae03..7290e91509 100644 --- a/contracts/src/v0.8/ccip/test/helpers/MaybeRevertingBurnMintTokenPool.sol +++ b/contracts/src/v0.8/ccip/test/helpers/MaybeRevertingBurnMintTokenPool.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.24; import {IBurnMintERC20} from "../../../shared/token/ERC20/IBurnMintERC20.sol"; diff --git a/contracts/src/v0.8/ccip/test/helpers/MessageHasher.sol b/contracts/src/v0.8/ccip/test/helpers/MessageHasher.sol index deffb617ca..ea8ba98d44 100644 --- a/contracts/src/v0.8/ccip/test/helpers/MessageHasher.sol +++ b/contracts/src/v0.8/ccip/test/helpers/MessageHasher.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {Client} from "../../libraries/Client.sol"; import {Internal} from "../../libraries/Internal.sol"; diff --git a/contracts/src/v0.8/ccip/test/helpers/ReportCodec.sol b/contracts/src/v0.8/ccip/test/helpers/ReportCodec.sol index 73962fb91f..2e50124ab4 100644 --- a/contracts/src/v0.8/ccip/test/helpers/ReportCodec.sol +++ b/contracts/src/v0.8/ccip/test/helpers/ReportCodec.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.24; import {Internal} from "../../libraries/Internal.sol"; import {OffRamp} from "../../offRamp/OffRamp.sol"; diff --git a/contracts/src/v0.8/ccip/test/legacy/BurnMintTokenPool1_2.sol b/contracts/src/v0.8/ccip/test/legacy/BurnMintTokenPool1_2.sol index 444e488b3c..44de2787c6 100644 --- a/contracts/src/v0.8/ccip/test/legacy/BurnMintTokenPool1_2.sol +++ b/contracts/src/v0.8/ccip/test/legacy/BurnMintTokenPool1_2.sol @@ -1,5 +1,5 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.0; +// SPDX-License-Identifier: BUSL +pragma solidity ^0.8.20; import {ITypeAndVersion} from "../../../shared/interfaces/ITypeAndVersion.sol"; import {IPoolPriorTo1_5} from "../../interfaces/IPoolPriorTo1_5.sol"; diff --git a/contracts/src/v0.8/ccip/test/mocks/MockRouter.sol b/contracts/src/v0.8/ccip/test/mocks/MockRouter.sol index 9181fb37c2..88a1740886 100644 --- a/contracts/src/v0.8/ccip/test/mocks/MockRouter.sol +++ b/contracts/src/v0.8/ccip/test/mocks/MockRouter.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity ^0.8.4; import {IAny2EVMMessageReceiver} from "../../interfaces/IAny2EVMMessageReceiver.sol"; import {IRouter} from "../../interfaces/IRouter.sol"; diff --git a/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml b/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml index 87808001eb..d1697d137a 100644 --- a/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml @@ -1,4 +1,5 @@ ChainID = '592' +ChainType = 'astar' FinalityTagEnabled = true FinalityDepth = 100 LogPollInterval = '6s' diff --git a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml index cd91465dae..46ce80e29f 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml @@ -13,12 +13,14 @@ ContractConfirmations = 1 ResendAfterThreshold = '3m' [GasEstimator] -PriceMin = '1 mwei' +Mode = 'FeeHistory' +# The FeeHistory estimator does not enforce PriceMin, setting it to 0 to not place any limits on the price +PriceMin = '0' BumpPercent = 40 -BumpMin = '20 mwei' -[GasEstimator.BlockHistory] -BlockHistorySize = 12 +[GasEstimator.FeeHistory] +# Refresh the suggested price every 4 seconds, to stay slightly below their polling rate of 5s +CacheTimeout = '4s' [HeadTracker] HistoryDepth = 2000 diff --git a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Goerli.toml b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Goerli.toml deleted file mode 100644 index 6a9b47190f..0000000000 --- a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Goerli.toml +++ /dev/null @@ -1,24 +0,0 @@ -ChainID = '1442' -ChainType = 'zkevm' -FinalityDepth = 500 -NoNewHeadsThreshold = '12m' -MinIncomingConfirmations = 1 -LogPollInterval = '30s' -RPCDefaultBatchSize = 100 - -[OCR] -ContractConfirmations = 1 - -[Transactions] -ResendAfterThreshold = '3m' - -[GasEstimator] -PriceMin = '50 mwei' -BumpPercent = 40 -BumpMin = '20 mwei' - -[GasEstimator.BlockHistory] -BlockHistorySize = 12 - -[HeadTracker] -HistoryDepth = 2000 diff --git a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml index 79e0cb0fce..2fef7874d1 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml @@ -14,12 +14,14 @@ ContractConfirmations = 1 ResendAfterThreshold = '3m' [GasEstimator] -PriceMin = '100 mwei' +Mode = 'FeeHistory' +# The FeeHistory estimator does not enforce PriceMin, setting it to 0 to not place any limits on the price +PriceMin = '0' BumpPercent = 40 -BumpMin = '100 mwei' -[GasEstimator.BlockHistory] -BlockHistorySize = 12 +[GasEstimator.FeeHistory] +# Refresh the suggested price every 4 seconds, to stay slightly below their polling rate of 5s +CacheTimeout = '4s' [HeadTracker] # Polygon suffers from a tremendous number of re-orgs, we need to set this to something very large to be conservative enough diff --git a/core/chains/evm/config/toml/defaults/Zircuit_Mainnet.toml b/core/chains/evm/config/toml/defaults/Zircuit_Mainnet.toml new file mode 100644 index 0000000000..ec336d3efe --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Zircuit_Mainnet.toml @@ -0,0 +1,36 @@ +ChainID = '48900' +ChainType = 'optimismBedrock' +FinalityTagEnabled = true +FinalityDepth = 1000 +LinkContractAddress = '0x5D6d033B4FbD2190D99D930719fAbAcB64d2439a' +LogPollInterval = "2s" +NoNewHeadsThreshold = "40s" +NoNewFinalizedHeadsThreshold = "15m" + +[GasEstimator] +EIP1559DynamicFees = true +PriceMin = '1 wei' +BumpMin = '100 wei' + +[GasEstimator.BlockHistory] +BlockHistorySize = 24 + +[Transactions] +ResendAfterThreshold = '30s' + +[HeadTracker] +HistoryDepth = 2000 + +[NodePool] +SyncThreshold = 10 + +[OCR] +ContractConfirmations = 1 + +[OCR2.Automation] +GasLimit = 6500000 + +[Transactions.AutoPurge] +Enabled = true +Threshold = 90 # 90 blocks at 2s block time ~3 minutes +MinAttempts = 3 \ No newline at end of file diff --git a/core/chains/evm/config/toml/defaults/Zircuit_Sepolia.toml b/core/chains/evm/config/toml/defaults/Zircuit_Sepolia.toml new file mode 100644 index 0000000000..d6934d533d --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Zircuit_Sepolia.toml @@ -0,0 +1,36 @@ +ChainID = '48899' +ChainType = 'optimismBedrock' +FinalityTagEnabled = true +FinalityDepth = 1000 +LinkContractAddress = '0xDEE94506570cA186BC1e3516fCf4fd719C312cCD' +LogPollInterval = "2s" +NoNewHeadsThreshold = "40s" +NoNewFinalizedHeadsThreshold = "15m" + +[GasEstimator] +EIP1559DynamicFees = true +PriceMin = '1 wei' +BumpMin = '100 wei' + +[GasEstimator.BlockHistory] +BlockHistorySize = 60 + +[Transactions] +ResendAfterThreshold = '30s' + +[HeadTracker] +HistoryDepth = 2000 + +[NodePool] +SyncThreshold = 10 + +[OCR] +ContractConfirmations = 1 + +[OCR2.Automation] +GasLimit = 6500000 + +[Transactions.AutoPurge] +Enabled = true +Threshold = 90 # 90 blocks at 2s block time ~3 minutes +MinAttempts = 3 \ No newline at end of file diff --git a/core/gethwrappers/ccip/generated/ccip_config/ccip_config.go b/core/gethwrappers/ccip/generated/ccip_config/ccip_config.go index 990209e958..d13dadc2b0 100644 --- a/core/gethwrappers/ccip/generated/ccip_config/ccip_config.go +++ b/core/gethwrappers/ccip/generated/ccip_config/ccip_config.go @@ -47,6 +47,7 @@ type CCIPConfigTypesOCR3Config struct { FRoleDON uint8 OffchainConfigVersion uint64 OfframpAddress []byte + RmnHomeAddress []byte Nodes []CCIPConfigTypesOCR3Node OffchainConfig []byte } @@ -64,8 +65,8 @@ type CCIPConfigTypesOCR3Node struct { } var CCIPConfigMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"capabilitiesRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"ChainSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChainSelectorNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FChainMustBePositive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fChain\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"FRoleDON\",\"type\":\"uint256\"}],\"name\":\"FChainTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidConfigLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumCCIPConfigTypes.ConfigState\",\"name\":\"currentState\",\"type\":\"uint8\"},{\"internalType\":\"enumCCIPConfigTypes.ConfigState\",\"name\":\"proposedState\",\"type\":\"uint8\"}],\"name\":\"InvalidConfigStateTransition\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node\",\"name\":\"node\",\"type\":\"tuple\"}],\"name\":\"InvalidNode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPluginType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentConfigTransition\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimum\",\"type\":\"uint256\"}],\"name\":\"NotEnoughTransmitters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfframpAddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCapabilitiesRegistryCanCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyOCR3Configs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManySigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"got\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"}],\"name\":\"WrongConfigCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"got\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"}],\"name\":\"WrongConfigDigest\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"got\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"}],\"name\":\"WrongConfigDigestBlueGreen\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"CapabilityConfigurationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"ChainConfigRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"readers\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structCCIPConfigTypes.ChainConfig\",\"name\":\"chainConfig\",\"type\":\"tuple\"}],\"name\":\"ChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"FRoleDON\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offrampAddress\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Config\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structCCIPConfigTypes.OCR3ConfigWithMeta[]\",\"name\":\"config\",\"type\":\"tuple[]\"}],\"name\":\"ConfigSet\",\"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\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"chainSelectorRemoves\",\"type\":\"uint64[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"readers\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfig\",\"name\":\"chainConfig\",\"type\":\"tuple\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfigInfo[]\",\"name\":\"chainConfigAdds\",\"type\":\"tuple[]\"}],\"name\":\"applyChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"beforeCapabilityConfigSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getAllChainConfigs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"readers\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfig\",\"name\":\"chainConfig\",\"type\":\"tuple\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfigInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"getCapabilityConfiguration\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"configuration\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilityRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumChainConfigurations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"}],\"name\":\"getOCRConfig\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"FRoleDON\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offrampAddress\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Config\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"internalType\":\"structCCIPConfigTypes.OCR3ConfigWithMeta[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"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: "0x60a06040523480156200001157600080fd5b506040516200410a3803806200410a8339810160408190526200003491620001a6565b33806000816200008b5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000be57620000be81620000fb565b5050506001600160a01b038116620000e9576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b0316608052620001d8565b336001600160a01b03821603620001555760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000082565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215620001b957600080fd5b81516001600160a01b0381168114620001d157600080fd5b9392505050565b608051613f08620002026000396000818161010301528181610e5c01526110cc0152613f086000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638318ed5d11610081578063f2fde38b1161005b578063f2fde38b14610230578063f442c89a14610243578063fba64a7c1461025657600080fd5b80638318ed5d146101d15780638da5cb5b146101f2578063b74b23561461021057600080fd5b80634bd0473f116100b25780634bd0473f1461019157806379ba5097146101b15780637ac0d41e146101bb57600080fd5b806301ffc9a7146100d9578063020330e614610101578063181f5a7714610148575b600080fd5b6100ec6100e7366004612d37565b610269565b60405190151581526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101846040518060400160405280601481526020017f43434950436f6e66696720312e362e302d64657600000000000000000000000081525081565b6040516100f89190612ddd565b6101a461019f366004612e21565b610302565b6040516100f89190612f45565b6101b96106fd565b005b6101c36107ff565b6040519081526020016100f8565b6101846101df3660046130b7565b5060408051602081019091526000815290565b60005473ffffffffffffffffffffffffffffffffffffffff16610123565b61022361021e3660046130d4565b610810565b6040516100f89190613164565b6101b961023e3660046131f4565b610a91565b6101b9610251366004613276565b610aa5565b6101b96102643660046132fa565b610e44565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f78bea7210000000000000000000000000000000000000000000000000000000014806102fc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b63ffffffff8216600090815260056020526040812060609183600181111561032c5761032c612e56565b600181111561033d5761033d612e56565b8152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156106f157600084815260209020604080516101408101909152600684029091018054829060608201908390829060ff1660018111156103b0576103b0612e56565b60018111156103c1576103c1612e56565b8152815467ffffffffffffffff61010082048116602084015260ff690100000000000000000083041660408401526a0100000000000000000000909104166060820152600182018054608090920191610419906133b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610445906133b7565b80156104925780601f1061046757610100808354040283529160200191610492565b820191906000526020600020905b81548152906001019060200180831161047557829003601f168201915b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156106205783829060005260206000209060030201604051806060016040529081600082015481526020016001820180546104fd906133b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610529906133b7565b80156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b5050505050815260200160028201805461058f906133b7565b80601f01602080910402602001604051908101604052809291908181526020018280546105bb906133b7565b80156106085780601f106105dd57610100808354040283529160200191610608565b820191906000526020600020905b8154815290600101906020018083116105eb57829003601f168201915b505050505081525050815260200190600101906104c0565b505050508152602001600382018054610638906133b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610664906133b7565b80156106b15780601f10610686576101008083540402835291602001916106b1565b820191906000526020600020905b81548152906001019060200180831161069457829003601f168201915b505050919092525050508152600482015467ffffffffffffffff16602080830191909152600590920154604090910152908252600192909201910161036b565b50505050905092915050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064015b60405180910390fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b600061080b6003610eff565b905090565b6060600061081e6003610eff565b9050600061082c8486613439565b905083158061083b5750818110155b1561087b576040805160008082526020820190925290610871565b61085e612b31565b8152602001906001900390816108565790505b50925050506102fc565b6000610887858361347f565b9050828111156108945750815b60006108a08383613492565b67ffffffffffffffff8111156108b8576108b8613450565b6040519080825280602002602001820160405280156108f157816020015b6108de612b31565b8152602001906001900390816108d65790505b50905060006109006003610f09565b9050835b83811015610a84576000828281518110610920576109206134a5565b60209081029190910181015160408051808201825267ffffffffffffffff8316808252600090815260028552829020825181546080818802830181019095526060820181815295975092958601949093919284928491908401828280156109a657602002820191906000526020600020905b815481526020019060010190808311610992575b5050509183525050600182015460ff1660208201526002820180546040909201916109d0906133b7565b80601f01602080910402602001604051908101604052809291908181526020018280546109fc906133b7565b8015610a495780601f10610a1e57610100808354040283529160200191610a49565b820191906000526020600020905b815481529060010190602001808311610a2c57829003601f168201915b50505091909252505050905284610a608885613492565b81518110610a7057610a706134a5565b602090810291909101015250600101610904565b5090979650505050505050565b610a99610f1d565b610aa281610fa0565b50565b610aad610f1d565b60005b83811015610c9357610af4858583818110610acd57610acd6134a5565b9050602002016020810190610ae291906134d4565b60039067ffffffffffffffff16611095565b610b5e57848482818110610b0a57610b0a6134a5565b9050602002016020810190610b1f91906134d4565b6040517f1bd4d2d200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260240161077a565b60026000868684818110610b7457610b746134a5565b9050602002016020810190610b8991906134d4565b67ffffffffffffffff1681526020810191909152604001600090812090610bb08282612b79565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055610be8600283016000612b97565b5050610c26858583818110610bff57610bff6134a5565b9050602002016020810190610c1491906134d4565b60039067ffffffffffffffff166110ad565b507f2a680691fef3b2d105196805935232c661ce703e92d464ef0b94a7bc62d714f0858583818110610c5a57610c5a6134a5565b9050602002016020810190610c6f91906134d4565b60405167ffffffffffffffff909116815260200160405180910390a1600101610ab0565b5060005b81811015610e3d576000838383818110610cb357610cb36134a5565b9050602002810190610cc591906134ef565b610cd390602081019061352d565b610cdc906136bf565b90506000848484818110610cf257610cf26134a5565b9050602002810190610d0491906134ef565b610d129060208101906134d4565b9050610d2182600001516110b9565b816020015160ff16600003610d62576040517fa9b3766e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff81166000908152600260209081526040909120835180518593610d92928492910190612bd1565b5060208201516001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff90921691909117905560408201516002820190610ddf90826137e7565b50610df991506003905067ffffffffffffffff8316611205565b507f05dd57854af2c291a94ea52e7c43d80bc3be7fa73022f98b735dea86642fa5e08183604051610e2b929190613901565b60405180910390a15050600101610c97565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610eb3576040517fac7a7efd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610eca610ec586880188613a3f565b611211565b8151919350915015610ee257610ee28360008461143e565b805115610ef557610ef58360018361143e565b5050505050505050565b60006102fc825490565b60606000610f1683611c70565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161077a565b565b3373ffffffffffffffffffffffffffffffffffffffff82160361101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161077a565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008181526001830160205260408120541515610f16565b6000610f168383611ccc565b60005b81518110156112015760008019167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350c946fe848481518110611118576111186134a5565b60200260200101516040518263ffffffff1660e01b815260040161113e91815260200190565b600060405180830381865afa15801561115b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111a19190810190613c44565b60800151036111f9578181815181106111bc576111bc6134a5565b60200260200101516040517f8907a4fa00000000000000000000000000000000000000000000000000000000815260040161077a91815260200190565b6001016110bc565b5050565b6000610f168383611dc6565b606080600460ff1683511115611253576040517f8854586400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160028082526060820190925290816020015b6112c16040805160e081019091528060008152602001600067ffffffffffffffff168152602001600060ff168152602001600067ffffffffffffffff1681526020016060815260200160608152602001606081525090565b81526020019060019003908161126957505060408051600280825260608201909252919350602082015b6113436040805160e081019091528060008152602001600067ffffffffffffffff168152602001600060ff168152602001600067ffffffffffffffff1681526020016060815260200160608152602001606081525090565b8152602001906001900390816112eb57905050905060008060005b855181101561143157600086828151811061137b5761137b6134a5565b602002602001015160000151600181111561139857611398612e56565b036113e5578581815181106113af576113af6134a5565b60200260200101518584815181106113c9576113c96134a5565b6020026020010181905250826113de90613d1c565b9250611429565b8581815181106113f7576113f76134a5565b6020026020010151848381518110611411576114116134a5565b60200260200101819052508161142690613d1c565b91505b60010161135e565b5090835281529092909150565b63ffffffff831660009081526005602052604081208184600181111561146657611466612e56565b600181111561147757611477612e56565b8152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561182b57600084815260209020604080516101408101909152600684029091018054829060608201908390829060ff1660018111156114ea576114ea612e56565b60018111156114fb576114fb612e56565b8152815467ffffffffffffffff61010082048116602084015260ff690100000000000000000083041660408401526a0100000000000000000000909104166060820152600182018054608090920191611553906133b7565b80601f016020809104026020016040519081016040528092919081815260200182805461157f906133b7565b80156115cc5780601f106115a1576101008083540402835291602001916115cc565b820191906000526020600020905b8154815290600101906020018083116115af57829003601f168201915b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b8282101561175a578382906000526020600020906003020160405180606001604052908160008201548152602001600182018054611637906133b7565b80601f0160208091040260200160405190810160405280929190818152602001828054611663906133b7565b80156116b05780601f10611685576101008083540402835291602001916116b0565b820191906000526020600020905b81548152906001019060200180831161169357829003601f168201915b505050505081526020016002820180546116c9906133b7565b80601f01602080910402602001604051908101604052809291908181526020018280546116f5906133b7565b80156117425780601f1061171757610100808354040283529160200191611742565b820191906000526020600020905b81548152906001019060200180831161172557829003601f168201915b505050505081525050815260200190600101906115fa565b505050508152602001600382018054611772906133b7565b80601f016020809104026020016040519081016040528092919081815260200182805461179e906133b7565b80156117eb5780601f106117c0576101008083540402835291602001916117eb565b820191906000526020600020905b8154815290600101906020018083116117ce57829003601f168201915b505050919092525050508152600482015467ffffffffffffffff1660208083019190915260059092015460409091015290825260019290920191016114a5565b505050509050600061183d8251611e15565b9050600061184b8451611e15565b90506118578282611e67565b60006118668785878686611f23565b905061187284826122f7565b63ffffffff871660009081526005602052604081209087600181111561189a5761189a612e56565b60018111156118ab576118ab612e56565b815260200190815260200160002060006118c59190612c1c565b60005b8151811015611c135763ffffffff88166000908152600560205260408120818960018111156118f9576118f9612e56565b600181111561190a5761190a612e56565b8152602001908152602001600020600181600181540180825580915050039060005260206000209060060201905082828151811061194a5761194a6134a5565b6020026020010151604001518160050181905550828281518110611970576119706134a5565b6020026020010151602001518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600081600001905060008484815181106119c2576119c26134a5565b602090810291909101015151805183549192509083907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115611a0d57611a0d612e56565b021790555060208101518254604083015160608401517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff90921661010067ffffffffffffffff948516027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff1617690100000000000000000060ff90921691909102177fffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffff166a0100000000000000000000929091169190910217825560808101516001830190611adc90826137e7565b5060c08101516003830190611af190826137e7565b505b60a08101515160028301541115611b725781600201805480611b1757611b17613d54565b60008281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020181815590611b5b6001830182612b97565b611b69600283016000612b97565b50509055611af3565b60005b8160a0015151811015611c045760028301548110611bfc57826002018260a001518281518110611ba757611ba76134a5565b6020908102919091018101518254600181810185556000948552938390208251600390920201908155918101519092820190611be390826137e7565b5060408201516002820190611bf890826137e7565b5050505b600101611b75565b505050508060010190506118c8565b50856001811115611c2657611c26612e56565b60ff168763ffffffff167f0fe4c45ffc7f05233ddfee7d79ac01d075176a0aa116068c486a2f7490088a0b83604051611c5f9190612f45565b60405180910390a350505050505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611cc057602002820191906000526020600020905b815481526020019060010190808311611cac575b50505050509050919050565b60008181526001830160205260408120548015611db5576000611cf0600183613492565b8554909150600090611d0490600190613492565b9050808214611d69576000866000018281548110611d2457611d246134a5565b9060005260206000200154905080876000018481548110611d4757611d476134a5565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611d7a57611d7a613d54565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102fc565b60009150506102fc565b5092915050565b6000818152600183016020526040812054611e0d575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102fc565b5060006102fc565b60006002821115611e55576040517f3e4785260000000000000000000000000000000000000000000000000000000081526004810183905260240161077a565b8160028111156102fc576102fc612e56565b6000826002811115611e7b57611e7b612e56565b826002811115611e8d57611e8d612e56565b611e979190613d83565b90508060011480611ee35750807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff148015611ee357506002836002811115611ee157611ee1612e56565b145b15611eed57505050565b82826040517f0a6b675b00000000000000000000000000000000000000000000000000000000815260040161077a929190613db3565b60606000845167ffffffffffffffff811115611f4157611f41613450565b604051908082528060200260200182016040528015611f6a578160200160208202803683370190505b5090506000846002811115611f8157611f81612e56565b148015611f9f57506001836002811115611f9d57611f9d612e56565b145b15611fe057600181600081518110611fb957611fb96134a5565b602002602001019067ffffffffffffffff16908167ffffffffffffffff1681525050612148565b6001846002811115611ff457611ff4612e56565b1480156120125750600283600281111561201057612010612e56565b145b156120a9578560008151811061202a5761202a6134a5565b60200260200101516020015181600081518110612049576120496134a5565b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250508560008151811061207e5761207e6134a5565b60200260200101516020015160016120969190613dce565b81600181518110611fb957611fb96134a5565b60028460028111156120bd576120bd612e56565b1480156120db575060018360028111156120d9576120d9612e56565b145b1561211257856001815181106120f3576120f36134a5565b60200260200101516020015181600081518110611fb957611fb96134a5565b83836040517f0a6b675b00000000000000000000000000000000000000000000000000000000815260040161077a929190613db3565b6000855167ffffffffffffffff81111561216457612164613450565b60405190808252806020026020018201604052801561220257816020015b6040805161014081018252600060608083018281526080840183905260a0840183905260c0840183905260e084018290526101008401829052610120840191909152825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816121825790505b50905060005b82518110156122eb57612233878281518110612226576122266134a5565b6020026020010151612676565b6040518060600160405280888381518110612250576122506134a5565b6020026020010151815260200184838151811061226f5761226f6134a5565b602002602001015167ffffffffffffffff1681526020016122c38b86858151811061229c5761229c6134a5565b60200260200101518b86815181106122b6576122b66134a5565b6020026020010151612a70565b8152508282815181106122d8576122d86134a5565b6020908102919091010152600101612208565b50979650505050505050565b81518151811580156123095750806001145b156123ab5782600081518110612321576123216134a5565b60200260200101516020015167ffffffffffffffff166001146123a55782600081518110612351576123516134a5565b60209081029190910181015101516040517fc1658eb800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526001602482015260440161077a565b50505050565b8160011480156123bb5750806002145b1561257157836000815181106123d3576123d36134a5565b602002602001015160400151836000815181106123f2576123f26134a5565b6020026020010151604001511461247e5782600081518110612416576124166134a5565b60200260200101516040015184600081518110612435576124356134a5565b6020026020010151604001516040517fc7ccdd7f00000000000000000000000000000000000000000000000000000000815260040161077a929190918252602082015260400190565b83600081518110612491576124916134a5565b60200260200101516020015160016124a99190613dce565b67ffffffffffffffff16836001815181106124c6576124c66134a5565b60200260200101516020015167ffffffffffffffff16146123a557826001815181106124f4576124f46134a5565b60200260200101516020015184600081518110612513576125136134a5565b602002602001015160200151600161252b9190613dce565b6040517fc1658eb800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff92831660048201529116602482015260440161077a565b8160021480156125815750806001145b156126445783600181518110612599576125996134a5565b602002602001015160400151836000815181106125b8576125b86134a5565b602002602001015160400151146123a557826000815181106125dc576125dc6134a5565b602002602001015160400151846001815181106125fb576125fb6134a5565b6020026020010151604001516040517f9e97567000000000000000000000000000000000000000000000000000000000815260040161077a929190918252602082015260400190565b6040517f1f1b2bb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015167ffffffffffffffff166000036126be576040517f698cf8e000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815160018111156126d3576126d3612e56565b141580156126f457506001815160018111156126f1576126f1612e56565b14155b1561272b576040517f3302dbd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6080810151511580612768575060408051600060208201520160405160208183030381529060405280519060200120816080015180519060200120145b1561279f576040517f358c192700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516127ba9060039067ffffffffffffffff16611095565b6128025760208101516040517f1bd4d2d200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260240161077a565b60408082015160208084015167ffffffffffffffff1660009081526002909152919091206001015460ff918216911681811115612875576040517f2db22040000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440161077a565b60a0830151516101008111156128b7576040517f1b925da600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6128c2836003613439565b81116128fa576040517f4856694e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808267ffffffffffffffff81111561291657612916613450565b60405190808252806020026020018201604052801561293f578160200160208202803683370190505b50905060005b838110156129ff5760008760a001518281518110612965576129656134a5565b6020026020010151905080604001515160001461298a578361298681613d1c565b9450505b602081015151158061299b57508051155b156129d457806040517f9fa4031400000000000000000000000000000000000000000000000000000000815260040161077a9190613def565b80600001518383815181106129eb576129eb6134a5565b602090810291909101015250600101612945565b506000612a0d856003613439565b612a1890600161347f565b905080831015612a5e576040517f548dd21f000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260440161077a565b612a67826110b9565b50505050505050565b60008082602001518584600001518560800151878760a00151886040015189606001518a60c00151604051602001612ab099989796959493929190613e02565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e0a000000000000000000000000000000000000000000000000000000000000179150509392505050565b6040518060400160405280600067ffffffffffffffff168152602001612b74604051806060016040528060608152602001600060ff168152602001606081525090565b905290565b5080546000825590600052602060002090810190610aa29190612c3d565b508054612ba3906133b7565b6000825580601f10612bb3575050565b601f016020900490600052602060002090810190610aa29190612c3d565b828054828255906000526020600020908101928215612c0c579160200282015b82811115612c0c578251825591602001919060010190612bf1565b50612c18929150612c3d565b5090565b5080546000825560060290600052602060002090810190610aa29190612c52565b5b80821115612c185760008155600101612c3e565b80821115612c185780547fffffffffffffffffffffffffffff00000000000000000000000000000000000016815560008181612c916001830182612b97565b612c9f600283016000612ce9565b612cad600383016000612b97565b5050506004810180547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016905560006005820155600601612c52565b5080546000825560030290600052602060002090810190610aa291905b80821115612c18576000808255612d206001830182612b97565b612d2e600283016000612b97565b50600301612d06565b600060208284031215612d4957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f1657600080fd5b6000815180845260005b81811015612d9f57602081850181015186830182015201612d83565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610f166020830184612d79565b63ffffffff81168114610aa257600080fd5b8035612e0d81612df0565b919050565b803560028110612e0d57600080fd5b60008060408385031215612e3457600080fd5b8235612e3f81612df0565b9150612e4d60208401612e12565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110612e9557612e95612e56565b9052565b805182526000602082015160606020850152612eb86060850182612d79565b905060408301518482036040860152612ed18282612d79565b95945050505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015610a84577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403018952612f33838351612e99565b98840198925090830190600101612ef9565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156130a9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815160608151818652612fb38287018251612e85565b89810151608067ffffffffffffffff8216818901528a830151915060a060ff8316818a015284840151945060c09250612ff7838a018667ffffffffffffffff169052565b81840151945060e0915081828a01526130146101408a0186612d79565b9450808401519150507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa080898603016101008a01526130538583612eda565b92909301518883039093016101208901525091506130718282612d79565b9150508882015161308d8a87018267ffffffffffffffff169052565b5090870151938701939093529386019390860190600101612f6e565b509098975050505050505050565b6000602082840312156130c957600080fd5b8135610f1681612df0565b600080604083850312156130e757600080fd5b50508035926020909101359150565b805160608084528151908401819052600091602091908201906080860190845b8181101561313257835183529284019291840191600101613116565b505060ff602086015116602087015260408501519250858103604087015261315a8184612d79565b9695505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156130a9578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805167ffffffffffffffff1684528701518784018790526131e1878501826130f6565b958801959350509086019060010161318d565b60006020828403121561320657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610f1657600080fd5b60008083601f84011261323c57600080fd5b50813567ffffffffffffffff81111561325457600080fd5b6020830191508360208260051b850101111561326f57600080fd5b9250929050565b6000806000806040858703121561328c57600080fd5b843567ffffffffffffffff808211156132a457600080fd5b6132b08883890161322a565b909650945060208701359150808211156132c957600080fd5b506132d68782880161322a565b95989497509550505050565b803567ffffffffffffffff81168114612e0d57600080fd5b6000806000806000806080878903121561331357600080fd5b863567ffffffffffffffff8082111561332b57600080fd5b6133378a838b0161322a565b9098509650602089013591508082111561335057600080fd5b818901915089601f83011261336457600080fd5b81358181111561337357600080fd5b8a602082850101111561338557600080fd5b60208301965080955050505061339d604088016132e2565b91506133ab60608801612e02565b90509295509295509295565b600181811c908216806133cb57607f821691505b602082108103613404577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176102fc576102fc61340a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b808201808211156102fc576102fc61340a565b818103818111156102fc576102fc61340a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156134e657600080fd5b610f16826132e2565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261352357600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261352357600080fd5b6040516060810167ffffffffffffffff8111828210171561358457613584613450565b60405290565b60405160e0810167ffffffffffffffff8111828210171561358457613584613450565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156135f4576135f4613450565b604052919050565b600067ffffffffffffffff82111561361657613616613450565b5060051b60200190565b803560ff81168114612e0d57600080fd5b600082601f83011261364257600080fd5b813567ffffffffffffffff81111561365c5761365c613450565b61368d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016135ad565b8181528460208386010111156136a257600080fd5b816020850160208301376000918101602001919091529392505050565b6000606082360312156136d157600080fd5b6136d9613561565b823567ffffffffffffffff808211156136f157600080fd5b9084019036601f83011261370457600080fd5b81356020613719613714836135fc565b6135ad565b82815260059290921b8401810191818101903684111561373857600080fd5b948201945b838610156137565785358252948201949082019061373d565b865250613764878201613620565b9085015250604085013591508082111561377d57600080fd5b5061378a36828601613631565b60408301525092915050565b601f8211156137e2576000816000526020600020601f850160051c810160208610156137bf5750805b601f850160051c820191505b818110156137de578281556001016137cb565b5050505b505050565b815167ffffffffffffffff81111561380157613801613450565b6138158161380f84546133b7565b84613796565b602080601f83116001811461386857600084156138325750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556137de565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156138b557888601518255948401946001909101908401613896565b50858210156138f157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b67ffffffffffffffff8316815260406020820152600061392460408301846130f6565b949350505050565b600082601f83011261393d57600080fd5b8135602061394d613714836135fc565b82815260059290921b8401810191818101908684111561396c57600080fd5b8286015b84811015613a3457803567ffffffffffffffff808211156139915760008081fd5b81890191506060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d030112156139ca5760008081fd5b6139d2613561565b878401358152604080850135848111156139ec5760008081fd5b6139fa8e8b83890101613631565b838b015250918401359183831115613a125760008081fd5b613a208d8a85880101613631565b908201528652505050918301918301613970565b509695505050505050565b60006020808385031215613a5257600080fd5b823567ffffffffffffffff80821115613a6a57600080fd5b818501915085601f830112613a7e57600080fd5b8135613a8c613714826135fc565b81815260059190911b83018401908481019088831115613aab57600080fd5b8585015b83811015613bcd57803585811115613ac657600080fd5b860160e0818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215613afb5760008081fd5b613b0361358a565b613b0e898301612e12565b81526040613b1d8184016132e2565b8a8301526060613b2e818501613620565b8284015260809150613b418285016132e2565b9083015260a08381013589811115613b595760008081fd5b613b678f8d83880101613631565b838501525060c091508184013589811115613b825760008081fd5b613b908f8d8388010161392c565b82850152505060e083013588811115613ba95760008081fd5b613bb78e8c83870101613631565b9183019190915250845250918601918601613aaf565b5098975050505050505050565b8051612e0d81612df0565b600082601f830112613bf657600080fd5b81516020613c06613714836135fc565b8083825260208201915060208460051b870101935086841115613c2857600080fd5b602086015b84811015613a345780518352918301918301613c2d565b600060208284031215613c5657600080fd5b815167ffffffffffffffff80821115613c6e57600080fd5b9083019060e08286031215613c8257600080fd5b613c8a61358a565b613c9383613bda565b8152613ca160208401613bda565b6020820152613cb260408401613bda565b6040820152606083015160608201526080830151608082015260a083015182811115613cdd57600080fd5b613ce987828601613be5565b60a08301525060c083015182811115613d0157600080fd5b613d0d87828601613be5565b60c08301525095945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4d57613d4d61340a565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b8181036000831280158383131683831282161715611dbf57611dbf61340a565b60038110612e9557612e95612e56565b60408101613dc18285613da3565b610f166020830184613da3565b67ffffffffffffffff818116838216019080821115611dbf57611dbf61340a565b602081526000610f166020830184612e99565b600061012067ffffffffffffffff808d168452602063ffffffff8d1681860152613e2f604086018d612e85565b826060860152613e418386018c612d79565b918a16608086015284820360a0860152885180835291925080830191600581901b84018201828b0160005b83811015613eb8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0878403018652613ea6838351612e99565b95850195925090840190600101613e6c565b505060ff8a1660c088015267ffffffffffffffff891660e0880152868103610100880152613ee68189612d79565b955050505050509a995050505050505050505056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"capabilitiesRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"ChainSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChainSelectorNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FChainMustBePositive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fChain\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"FRoleDON\",\"type\":\"uint256\"}],\"name\":\"FChainTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidConfigLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumCCIPConfigTypes.ConfigState\",\"name\":\"currentState\",\"type\":\"uint8\"},{\"internalType\":\"enumCCIPConfigTypes.ConfigState\",\"name\":\"proposedState\",\"type\":\"uint8\"}],\"name\":\"InvalidConfigStateTransition\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node\",\"name\":\"node\",\"type\":\"tuple\"}],\"name\":\"InvalidNode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPluginType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentConfigTransition\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimum\",\"type\":\"uint256\"}],\"name\":\"NotEnoughTransmitters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfframpAddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCapabilitiesRegistryCanCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RMNHomeAddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyOCR3Configs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManySigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"got\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"}],\"name\":\"WrongConfigCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"got\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"}],\"name\":\"WrongConfigDigest\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"got\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"}],\"name\":\"WrongConfigDigestBlueGreen\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"CapabilityConfigurationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"ChainConfigRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"readers\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structCCIPConfigTypes.ChainConfig\",\"name\":\"chainConfig\",\"type\":\"tuple\"}],\"name\":\"ChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"FRoleDON\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offrampAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rmnHomeAddress\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Config\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structCCIPConfigTypes.OCR3ConfigWithMeta[]\",\"name\":\"config\",\"type\":\"tuple[]\"}],\"name\":\"ConfigSet\",\"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\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"chainSelectorRemoves\",\"type\":\"uint64[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"readers\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfig\",\"name\":\"chainConfig\",\"type\":\"tuple\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfigInfo[]\",\"name\":\"chainConfigAdds\",\"type\":\"tuple[]\"}],\"name\":\"applyChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"beforeCapabilityConfigSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pageIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getAllChainConfigs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"readers\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfig\",\"name\":\"chainConfig\",\"type\":\"tuple\"}],\"internalType\":\"structCCIPConfigTypes.ChainConfigInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"getCapabilityConfiguration\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"configuration\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilityRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumChainConfigurations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"}],\"name\":\"getOCRConfig\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"FRoleDON\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offrampAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rmnHomeAddress\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Config\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"internalType\":\"structCCIPConfigTypes.OCR3ConfigWithMeta[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"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: "0x60a06040523480156200001157600080fd5b5060405162004367380380620043678339810160408190526200003491620001a6565b33806000816200008b5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000be57620000be81620000fb565b5050506001600160a01b038116620000e9576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b0316608052620001d8565b336001600160a01b03821603620001555760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000082565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215620001b957600080fd5b81516001600160a01b0381168114620001d157600080fd5b9392505050565b608051614165620002026000396000818161010301528181610eee015261115e01526141656000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638318ed5d11610081578063f2fde38b1161005b578063f2fde38b14610230578063f442c89a14610243578063fba64a7c1461025657600080fd5b80638318ed5d146101d15780638da5cb5b146101f2578063b74b23561461021057600080fd5b80634bd0473f116100b25780634bd0473f1461019157806379ba5097146101b15780637ac0d41e146101bb57600080fd5b806301ffc9a7146100d9578063020330e614610101578063181f5a7714610148575b600080fd5b6100ec6100e7366004612f10565b610269565b60405190151581526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101846040518060400160405280601481526020017f43434950436f6e66696720312e362e302d64657600000000000000000000000081525081565b6040516100f89190612fb6565b6101a461019f366004612ffa565b610302565b6040516100f8919061311e565b6101b961078f565b005b6101c3610891565b6040519081526020016100f8565b6101846101df3660046132bb565b5060408051602081019091526000815290565b60005473ffffffffffffffffffffffffffffffffffffffff16610123565b61022361021e3660046132d8565b6108a2565b6040516100f89190613368565b6101b961023e3660046133f8565b610b23565b6101b961025136600461347a565b610b37565b6101b96102643660046134fe565b610ed6565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f78bea7210000000000000000000000000000000000000000000000000000000014806102fc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b63ffffffff8216600090815260056020526040812060609183600181111561032c5761032c61302f565b600181111561033d5761033d61302f565b8152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561078357600084815260209020604080516101608101909152600784029091018054829060608201908390829060ff1660018111156103b0576103b061302f565b60018111156103c1576103c161302f565b8152815467ffffffffffffffff61010082048116602084015260ff690100000000000000000083041660408401526a0100000000000000000000909104166060820152600182018054608090920191610419906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610445906135bb565b80156104925780601f1061046757610100808354040283529160200191610492565b820191906000526020600020905b81548152906001019060200180831161047557829003601f168201915b505050505081526020016002820180546104ab906135bb565b80601f01602080910402602001604051908101604052809291908181526020018280546104d7906135bb565b80156105245780601f106104f957610100808354040283529160200191610524565b820191906000526020600020905b81548152906001019060200180831161050757829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b828210156106b257838290600052602060002090600302016040518060600160405290816000820154815260200160018201805461058f906135bb565b80601f01602080910402602001604051908101604052809291908181526020018280546105bb906135bb565b80156106085780601f106105dd57610100808354040283529160200191610608565b820191906000526020600020905b8154815290600101906020018083116105eb57829003601f168201915b50505050508152602001600282018054610621906135bb565b80601f016020809104026020016040519081016040528092919081815260200182805461064d906135bb565b801561069a5780601f1061066f5761010080835404028352916020019161069a565b820191906000526020600020905b81548152906001019060200180831161067d57829003601f168201915b50505050508152505081526020019060010190610552565b5050505081526020016004820180546106ca906135bb565b80601f01602080910402602001604051908101604052809291908181526020018280546106f6906135bb565b80156107435780601f1061071857610100808354040283529160200191610743565b820191906000526020600020905b81548152906001019060200180831161072657829003601f168201915b505050919092525050508152600582015467ffffffffffffffff16602080830191909152600690920154604090910152908252600192909201910161036b565b50505050905092915050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064015b60405180910390fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b600061089d6003610f91565b905090565b606060006108b06003610f91565b905060006108be848661363d565b90508315806108cd5750818110155b1561090d576040805160008082526020820190925290610903565b6108f0612cfc565b8152602001906001900390816108e85790505b50925050506102fc565b60006109198583613683565b9050828111156109265750815b60006109328383613696565b67ffffffffffffffff81111561094a5761094a613654565b60405190808252806020026020018201604052801561098357816020015b610970612cfc565b8152602001906001900390816109685790505b50905060006109926003610f9b565b9050835b83811015610b165760008282815181106109b2576109b26136a9565b60209081029190910181015160408051808201825267ffffffffffffffff831680825260009081526002855282902082518154608081880283018101909552606082018181529597509295860194909391928492849190840182828015610a3857602002820191906000526020600020905b815481526020019060010190808311610a24575b5050509183525050600182015460ff166020820152600282018054604090920191610a62906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8e906135bb565b8015610adb5780601f10610ab057610100808354040283529160200191610adb565b820191906000526020600020905b815481529060010190602001808311610abe57829003601f168201915b50505091909252505050905284610af28885613696565b81518110610b0257610b026136a9565b602090810291909101015250600101610996565b5090979650505050505050565b610b2b610faf565b610b3481611032565b50565b610b3f610faf565b60005b83811015610d2557610b86858583818110610b5f57610b5f6136a9565b9050602002016020810190610b7491906136d8565b60039067ffffffffffffffff16611127565b610bf057848482818110610b9c57610b9c6136a9565b9050602002016020810190610bb191906136d8565b6040517f1bd4d2d200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260240161080c565b60026000868684818110610c0657610c066136a9565b9050602002016020810190610c1b91906136d8565b67ffffffffffffffff1681526020810191909152604001600090812090610c428282612d44565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055610c7a600283016000612d62565b5050610cb8858583818110610c9157610c916136a9565b9050602002016020810190610ca691906136d8565b60039067ffffffffffffffff1661113f565b507f2a680691fef3b2d105196805935232c661ce703e92d464ef0b94a7bc62d714f0858583818110610cec57610cec6136a9565b9050602002016020810190610d0191906136d8565b60405167ffffffffffffffff909116815260200160405180910390a1600101610b42565b5060005b81811015610ecf576000838383818110610d4557610d456136a9565b9050602002810190610d5791906136f3565b610d65906020810190613731565b610d6e906138e7565b90506000848484818110610d8457610d846136a9565b9050602002810190610d9691906136f3565b610da49060208101906136d8565b9050610db3826000015161114b565b816020015160ff16600003610df4576040517fa9b3766e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff81166000908152600260209081526040909120835180518593610e24928492910190612d9c565b5060208201516001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff90921691909117905560408201516002820190610e719082613a0f565b50610e8b91506003905067ffffffffffffffff8316611297565b507f05dd57854af2c291a94ea52e7c43d80bc3be7fa73022f98b735dea86642fa5e08183604051610ebd929190613b29565b60405180910390a15050600101610d29565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610f45576040517fac7a7efd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f5c610f5786880188613c67565b6112a3565b8151919350915015610f7457610f74836000846114e0565b805115610f8757610f87836001836114e0565b5050505050505050565b60006102fc825490565b60606000610fa883611db9565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161080c565b565b3373ffffffffffffffffffffffffffffffffffffffff8216036110b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161080c565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008181526001830160205260408120541515610fa8565b6000610fa88383611e15565b60005b81518110156112935760008019167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350c946fe8484815181106111aa576111aa6136a9565b60200260200101516040518263ffffffff1660e01b81526004016111d091815260200190565b600060405180830381865afa1580156111ed573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526112339190810190613e8b565b608001510361128b5781818151811061124e5761124e6136a9565b60200260200101516040517f8907a4fa00000000000000000000000000000000000000000000000000000000815260040161080c91815260200190565b60010161114e565b5050565b6000610fa88383611f0f565b606080600460ff16835111156112e5576040517f8854586400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160028082526060820190925290816020015b61135b6040805161010081019091528060008152602001600067ffffffffffffffff168152602001600060ff168152602001600067ffffffffffffffff168152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816112fb57505060408051600280825260608201909252919350602082015b6113e56040805161010081019091528060008152602001600067ffffffffffffffff168152602001600060ff168152602001600067ffffffffffffffff168152602001606081526020016060815260200160608152602001606081525090565b81526020019060019003908161138557905050905060008060005b85518110156114d357600086828151811061141d5761141d6136a9565b602002602001015160000151600181111561143a5761143a61302f565b0361148757858181518110611451576114516136a9565b602002602001015185848151811061146b5761146b6136a9565b60200260200101819052508261148090613f63565b92506114cb565b858181518110611499576114996136a9565b60200260200101518483815181106114b3576114b36136a9565b6020026020010181905250816114c890613f63565b91505b600101611400565b5090835281529092909150565b63ffffffff83166000908152600560205260408120818460018111156115085761150861302f565b60018111156115195761151961302f565b8152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561195f57600084815260209020604080516101608101909152600784029091018054829060608201908390829060ff16600181111561158c5761158c61302f565b600181111561159d5761159d61302f565b8152815467ffffffffffffffff61010082048116602084015260ff690100000000000000000083041660408401526a01000000000000000000009091041660608201526001820180546080909201916115f5906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611621906135bb565b801561166e5780601f106116435761010080835404028352916020019161166e565b820191906000526020600020905b81548152906001019060200180831161165157829003601f168201915b50505050508152602001600282018054611687906135bb565b80601f01602080910402602001604051908101604052809291908181526020018280546116b3906135bb565b80156117005780601f106116d557610100808354040283529160200191611700565b820191906000526020600020905b8154815290600101906020018083116116e357829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561188e57838290600052602060002090600302016040518060600160405290816000820154815260200160018201805461176b906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611797906135bb565b80156117e45780601f106117b9576101008083540402835291602001916117e4565b820191906000526020600020905b8154815290600101906020018083116117c757829003601f168201915b505050505081526020016002820180546117fd906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611829906135bb565b80156118765780601f1061184b57610100808354040283529160200191611876565b820191906000526020600020905b81548152906001019060200180831161185957829003601f168201915b5050505050815250508152602001906001019061172e565b5050505081526020016004820180546118a6906135bb565b80601f01602080910402602001604051908101604052809291908181526020018280546118d2906135bb565b801561191f5780601f106118f45761010080835404028352916020019161191f565b820191906000526020600020905b81548152906001019060200180831161190257829003601f168201915b505050919092525050508152600582015467ffffffffffffffff166020808301919091526006909201546040909101529082526001929092019101611547565b50505050905060006119718251611f5e565b9050600061197f8451611f5e565b905061198b8282611fb0565b600061199a878587868661206c565b90506119a68482612448565b63ffffffff87166000908152600560205260408120908760018111156119ce576119ce61302f565b60018111156119df576119df61302f565b815260200190815260200160002060006119f99190612de7565b60005b8151811015611d5c5763ffffffff8816600090815260056020526040812081896001811115611a2d57611a2d61302f565b6001811115611a3e57611a3e61302f565b81526020019081526020016000206001816001815401808255809150500390600052602060002090600702019050828281518110611a7e57611a7e6136a9565b6020026020010151604001518160060181905550828281518110611aa457611aa46136a9565b6020026020010151602001518160050160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008160000190506000848481518110611af657611af66136a9565b602090810291909101015151805183549192509083907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115611b4157611b4161302f565b021790555060208101518254604083015160608401517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff90921661010067ffffffffffffffff948516027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff1617690100000000000000000060ff90921691909102177fffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffff166a0100000000000000000000929091169190910217825560808101516001830190611c109082613a0f565b5060a08101516002830190611c259082613a0f565b5060e08101516004830190611c3a9082613a0f565b505b60c08101515160038301541115611cbb5781600301805480611c6057611c60613f9b565b60008281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020181815590611ca46001830182612d62565b611cb2600283016000612d62565b50509055611c3c565b60005b8160c0015151811015611d4d5760038301548110611d4557826003018260c001518281518110611cf057611cf06136a9565b6020908102919091018101518254600181810185556000948552938390208251600390920201908155918101519092820190611d2c9082613a0f565b5060408201516002820190611d419082613a0f565b5050505b600101611cbe565b505050508060010190506119fc565b50856001811115611d6f57611d6f61302f565b60ff168763ffffffff167ff4095525e757e2fec7f3d3ffb3482db215dbbc7e7c4f63a11e04529ea827171f83604051611da8919061311e565b60405180910390a350505050505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611e0957602002820191906000526020600020905b815481526020019060010190808311611df5575b50505050509050919050565b60008181526001830160205260408120548015611efe576000611e39600183613696565b8554909150600090611e4d90600190613696565b9050808214611eb2576000866000018281548110611e6d57611e6d6136a9565b9060005260206000200154905080876000018481548110611e9057611e906136a9565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611ec357611ec3613f9b565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102fc565b60009150506102fc565b5092915050565b6000818152600183016020526040812054611f56575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102fc565b5060006102fc565b60006002821115611f9e576040517f3e4785260000000000000000000000000000000000000000000000000000000081526004810183905260240161080c565b8160028111156102fc576102fc61302f565b6000826002811115611fc457611fc461302f565b826002811115611fd657611fd661302f565b611fe09190613fca565b9050806001148061202c5750807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14801561202c5750600283600281111561202a5761202a61302f565b145b1561203657505050565b82826040517f0a6b675b00000000000000000000000000000000000000000000000000000000815260040161080c929190613ffa565b60606000845167ffffffffffffffff81111561208a5761208a613654565b6040519080825280602002602001820160405280156120b3578160200160208202803683370190505b50905060008460028111156120ca576120ca61302f565b1480156120e8575060018360028111156120e6576120e661302f565b145b1561212957600181600081518110612102576121026136a9565b602002602001019067ffffffffffffffff16908167ffffffffffffffff1681525050612291565b600184600281111561213d5761213d61302f565b14801561215b575060028360028111156121595761215961302f565b145b156121f25785600081518110612173576121736136a9565b60200260200101516020015181600081518110612192576121926136a9565b602002602001019067ffffffffffffffff16908167ffffffffffffffff1681525050856000815181106121c7576121c76136a9565b60200260200101516020015160016121df9190614015565b81600181518110612102576121026136a9565b60028460028111156122065761220661302f565b148015612224575060018360028111156122225761222261302f565b145b1561225b578560018151811061223c5761223c6136a9565b60200260200101516020015181600081518110612102576121026136a9565b83836040517f0a6b675b00000000000000000000000000000000000000000000000000000000815260040161080c929190613ffa565b6000855167ffffffffffffffff8111156122ad576122ad613654565b60405190808252806020026020018201604052801561235357816020015b6040805161016081018252600060608083018281526080840183905260a0840183905260c0840183905260e0840182905261010084018290526101208401829052610140840191909152825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816122cb5790505b50905060005b825181101561243c57612384878281518110612377576123776136a9565b60200260200101516127c7565b60405180606001604052808883815181106123a1576123a16136a9565b602002602001015181526020018483815181106123c0576123c06136a9565b602002602001015167ffffffffffffffff1681526020016124148b8685815181106123ed576123ed6136a9565b60200260200101518b8681518110612407576124076136a9565b6020026020010151612c35565b815250828281518110612429576124296136a9565b6020908102919091010152600101612359565b50979650505050505050565b815181518115801561245a5750806001145b156124fc5782600081518110612472576124726136a9565b60200260200101516020015167ffffffffffffffff166001146124f657826000815181106124a2576124a26136a9565b60209081029190910181015101516040517fc1658eb800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526001602482015260440161080c565b50505050565b81600114801561250c5750806002145b156126c25783600081518110612524576125246136a9565b60200260200101516040015183600081518110612543576125436136a9565b602002602001015160400151146125cf5782600081518110612567576125676136a9565b60200260200101516040015184600081518110612586576125866136a9565b6020026020010151604001516040517fc7ccdd7f00000000000000000000000000000000000000000000000000000000815260040161080c929190918252602082015260400190565b836000815181106125e2576125e26136a9565b60200260200101516020015160016125fa9190614015565b67ffffffffffffffff1683600181518110612617576126176136a9565b60200260200101516020015167ffffffffffffffff16146124f65782600181518110612645576126456136a9565b60200260200101516020015184600081518110612664576126646136a9565b602002602001015160200151600161267c9190614015565b6040517fc1658eb800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff92831660048201529116602482015260440161080c565b8160021480156126d25750806001145b1561279557836001815181106126ea576126ea6136a9565b60200260200101516040015183600081518110612709576127096136a9565b602002602001015160400151146124f6578260008151811061272d5761272d6136a9565b6020026020010151604001518460018151811061274c5761274c6136a9565b6020026020010151604001516040517f9e97567000000000000000000000000000000000000000000000000000000000815260040161080c929190918252602082015260400190565b6040517f1f1b2bb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015167ffffffffffffffff1660000361280f576040517f698cf8e000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815160018111156128245761282461302f565b1415801561284557506001815160018111156128425761284261302f565b14155b1561287c576040517f3302dbd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808101515115806128b9575060408051600060208201520160405160208183030381529060405280519060200120816080015180519060200120145b156128f0576040517f358c192700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a081015151158061292d5750604080516000602082015201604051602081830303815290604052805190602001208160a0015180519060200120145b15612964576040517fdee9857400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015161297f9060039067ffffffffffffffff16611127565b6129c75760208101516040517f1bd4d2d200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260240161080c565b60408082015160208084015167ffffffffffffffff1660009081526002909152919091206001015460ff918216911681811115612a3a576040517f2db22040000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440161080c565b60c083015151610100811115612a7c576040517f1b925da600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a8783600361363d565b8111612abf576040517f4856694e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808267ffffffffffffffff811115612adb57612adb613654565b604051908082528060200260200182016040528015612b04578160200160208202803683370190505b50905060005b83811015612bc45760008760c001518281518110612b2a57612b2a6136a9565b60200260200101519050806040015151600014612b4f5783612b4b81613f63565b9450505b6020810151511580612b6057508051155b15612b9957806040517f9fa4031400000000000000000000000000000000000000000000000000000000815260040161080c9190614036565b8060000151838381518110612bb057612bb06136a9565b602090810291909101015250600101612b0a565b506000612bd285600361363d565b612bdd906001613683565b905080831015612c23576040517f548dd21f000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260440161080c565b612c2c8261114b565b50505050505050565b600080826020015185846000015185608001518660a00151888860c0015189604001518a606001518b60e00151604051602001612c7b9a99989796959493929190614049565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e0a000000000000000000000000000000000000000000000000000000000000179150509392505050565b6040518060400160405280600067ffffffffffffffff168152602001612d3f604051806060016040528060608152602001600060ff168152602001606081525090565b905290565b5080546000825590600052602060002090810190610b349190612e08565b508054612d6e906135bb565b6000825580601f10612d7e575050565b601f016020900490600052602060002090810190610b349190612e08565b828054828255906000526020600020908101928215612dd7579160200282015b82811115612dd7578251825591602001919060010190612dbc565b50612de3929150612e08565b5090565b5080546000825560070290600052602060002090810190610b349190612e1d565b5b80821115612de35760008155600101612e09565b80821115612de35780547fffffffffffffffffffffffffffff00000000000000000000000000000000000016815560008181612e5c6001830182612d62565b612e6a600283016000612d62565b612e78600383016000612ec2565b612e86600483016000612d62565b5050506005810180547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016905560006006820155600701612e1d565b5080546000825560030290600052602060002090810190610b3491905b80821115612de3576000808255612ef96001830182612d62565b612f07600283016000612d62565b50600301612edf565b600060208284031215612f2257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610fa857600080fd5b6000815180845260005b81811015612f7857602081850181015186830182015201612f5c565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610fa86020830184612f52565b63ffffffff81168114610b3457600080fd5b8035612fe681612fc9565b919050565b803560028110612fe657600080fd5b6000806040838503121561300d57600080fd5b823561301881612fc9565b915061302660208401612feb565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061306e5761306e61302f565b9052565b8051825260006020820151606060208501526130916060850182612f52565b9050604083015184820360408601526130aa8282612f52565b95945050505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015610b16577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301895261310c838351613072565b988401989250908301906001016130d2565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156132ad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089840301855281516060815181865261318c828701825161305e565b8981015160806131a78189018367ffffffffffffffff169052565b8a830151915060a06131bd818a018460ff169052565b938301519360c092506131db8984018667ffffffffffffffff169052565b818401519450610100915060e082818b01526131fb6101608b0187612f52565b95508185015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0808b880301848c01526132378784612f52565b948601518b860382016101208d015294965061325387866130b3565b9650818601519550808b8803016101408c015250505050506132758282612f52565b915050888201516132918a87018267ffffffffffffffff169052565b5090870151938701939093529386019390860190600101613147565b509098975050505050505050565b6000602082840312156132cd57600080fd5b8135610fa881612fc9565b600080604083850312156132eb57600080fd5b50508035926020909101359150565b805160608084528151908401819052600091602091908201906080860190845b818110156133365783518352928401929184019160010161331a565b505060ff602086015116602087015260408501519250858103604087015261335e8184612f52565b9695505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156132ad578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805167ffffffffffffffff1684528701518784018790526133e5878501826132fa565b9588019593505090860190600101613391565b60006020828403121561340a57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610fa857600080fd5b60008083601f84011261344057600080fd5b50813567ffffffffffffffff81111561345857600080fd5b6020830191508360208260051b850101111561347357600080fd5b9250929050565b6000806000806040858703121561349057600080fd5b843567ffffffffffffffff808211156134a857600080fd5b6134b48883890161342e565b909650945060208701359150808211156134cd57600080fd5b506134da8782880161342e565b95989497509550505050565b803567ffffffffffffffff81168114612fe657600080fd5b6000806000806000806080878903121561351757600080fd5b863567ffffffffffffffff8082111561352f57600080fd5b61353b8a838b0161342e565b9098509650602089013591508082111561355457600080fd5b818901915089601f83011261356857600080fd5b81358181111561357757600080fd5b8a602082850101111561358957600080fd5b6020830196508095505050506135a1604088016134e6565b91506135af60608801612fdb565b90509295509295509295565b600181811c908216806135cf57607f821691505b602082108103613608577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176102fc576102fc61360e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b808201808211156102fc576102fc61360e565b818103818111156102fc576102fc61360e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156136ea57600080fd5b610fa8826134e6565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261372757600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261372757600080fd5b6040516060810167ffffffffffffffff8111828210171561378857613788613654565b60405290565b604051610100810167ffffffffffffffff8111828210171561378857613788613654565b60405160e0810167ffffffffffffffff8111828210171561378857613788613654565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561381c5761381c613654565b604052919050565b600067ffffffffffffffff82111561383e5761383e613654565b5060051b60200190565b803560ff81168114612fe657600080fd5b600082601f83011261386a57600080fd5b813567ffffffffffffffff81111561388457613884613654565b6138b560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016137d5565b8181528460208386010111156138ca57600080fd5b816020850160208301376000918101602001919091529392505050565b6000606082360312156138f957600080fd5b613901613765565b823567ffffffffffffffff8082111561391957600080fd5b9084019036601f83011261392c57600080fd5b8135602061394161393c83613824565b6137d5565b82815260059290921b8401810191818101903684111561396057600080fd5b948201945b8386101561397e57853582529482019490820190613965565b86525061398c878201613848565b908501525060408501359150808211156139a557600080fd5b506139b236828601613859565b60408301525092915050565b601f821115613a0a576000816000526020600020601f850160051c810160208610156139e75750805b601f850160051c820191505b81811015613a06578281556001016139f3565b5050505b505050565b815167ffffffffffffffff811115613a2957613a29613654565b613a3d81613a3784546135bb565b846139be565b602080601f831160018114613a905760008415613a5a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613a06565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613add57888601518255948401946001909101908401613abe565b5085821015613b1957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b67ffffffffffffffff83168152604060208201526000613b4c60408301846132fa565b949350505050565b600082601f830112613b6557600080fd5b81356020613b7561393c83613824565b82815260059290921b84018101918181019086841115613b9457600080fd5b8286015b84811015613c5c57803567ffffffffffffffff80821115613bb95760008081fd5b81890191506060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d03011215613bf25760008081fd5b613bfa613765565b87840135815260408085013584811115613c145760008081fd5b613c228e8b83890101613859565b838b015250918401359183831115613c3a5760008081fd5b613c488d8a85880101613859565b908201528652505050918301918301613b98565b509695505050505050565b60006020808385031215613c7a57600080fd5b823567ffffffffffffffff80821115613c9257600080fd5b818501915085601f830112613ca657600080fd5b8135613cb461393c82613824565b81815260059190911b83018401908481019088831115613cd357600080fd5b8585015b83811015613e1457803585811115613cee57600080fd5b8601610100818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001811315613d2457600080fd5b613d2c61378e565b613d378a8401612feb565b8152613d45604084016134e6565b8a820152613d5560608401613848565b6040820152613d66608084016134e6565b606082015260a083013588811115613d7d57600080fd5b613d8b8e8c83870101613859565b60808301525060c083013588811115613da45760008081fd5b613db28e8c83870101613859565b60a08301525060e08084013589811115613dcc5760008081fd5b613dda8f8d83880101613b54565b60c084015250918301359188831115613df35760008081fd5b613e018e8c85870101613859565b9082015285525050918601918601613cd7565b5098975050505050505050565b8051612fe681612fc9565b600082601f830112613e3d57600080fd5b81516020613e4d61393c83613824565b8083825260208201915060208460051b870101935086841115613e6f57600080fd5b602086015b84811015613c5c5780518352918301918301613e74565b600060208284031215613e9d57600080fd5b815167ffffffffffffffff80821115613eb557600080fd5b9083019060e08286031215613ec957600080fd5b613ed16137b2565b613eda83613e21565b8152613ee860208401613e21565b6020820152613ef960408401613e21565b6040820152606083015160608201526080830151608082015260a083015182811115613f2457600080fd5b613f3087828601613e2c565b60a08301525060c083015182811115613f4857600080fd5b613f5487828601613e2c565b60c08301525095945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f9457613f9461360e565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b8181036000831280158383131683831282161715611f0857611f0861360e565b6003811061306e5761306e61302f565b604081016140088285613fea565b610fa86020830184613fea565b67ffffffffffffffff818116838216019080821115611f0857611f0861360e565b602081526000610fa86020830184613072565b600061014067ffffffffffffffff808e168452602063ffffffff8e1681860152614076604086018e61305e565b8260608601526140888386018d612f52565b9250848303608086015261409c838c612f52565b918a1660a086015284820360c0860152885180835291925080830191600581901b84018201828b0160005b83811015614113577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0878403018652614101838351613072565b958501959250908401906001016140c7565b505060ff8a1660e088015267ffffffffffffffff89166101008801528681036101208801526141428189612f52565b955050505050509b9a505050505050505050505056fea164736f6c6343000818000a", } var CCIPConfigABI = CCIPConfigMetaData.ABI @@ -1221,7 +1222,7 @@ func (CCIPConfigChainConfigSet) Topic() common.Hash { } func (CCIPConfigConfigSet) Topic() common.Hash { - return common.HexToHash("0x0fe4c45ffc7f05233ddfee7d79ac01d075176a0aa116068c486a2f7490088a0b") + return common.HexToHash("0xf4095525e757e2fec7f3d3ffb3482db215dbbc7e7c4f63a11e04529ea827171f") } func (CCIPConfigOwnershipTransferRequested) Topic() common.Hash { diff --git a/core/gethwrappers/ccip/generated/ocr3_config_encoder/ocr3_config_encoder.go b/core/gethwrappers/ccip/generated/ocr3_config_encoder/ocr3_config_encoder.go index 5056db1005..7dfa6869e7 100644 --- a/core/gethwrappers/ccip/generated/ocr3_config_encoder/ocr3_config_encoder.go +++ b/core/gethwrappers/ccip/generated/ocr3_config_encoder/ocr3_config_encoder.go @@ -34,6 +34,7 @@ type CCIPConfigTypesOCR3Config struct { FRoleDON uint8 OffchainConfigVersion uint64 OfframpAddress []byte + RmnHomeAddress []byte Nodes []CCIPConfigTypesOCR3Node OffchainConfig []byte } @@ -45,7 +46,7 @@ type CCIPConfigTypesOCR3Node struct { } var IOCR3ConfigEncoderMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"FRoleDON\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offrampAddress\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Config[]\",\"name\":\"config\",\"type\":\"tuple[]\"}],\"name\":\"exposeOCR3Config\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"enumInternal.OCRPluginType\",\"name\":\"pluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"FRoleDON\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offrampAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rmnHomeAddress\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signerKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"transmitterKey\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Node[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"internalType\":\"structCCIPConfigTypes.OCR3Config[]\",\"name\":\"config\",\"type\":\"tuple[]\"}],\"name\":\"exposeOCR3Config\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } var IOCR3ConfigEncoderABI = IOCR3ConfigEncoderMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index fca33c5443..215ac3988f 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 @@ -4,7 +4,7 @@ burn_mint_token_pool: ../../../contracts/solc/v0.8.24/BurnMintTokenPool/BurnMint burn_mint_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/BurnMintTokenPoolAndProxy/BurnMintTokenPoolAndProxy.abi ../../../contracts/solc/v0.8.24/BurnMintTokenPoolAndProxy/BurnMintTokenPoolAndProxy.bin 717c079d5d13300cf3c3ee871c6e5bf9af904411f204fb081a9f3b263cca1391 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 f67d4a98804a9534a6554da3a57779632d55ad76db5ecc16ade74774769cdd69 +ccip_config: ../../../contracts/solc/v0.8.24/CCIPConfig/CCIPConfig.abi ../../../contracts/solc/v0.8.24/CCIPConfig/CCIPConfig.bin a63406386676963a292fa6ef41bf6302fbf0421599a3fc83c786fa5d3adb063a ccip_encoding_utils: ../../../contracts/solc/v0.8.24/CCIPEncodingUtils/CCIPEncodingUtils.abi ../../../contracts/solc/v0.8.24/CCIPEncodingUtils/CCIPEncodingUtils.bin ebabd5311ad4374df0f2f5cd5640bb58d938d92f5a82962ac4df7b6e5af2c197 ccip_reader_tester: ../../../contracts/solc/v0.8.24/CCIPReaderTester/CCIPReaderTester.abi ../../../contracts/solc/v0.8.24/CCIPReaderTester/CCIPReaderTester.bin 32916b41e0070cb6853d558bbff06ab367324fa52cac59893065e8f616ff14f0 commit_store: ../../../contracts/solc/v0.8.24/CommitStore/CommitStore.abi ../../../contracts/solc/v0.8.24/CommitStore/CommitStore.bin 274d87db70b643e00ab0a7e7845bb4b791f3b613bfc87708d33fc5a8369e2a41 @@ -23,7 +23,7 @@ mock_v3_aggregator_contract: ../../../contracts/solc/v0.8.24/MockV3Aggregator/Mo multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRateLimiter/MultiAggregateRateLimiter.abi ../../../contracts/solc/v0.8.24/MultiAggregateRateLimiter/MultiAggregateRateLimiter.bin 0b541232e49727e947dc164eadf35963c66e67576f21baa0ecaa06a8833148ed multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 04b6b261dd71925670bf4d904aaf7bf08543452009feefb88e07d4c49d12e969 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 d507c3ac70a7d1033b75151c1e5b854b41aaee164dfaa3e5477de400db1aa1f7 +ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin eaec75ca5276a95f934f4da6ea7351520541813628ed1450ef5e6cf7005b2724 offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 941b18b4e2aef977195fefba514e17c9475667e6f8513b18cabfb07ff90136ce onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 4f29f05261bdaf9b99e675c1169c0d5cba841b6dd7ca3a8997cc0d3cae7ba850 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b diff --git a/core/scripts/go.mod b/core/scripts/go.mod index b8cddfbb5a..3d263a92be 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -22,7 +22,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.4.0 - github.com/smartcontractkit/chain-selectors v1.0.23 + github.com/smartcontractkit/chain-selectors v1.0.24 github.com/smartcontractkit/chainlink-automation v1.0.4 github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 diff --git a/core/scripts/go.sum b/core/scripts/go.sum index db4c3cd316..f180e2a21d 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1070,8 +1070,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartcontractkit/chain-selectors v1.0.23 h1:D2Eaex4Cw/O7Lg3tX6WklOqnjjIQAEBnutCtksPzVDY= -github.com/smartcontractkit/chain-selectors v1.0.23/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= +github.com/smartcontractkit/chain-selectors v1.0.24 h1:day+2l0vBErgVIs2Y9ifSz+T7hIg4wAoiWlMCjCdhto= +github.com/smartcontractkit/chain-selectors v1.0.24/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.4 h1:iyW181JjKHLNMnDleI8umfIfVVlwC7+n5izbLSFgjw8= github.com/smartcontractkit/chainlink-automation v1.0.4/go.mod h1:u4NbPZKJ5XiayfKHD/v3z3iflQWqvtdhj13jVZXj/cM= github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 h1:pdEpjgbZ5w/Sd5lzg/XiuC5gVyrmSovOo+3nUD46SP8= diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 95743363ab..10e2519049 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -4229,6 +4229,7 @@ GasLimit = 5400000 AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false +ChainType = 'astar' FinalityDepth = 100 FinalityTagEnabled = true LogBackfillBatchSize = 1000 @@ -4652,16 +4653,16 @@ Enabled = false Enabled = true [GasEstimator] -Mode = 'BlockHistory' +Mode = 'FeeHistory' PriceDefault = '20 gwei' PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '100 mwei' +PriceMin = '0' LimitDefault = 8000000 LimitMax = 8000000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false -BumpMin = '100 mwei' +BumpMin = '5 gwei' BumpPercent = 40 BumpThreshold = 3 EIP1559DynamicFees = false @@ -4671,13 +4672,13 @@ TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 12 +BlockHistorySize = 8 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 [GasEstimator.FeeHistory] -CacheTimeout = '10s' +CacheTimeout = '4s' [HeadTracker] HistoryDepth = 2000 @@ -5005,104 +5006,6 @@ GasLimit = 5400000
-- -```toml -AutoCreateKey = true -BlockBackfillDepth = 10 -BlockBackfillSkip = false -ChainType = 'zkevm' -FinalityDepth = 500 -FinalityTagEnabled = false -LogBackfillBatchSize = 1000 -LogPollInterval = '30s' -LogKeepBlocksDepth = 100000 -LogPrunePageSize = 10000 -BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 1 -MinContractPayment = '0.00001 link' -NonceAutoSync = true -NoNewHeadsThreshold = '12m0s' -RPCDefaultBatchSize = 100 -RPCBlockQueryDelay = 1 -FinalizedBlockOffset = 0 -NoNewFinalizedHeadsThreshold = '0s' - -[Transactions] -ForwardersEnabled = false -MaxInFlight = 16 -MaxQueued = 250 -ReaperInterval = '1h0m0s' -ReaperThreshold = '168h0m0s' -ResendAfterThreshold = '3m0s' - -[Transactions.AutoPurge] -Enabled = false - -[BalanceMonitor] -Enabled = true - -[GasEstimator] -Mode = 'BlockHistory' -PriceDefault = '20 gwei' -PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '50 mwei' -LimitDefault = 8000000 -LimitMax = 8000000 -LimitMultiplier = '1' -LimitTransfer = 21000 -EstimateLimit = false -BumpMin = '20 mwei' -BumpPercent = 40 -BumpThreshold = 3 -EIP1559DynamicFees = false -FeeCapDefault = '100 gwei' -TipCapDefault = '1 wei' -TipCapMin = '1 wei' - -[GasEstimator.BlockHistory] -BatchSize = 25 -BlockHistorySize = 12 -CheckInclusionBlocks = 12 -CheckInclusionPercentile = 90 -TransactionPercentile = 60 - -[GasEstimator.FeeHistory] -CacheTimeout = '10s' - -[HeadTracker] -HistoryDepth = 2000 -MaxBufferSize = 3 -SamplingInterval = '1s' -MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true - -[NodePool] -PollFailureThreshold = 5 -PollInterval = '10s' -SelectionMode = 'HighestHead' -SyncThreshold = 5 -LeaseDuration = '0s' -NodeIsSyncingEnabled = false -FinalizedBlockPollInterval = '5s' -EnforceRepeatableRead = false -DeathDeclarationDelay = '10s' - -[OCR] -ContractConfirmations = 1 -ContractTransmitterTransmitTimeout = '10s' -DatabaseTimeout = '10s' -DeltaCOverride = '168h0m0s' -DeltaCJitterOverride = '1h0m0s' -ObservationGracePeriod = '1s' - -[OCR2] -[OCR2.Automation] -GasLimit = 5400000 -``` - -
```toml @@ -5239,16 +5142,16 @@ Enabled = false Enabled = true [GasEstimator] -Mode = 'BlockHistory' +Mode = 'FeeHistory' PriceDefault = '20 gwei' PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '1 mwei' +PriceMin = '0' LimitDefault = 8000000 LimitMax = 8000000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false -BumpMin = '20 mwei' +BumpMin = '5 gwei' BumpPercent = 40 BumpThreshold = 3 EIP1559DynamicFees = false @@ -5258,13 +5161,13 @@ TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 12 +BlockHistorySize = 8 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 [GasEstimator.FeeHistory] -CacheTimeout = '10s' +CacheTimeout = '4s' [HeadTracker] HistoryDepth = 2000 @@ -6577,6 +6480,208 @@ GasLimit = 5400000
+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'optimismBedrock' +FinalityDepth = 1000 +FinalityTagEnabled = true +LinkContractAddress = '0xDEE94506570cA186BC1e3516fCf4fd719C312cCD' +LogBackfillBatchSize = 1000 +LogPollInterval = '2s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 10000 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '40s' +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '15m0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '30s' + +[Transactions.AutoPurge] +Enabled = true +Threshold = 90 +MinAttempts = 3 + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '1 wei' +LimitDefault = 8000000 +LimitMax = 8000000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '100 wei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = true +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 60 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 2000 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 10 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 6500000 +``` + +
+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'optimismBedrock' +FinalityDepth = 1000 +FinalityTagEnabled = true +LinkContractAddress = '0x5D6d033B4FbD2190D99D930719fAbAcB64d2439a' +LogBackfillBatchSize = 1000 +LogPollInterval = '2s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 10000 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '40s' +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '15m0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '30s' + +[Transactions.AutoPurge] +Enabled = true +Threshold = 90 +MinAttempts = 3 + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '1 wei' +LimitDefault = 8000000 +LimitMax = 8000000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '100 wei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = true +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 24 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 2000 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 10 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 6500000 +``` + +
```toml diff --git a/go.mod b/go.mod index 0c6c29d0e6..2cf454ccae 100644 --- a/go.mod +++ b/go.mod @@ -73,7 +73,7 @@ require ( github.com/scylladb/go-reflectx v1.0.1 github.com/shirou/gopsutil/v3 v3.24.3 github.com/shopspring/decimal v1.4.0 - github.com/smartcontractkit/chain-selectors v1.0.23 + github.com/smartcontractkit/chain-selectors v1.0.24 github.com/smartcontractkit/chainlink-automation v1.0.4 github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240710121324-3ed288aa9b45 diff --git a/go.sum b/go.sum index d65d3fa705..1ee3d32944 100644 --- a/go.sum +++ b/go.sum @@ -1026,8 +1026,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartcontractkit/chain-selectors v1.0.23 h1:D2Eaex4Cw/O7Lg3tX6WklOqnjjIQAEBnutCtksPzVDY= -github.com/smartcontractkit/chain-selectors v1.0.23/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= +github.com/smartcontractkit/chain-selectors v1.0.24 h1:day+2l0vBErgVIs2Y9ifSz+T7hIg4wAoiWlMCjCdhto= +github.com/smartcontractkit/chain-selectors v1.0.24/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.4 h1:iyW181JjKHLNMnDleI8umfIfVVlwC7+n5izbLSFgjw8= github.com/smartcontractkit/chainlink-automation v1.0.4/go.mod h1:u4NbPZKJ5XiayfKHD/v3z3iflQWqvtdhj13jVZXj/cM= github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 h1:pdEpjgbZ5w/Sd5lzg/XiuC5gVyrmSovOo+3nUD46SP8= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 635332c58e..f11f609258 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -32,7 +32,7 @@ require ( github.com/segmentio/ksuid v1.0.4 github.com/shopspring/decimal v1.4.0 github.com/slack-go/slack v0.12.2 - github.com/smartcontractkit/chain-selectors v1.0.23 + github.com/smartcontractkit/chain-selectors v1.0.24 github.com/smartcontractkit/chainlink-automation v1.0.4 github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.0 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 727c8bf04a..91d2f9cdf1 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1413,8 +1413,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ= github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= -github.com/smartcontractkit/chain-selectors v1.0.23 h1:D2Eaex4Cw/O7Lg3tX6WklOqnjjIQAEBnutCtksPzVDY= -github.com/smartcontractkit/chain-selectors v1.0.23/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= +github.com/smartcontractkit/chain-selectors v1.0.24 h1:day+2l0vBErgVIs2Y9ifSz+T7hIg4wAoiWlMCjCdhto= +github.com/smartcontractkit/chain-selectors v1.0.24/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.4 h1:iyW181JjKHLNMnDleI8umfIfVVlwC7+n5izbLSFgjw8= github.com/smartcontractkit/chainlink-automation v1.0.4/go.mod h1:u4NbPZKJ5XiayfKHD/v3z3iflQWqvtdhj13jVZXj/cM= github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 h1:pdEpjgbZ5w/Sd5lzg/XiuC5gVyrmSovOo+3nUD46SP8= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 2956080624..c46ec64093 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -393,7 +393,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/smartcontractkit/chain-selectors v1.0.23 // indirect + github.com/smartcontractkit/chain-selectors v1.0.24 // indirect github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240718160222-2dc0c8136bfa // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240710170203-5b41615da827 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240712132946-267a37c5ac6e // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 8162c16965..09384ccb12 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1385,8 +1385,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ= github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= -github.com/smartcontractkit/chain-selectors v1.0.23 h1:D2Eaex4Cw/O7Lg3tX6WklOqnjjIQAEBnutCtksPzVDY= -github.com/smartcontractkit/chain-selectors v1.0.23/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= +github.com/smartcontractkit/chain-selectors v1.0.24 h1:day+2l0vBErgVIs2Y9ifSz+T7hIg4wAoiWlMCjCdhto= +github.com/smartcontractkit/chain-selectors v1.0.24/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.4 h1:iyW181JjKHLNMnDleI8umfIfVVlwC7+n5izbLSFgjw8= github.com/smartcontractkit/chainlink-automation v1.0.4/go.mod h1:u4NbPZKJ5XiayfKHD/v3z3iflQWqvtdhj13jVZXj/cM= github.com/smartcontractkit/chainlink-common v0.2.2-0.20240723123524-e407ecd120b1 h1:pdEpjgbZ5w/Sd5lzg/XiuC5gVyrmSovOo+3nUD46SP8=