Skip to content

OmnichainExecutorOwner

OmnichainExecutorOwner at v2.15.0 is the upgradeable access-controlled owner of a destination OmnichainGovernanceExecutor. The previous description incorrectly called this contract OmnichainProposalSender.

Known selectors are registered by their full function-signature strings. The fallback resolves msg.sig, checks the corresponding AccessControlManager permission, and forwards the original calldata to the executor. upsertSignature is owner-only; setTrustedRemoteAddress and transferBridgeOwnership use exact ACM signatures. Ownership renunciation is disabled.

@custom:oz-upgrades-unsafe-allow state-variable-immutable

contract IOmnichainGovernanceExecutor OMNICHAIN_GOVERNANCE_EXECUTOR

Stores function signature corresponding to their 4 bytes hash value

mapping(bytes4 => string) functionRegistry

Initialize the contract

function initialize(address accessControlManager_) external
NameTypeDescription
accessControlManager_addressAddress of access control manager

Sets the source message sender address

function setTrustedRemoteAddress(uint16 srcChainId_, bytes srcAddress_) external
NameTypeDescription
srcChainId_uint16The LayerZero id of a source chain
srcAddress_bytesThe address of the contract on the source chain
  • Emits SetTrustedRemoteAddress with source chain Id and source address
  • Controlled by AccessControlManager

Invoked when called function does not exist in the contract

fallback(bytes data_) external returns (bytes)
NameTypeDescription
data_bytesCalldata containing the encoded function call
NameTypeDescription
[0]bytesResult of function call
  • Controlled by Access Control Manager

A registry of functions that are allowed to be executed from proposals

function upsertSignature(string[] signatures_, bool[] active_) external
NameTypeDescription
signatures_string[]Function signature to be added or removed
active_bool[]bool value, should be true to add function
  • Only owner

This function transfer the ownership of the executor from this contract to new owner

function transferBridgeOwnership(address newOwner_) external
NameTypeDescription
newOwner_addressNew owner of the governanceExecutor
  • Controlled by AccessControlManager

@notice Empty implementation of renounce ownership to avoid any mishappening

function renounceOwnership() public virtual