@venusprotocol/governance-contracts
Version:
781 lines • 155 kB
JSON
{
"address": "0x36a69dE601381be7b0DcAc5D5dD058825505F8f6",
"abi": [
{
"inputs": [
{
"internalType": "contract ILayerZeroEndpoint",
"name": "lzEndpoint_",
"type": "address"
},
{
"internalType": "address",
"name": "accessControlManager_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ZeroAddressNotAllowed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "executionHash",
"type": "bytes32"
}
],
"name": "ClearPayload",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint16",
"name": "remoteChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "payload",
"type": "bytes"
}
],
"name": "ExecuteRemoteProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "FallbackWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldAccessControlManager",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newAccessControlManager",
"type": "address"
}
],
"name": "NewAccessControlManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint16",
"name": "chainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "uint256",
"name": "oldMaxLimit",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newMaxLimit",
"type": "uint256"
}
],
"name": "SetMaxDailyLimit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint16",
"name": "remoteChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "bytes",
"name": "oldRemoteAddress",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "newRemoteAddress",
"type": "bytes"
}
],
"name": "SetTrustedRemoteAddress",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint16",
"name": "remoteChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "bytes",
"name": "payload",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "adapterParams",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "reason",
"type": "bytes"
}
],
"name": "StorePayload",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint16",
"name": "chainId",
"type": "uint16"
}
],
"name": "TrustedRemoteRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [],
"name": "LZ_ENDPOINT",
"outputs": [
{
"internalType": "contract ILayerZeroEndpoint",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "accessControlManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "chainIdToLast24HourCommandsSent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "chainIdToLast24HourWindowStart",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "chainIdToLastProposalSentTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "chainIdToMaxDailyLimit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "remoteChainId_",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "payload_",
"type": "bytes"
},
{
"internalType": "bool",
"name": "useZro_",
"type": "bool"
},
{
"internalType": "bytes",
"name": "adapterParams_",
"type": "bytes"
}
],
"name": "estimateFees",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "remoteChainId_",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "payload_",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "adapterParams_",
"type": "bytes"
},
{
"internalType": "address",
"name": "zroPaymentAddress_",
"type": "address"
}
],
"name": "execute",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to_",
"type": "address"
},
{
"internalType": "uint256",
"name": "pId_",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "remoteChainId_",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "payload_",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "adapterParams_",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "originalValue_",
"type": "uint256"
}
],
"name": "fallbackWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "version_",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "chainId_",
"type": "uint16"
},
{
"internalType": "uint256",
"name": "configType_",
"type": "uint256"
}
],
"name": "getConfig",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proposalCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "remoteChainId_",
"type": "uint16"
}
],
"name": "removeTrustedRemote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "pId_",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "remoteChainId_",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "payload_",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "adapterParams_",
"type": "bytes"
},
{
"internalType": "address",
"name": "zroPaymentAddress_",
"type": "address"
},
{
"internalType": "uint256",
"name": "originalValue_",
"type": "uint256"
}
],
"name": "retryExecute",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "accessControlManager_",
"type": "address"
}
],
"name": "setAccessControlManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "version_",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "chainId_",
"type": "uint16"
},
{
"internalType": "uint256",
"name": "configType_",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "config_",
"type": "bytes"
}
],
"name": "setConfig",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "chainId_",
"type": "uint16"
},
{
"internalType": "uint256",
"name": "limit_",
"type": "uint256"
}
],
"name": "setMaxDailyLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "version_",
"type": "uint16"
}
],
"name": "setSendVersion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "remoteChainId_",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "newRemoteAddress_",
"type": "bytes"
}
],
"name": "setTrustedRemoteAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "storedExecutionHashes",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "trustedRemoteLookup",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"transactionHash": "0x739c0eef59d21fc5e9d4ccdba24bfab647d484983e98430fee209b7cf72c95ab",
"receipt": {
"to": null,
"from": "0x92054EdBb53eCC4f2A1787e92f479CE10392A658",
"contractAddress": "0x36a69dE601381be7b0DcAc5D5dD058825505F8f6",
"transactionIndex": 69,
"gasUsed": "2925392",
"logsBloom": "0x00000000000000000000000000000040000001000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000080000800000000000000000000000000000000400000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x7e67ba21af92ac024c9524456b0a94c5636ef1f2b8840ca83694738c1c2cc93b",
"transactionHash": "0x739c0eef59d21fc5e9d4ccdba24bfab647d484983e98430fee209b7cf72c95ab",
"logs": [
{
"transactionIndex": 69,
"blockNumber": 39375361,
"transactionHash": "0x739c0eef59d21fc5e9d4ccdba24bfab647d484983e98430fee209b7cf72c95ab",
"address": "0x36a69dE601381be7b0DcAc5D5dD058825505F8f6",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x00000000000000000000000092054edbb53ecc4f2a1787e92f479ce10392a658"
],
"data": "0x",
"logIndex": 97,
"blockHash": "0x7e67ba21af92ac024c9524456b0a94c5636ef1f2b8840ca83694738c1c2cc93b"
}
],
"blockNumber": 39375361,
"cumulativeGasUsed": "7157259",
"status": 1,
"byzantium": true
},
"args": ["0x3c2269811836af69497E5F486A85D7316753cf62", "0x4788629abc6cfca10f9f969efdeaa1cf70c23555"],
"numDeployments": 1,
"solcInputHash": "836b1bc116f0f1cd99aeadbc34149dfb",
"metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"lzEndpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"executionHash\",\"type\":\"bytes32\"}],\"name\":\"ClearPayload\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"ExecuteRemoteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"FallbackWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"oldRemoteAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newRemoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"StorePayload\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"TrustedRemoteRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LZ_ENDPOINT\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourCommandsSent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLastProposalSentTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"useZro_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress_\",\"type\":\"address\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pId_\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"originalValue_\",\"type\":\"uint256\"}],\"name\":\"fallbackWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"configType_\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"}],\"name\":\"removeTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pId_\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"originalValue_\",\"type\":\"uint256\"}],\"name\":\"retryExecute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"configType_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"config_\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"newRemoteAddress_\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"storedExecutionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"estimateFees(uint16,bytes,bool,bytes)\":{\"details\":\"The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"payload_\":\"The payload to be sent to the remote chain. It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of a remote chain\",\"useZro_\":\"Bool that indicates whether to pay in ZRO tokens or not\"},\"returns\":{\"_0\":\"nativeFee The amount of fee in the native gas token (e.g. ETH)\",\"_1\":\"zroFee The amount of fee in ZRO token\"}},\"execute(uint16,bytes,bytes,address)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on successEmits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\",\"details\":\"Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"zroPaymentAddress_\":\"The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\"}},\"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits ClearPayload with proposal ID and hashEmits FallbackWithdraw with receiver and amount\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"originalValue_\":\"The msg.value passed when execute() function was called\",\"pId_\":\"The proposal ID to identify a failed message\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"to_\":\"Address of the receiver\"}},\"getConfig(uint16,uint16,uint256)\":{\"params\":{\"chainId_\":\"The LayerZero chainId\",\"configType_\":\"Type of configuration. Every messaging library has its own convention\",\"version_\":\"Messaging library version\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Controlled by AccessControlManager\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTrustedRemote(uint16)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emit TrustedRemoteRemoved with remote chain id\",\"params\":{\"remoteChainId_\":\"The chain's id corresponds to setting the trusted remote to empty\"}},\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emits ClearPayload with proposal ID and hash\",\"details\":\"Allows providing more fees if needed. The extra fees will be refunded to the caller\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"originalValue_\":\"The msg.value passed when execute() function was called\",\"pId_\":\"The proposal ID to identify a failed message\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"zroPaymentAddress_\":\"The address of the ZRO token holder who would pay for the transaction.\"}},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits NewAccessControlManager with old and new access control manager addresses\",\"params\":{\"accessControlManager_\":\"The new address of the Access Control Manager\"}},\"setConfig(uint16,uint16,uint256,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"chainId_\":\"The LayerZero chainId for the pending config change\",\"configType_\":\"The type of configuration. Every messaging library has its own convention\",\"config_\":\"The configuration in bytes. It can encode arbitrary content\",\"version_\":\"Messaging library version\"}},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\",\"params\":{\"chainId_\":\"Destination chain id\",\"limit_\":\"Number of commands\"}},\"setSendVersion(uint16)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"version_\":\"New messaging library version\"}},\"setTrustedRemoteAddress(uint16,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetTrustedRemoteAddress with remote chain Id and remote address\",\"params\":{\"newRemoteAddress_\":\"The address of the contract on the remote chain to receive messages sent by this contract\",\"remoteChainId_\":\"The LayerZero id of a remote chain\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Controlled by AccessControlManager\"}},\"stateVariables\":{\"storedExecutionHashes\":{\"details\":\"[proposalId] -> [executionHash]\"}},\"title\":\"OmnichainProposalSender\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"ClearPayload(uint256,bytes32)\":{\"notice\":\"Emitted when a previously failed message is successfully sent to the remote chain\"},\"ExecuteRemoteProposal(uint16,uint256,bytes)\":{\"notice\":\"Emitted when a proposal execution request is sent to the remote chain\"},\"FallbackWithdraw(address,uint256)\":{\"notice\":\"Emitted while fallback withdraw\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of commands from the local chain is modified\"},\"SetTrustedRemoteAddress(uint16,bytes,bytes)\":{\"notice\":\"Emitted when a remote message receiver is set for the remote chain\"},\"StorePayload(uint256,uint16,bytes,bytes,uint256,bytes)\":{\"notice\":\"Emitted when an execution hash of a failed message is saved\"},\"TrustedRemoteRemoved(uint16)\":{\"notice\":\"Event emitted when trusted remote sets to empty\"}},\"kind\":\"user\",\"methods\":{\"LZ_ENDPOINT()\":{\"notice\":\"LayerZero endpoint for sending messages to remote chains\"},\"accessControlManager()\":{\"notice\":\"ACM (Access Control Manager) contract address\"},\"chainIdToLast24HourCommandsSent(uint16)\":{\"notice\":\"Total commands transferred within the last 24-hour window from the local chain\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from the local chain\"},\"chainIdToLastProposalSentTimestamp(uint16)\":{\"notice\":\"Timestamp when the last proposal sent from the local chain to dest chain\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for commands from the local chain\"},\"estimateFees(uint16,bytes,bool,bytes)\":{\"notice\":\"Estimates LayerZero fees for cross-chain message delivery to the remote chain\"},\"execute(uint16,bytes,bytes,address)\":{\"notice\":\"Sends a message to execute a remote proposal\"},\"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)\":{\"notice\":\"Clear previously failed message\"},\"getConfig(uint16,uint16,uint256)\":{\"notice\":\"Gets the configuration of the LayerZero messaging library of the specified version\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"proposalCount()\":{\"notice\":\"Stores the total number of remote proposals\"},\"removeTrustedRemote(uint16)\":{\"notice\":\"Remove trusted remote from storage\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishap\"},\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\":{\"notice\":\"Resends a previously failed message\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of Access Control Manager (ACM)\"},\"setConfig(uint16,uint16,uint256,bytes)\":{\"notice\":\"Sets the configuration of the LayerZero messaging library of the specified version\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) command amount\"},\"setSendVersion(uint16)\":{\"notice\":\"Sets the configuration of the LayerZero messaging library of the specified version\"},\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the remote message receiver address\"},\"storedExecutionHashes(uint256)\":{\"notice\":\"Execution hashes of failed messages\"},\"trustedRemoteLookup(uint16)\":{\"notice\":\"Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"notice\":\"OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc It sends a proposal's data to remote chains for execution after the proposal passes on the main chain when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainProposalSender.sol\":\"OmnichainProposalSender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(\\n uint16 _dstChainId,\\n bytes calldata _destination,\\n bytes calldata _payload,\\n address payable _refundAddress,\\n address _zroPaymentAddress,\\n bytes calldata _adapterParams\\n ) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(\\n uint16 _srcChainId,\\n bytes calldata _srcAddress,\\n address _dstAddress,\\n uint64 _nonce,\\n uint _gasLimit,\\n bytes calldata _payload\\n ) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(\\n uint16 _dstChainId,\\n address _userApplication,\\n bytes calldata _payload,\\n bool _payInZRO,\\n bytes calldata _adapterParam\\n ) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(\\n uint16 _srcChainId,\\n bytes calldata _srcAddress,\\n bytes calldata _payload\\n ) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(\\n uint16 _version,\\n uint16 _chainId,\\n address _userApplication,\\n uint _configType\\n ) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(\\n uint16 _version,\\n uint16 _chainId,\\n uint _configType,\\n bytes calldata _config\\n ) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n /**\\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n *\\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n * {RoleAdminChanged} not being emitted signaling this.\\n *\\n * _Available since v3.1._\\n */\\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n /**\\n * @dev Emitted when `account` is granted `role`.\\n *\\n * `sender` is the account that originated the contract call, an admin role\\n * bearer except when using {AccessControl-_setupRole}.\\n */\\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Emitted when `account` is revoked `role`.\\n *\\n * `sender` is the account that originated the contract call:\\n * - if using `revokeRole`, it is the admin role bearer\\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n */\\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function grantRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function revokeRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to