UNPKG

@venusprotocol/governance-contracts

Version:
955 lines 188 kB
{ "address": "0xA55eaE955E4aC038a7aFCcB373E35FD1fab13f34", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ArrayLengthMismatch", "type": "error" }, { "inputs": [], "name": "InvalidUpdateId", "type": "error" }, { "inputs": [], "name": "InvalidUpdateTypeString", "type": "error" }, { "inputs": [], "name": "NoUpdateFound", "type": "error" }, { "inputs": [], "name": "RenounceOwnershipNotAllowed", "type": "error" }, { "inputs": [], "name": "SenderAlreadyAuthorized", "type": "error" }, { "inputs": [], "name": "SenderNotAuthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "calledContract", "type": "address" }, { "internalType": "string", "name": "methodSignature", "type": "string" } ], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UpdateTypeAlreadyExists", "type": "error" }, { "inputs": [], "name": "UpdateTypeNotActive", "type": "error" }, { "inputs": [], "name": "UpdateTypeNotFound", "type": "error" }, { "inputs": [], "name": "UpdateTypeStatusUnchanged", "type": "error" }, { "inputs": [], "name": "ZeroAddressNotAllowed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "AuthorizedSenderAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "AuthorizedSenderRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAccessControlManager", "type": "address" }, { "indexed": false, "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": "OwnershipTransferStarted", "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": "string", "name": "referenceId", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "market", "type": "address" }, { "indexed": true, "internalType": "string", "name": "updateType", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "previousValue", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "publisher", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "name": "UpdatePublished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "updateType", "type": "string" }, { "indexed": false, "internalType": "bool", "name": "previousActive", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "active", "type": "bool" } ], "name": "UpdateTypeActiveStatusChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "updateType", "type": "string" } ], "name": "UpdateTypeAdded", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "accessControlManager", "outputs": [ { "internalType": "contract IAccessControlManagerV8", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "activeUpdateTypes", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "addAuthorizedSender", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newUpdateType", "type": "string" } ], "name": "addUpdateType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "allUpdateTypes", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "allUpdateTypesLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "authorizedSenders", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "updateType", "type": "string" } ], "name": "getActiveUpdateTypes", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllUpdateTypes", "outputs": [ { "internalType": "string[]", "name": "", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "address", "name": "market", "type": "address" } ], "name": "getLatestUpdateByTypeAndMarket", "outputs": [ { "components": [ { "internalType": "string", "name": "referenceId", "type": "string" }, { "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "bytes32", "name": "updateTypeKey", "type": "bytes32" }, { "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "internalType": "bytes", "name": "previousValue", "type": "bytes" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "address", "name": "publisher", "type": "address" }, { "internalType": "uint96", "name": "poolId", "type": "uint96" }, { "internalType": "uint32", "name": "destLzEid", "type": "uint32" }, { "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "internalType": "struct RiskParameterUpdate", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "address", "name": "market", "type": "address" } ], "name": "getLatestUpdateIdByTypeAndMarket", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "updateId", "type": "uint256" } ], "name": "getUpdateById", "outputs": [ { "components": [ { "internalType": "string", "name": "referenceId", "type": "string" }, { "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "bytes32", "name": "updateTypeKey", "type": "bytes32" }, { "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "internalType": "bytes", "name": "previousValue", "type": "bytes" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "address", "name": "publisher", "type": "address" }, { "internalType": "uint96", "name": "poolId", "type": "uint96" }, { "internalType": "uint32", "name": "destLzEid", "type": "uint32" }, { "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "internalType": "struct RiskParameterUpdate", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "accessControlManager_", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "updateTypeKey", "type": "bytes32" }, { "internalType": "address", "name": "market", "type": "address" } ], "name": "latestUpdateIdByMarketAndType", "outputs": [ { "internalType": "uint256", "name": "updateId", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string[]", "name": "referenceIds", "type": "string[]" }, { "internalType": "bytes[]", "name": "newValues", "type": "bytes[]" }, { "internalType": "string[]", "name": "updateTypes", "type": "string[]" }, { "internalType": "address[]", "name": "markets", "type": "address[]" }, { "internalType": "uint96[]", "name": "poolIds", "type": "uint96[]" }, { "internalType": "uint32[]", "name": "dstEid", "type": "uint32[]" }, { "internalType": "bytes[]", "name": "additionalData", "type": "bytes[]" } ], "name": "publishBulkRiskParameterUpdates", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "referenceId", "type": "string" }, { "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "uint96", "name": "poolId", "type": "uint96" }, { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "name": "publishRiskParameterUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "removeAuthorizedSender", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "accessControlManager_", "type": "address" } ], "name": "setAccessControlManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "bool", "name": "active", "type": "bool" } ], "name": "setUpdateTypeActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "updateCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "updatesById", "outputs": [ { "internalType": "string", "name": "referenceId", "type": "string" }, { "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "bytes32", "name": "updateTypeKey", "type": "bytes32" }, { "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "internalType": "bytes", "name": "previousValue", "type": "bytes" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "address", "name": "publisher", "type": "address" }, { "internalType": "uint96", "name": "poolId", "type": "uint96" }, { "internalType": "uint32", "name": "destLzEid", "type": "uint32" }, { "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "stateMutability": "view", "type": "function" } ], "transactionHash": "0x33847996d3f23c2bd866dc7428faf95551bb1bbd38f60c188c46a373e5157b16", "receipt": { "to": null, "from": "0xe2a089cA69a90f1E27E723EFD339Cff4c4701AcC", "contractAddress": "0xA55eaE955E4aC038a7aFCcB373E35FD1fab13f34", "transactionIndex": 0, "gasUsed": "2985442", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000001000000080000000000000000000000000000000000000000000000000000000000000000000", "blockHash": "0x031cd010f7837d612b49404b01cfddc2e832d139e8a6560c71831c321e32b5fa", "transactionHash": "0x33847996d3f23c2bd866dc7428faf95551bb1bbd38f60c188c46a373e5157b16", "logs": [ { "transactionIndex": 0, "blockNumber": 82070397, "transactionHash": "0x33847996d3f23c2bd866dc7428faf95551bb1bbd38f60c188c46a373e5157b16", "address": "0xA55eaE955E4aC038a7aFCcB373E35FD1fab13f34", "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", "logIndex": 0, "blockHash": "0x031cd010f7837d612b49404b01cfddc2e832d139e8a6560c71831c321e32b5fa" } ], "blockNumber": 82070397, "cumulativeGasUsed": "2985442", "status": 1, "byzantium": true }, "args": [], "numDeployments": 1, "solcInputHash": "ef867994c77f736f1fd15a815fef639a", "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateTypeString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoUpdateFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderAlreadyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AuthorizedSenderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AuthorizedSenderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"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\":\"OwnershipTransferStarted\",\"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\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"name\":\"UpdatePublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"UpdateTypeActiveStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"UpdateTypeAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"activeUpdateTypes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"addAuthorizedSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newUpdateType\",\"type\":\"string\"}],\"name\":\"addUpdateType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allUpdateTypes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allUpdateTypesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"authorizedSenders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getActiveUpdateTypes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllUpdateTypes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLatestUpdateByTypeAndMarket\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLatestUpdateIdByTypeAndMarket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"getUpdateById\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"latestUpdateIdByMarketAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"referenceIds\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"newValues\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"updateTypes\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"markets\",\"type\":\"address[]\"},{\"internalType\":\"uint96[]\",\"name\":\"poolIds\",\"type\":\"uint96[]\"},{\"internalType\":\"uint32[]\",\"name\":\"dstEid\",\"type\":\"uint32[]\"},{\"internalType\":\"bytes[]\",\"name\":\"additionalData\",\"type\":\"bytes[]\"}],\"name\":\"publishBulkRiskParameterUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"name\":\"publishRiskParameterUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"removeAuthorizedSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setUpdateTypeActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"updatesById\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"addAuthorizedSender(address)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws ZeroAddressNotAllowed if sender is zero addressThrows SenderAlreadyAuthorized if sender is already authorizedThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits AuthorizedSenderAdded when sender is successfully added\",\"params\":{\"sender\":\"Address to be authorized\"}},\"addUpdateType(string)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws InvalidUpdateTypeString if update type string is empty or exceeds 64 charactersThrows UpdateTypeAlreadyExists if update type already existsThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits UpdateTypeAdded when update type is successfully added\",\"params\":{\"newUpdateType\":\"New type of update to allow\"}},\"allUpdateTypesLength()\":{\"returns\":{\"_0\":\"The length of the allUpdateTypes array\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getActiveUpdateTypes(string)\":{\"params\":{\"updateType\":\"The update type string to check\"},\"returns\":{\"_0\":\"True if the update type is active, false otherwise\"}},\"getAllUpdateTypes()\":{\"returns\":{\"_0\":\"An array of all update type strings\"}},\"getLatestUpdateByTypeAndMarket(string,address)\":{\"custom:error\":\"Throws NoUpdateFound if no update exists for the specified parameter and market\",\"params\":{\"market\":\"The market identifier\",\"updateType\":\"The identifier for the parameter\"},\"returns\":{\"_0\":\"The most recent RiskParameterUpdate for the specified parameter and market\"}},\"getLatestUpdateIdByTypeAndMarket(string,address)\":{\"params\":{\"market\":\"The market address\",\"updateType\":\"The update type string\"},\"returns\":{\"_0\":\"The latest update ID for the given market and update type, or 0 if none exists\"}},\"getUpdateById(uint256)\":{\"custom:error\":\"Throws InvalidUpdateId if updateId is 0 or greater than updateCounter\",\"params\":{\"updateId\":\"Update ID\"},\"returns\":{\"_0\":\"The RiskParameterUpdate for the specified id\"}},\"initialize(address)\":{\"custom:error\":\"Reverts with \\\"invalid acess control manager address\\\" if accessControlManager_ is zero address\",\"params\":{\"accessControlManager_\":\"Address of the access control manager\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])\":{\"custom:error\":\"Throws SenderNotAuthorized if caller is not an authorized senderThrows ArrayLengthMismatch if the array lengths do not match or if no updates are providedThrows UpdateTypeNotActive if any update type is not activeThrows ZeroAddressNotAllowed if any market is zero address\",\"custom:event\":\"Emits UpdatePublished for each successfully published update\",\"params\":{\"additionalData\":\"Array of additional data for the updates\",\"dstEid\":\"Array of destination endpoint IDs for cross-chain routing\",\"markets\":\"Array of addresses for markets of the parameter updates\",\"newValues\":\"Array of new values for each update\",\"poolIds\":\"Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\",\"referenceIds\":\"Array of external reference IDs\",\"updateTypes\":\"Array of types for each update, all must be authorized\"}},\"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)\":{\"custom:error\":\"Throws SenderNotAuthorized if caller is not an authorized senderThrows UpdateTypeNotActive if update type is not activeThrows ZeroAddressNotAllowed if market is zero address\",\"custom:event\":\"Emits UpdatePublished when update is successfully published\",\"params\":{\"additionalData\":\"Additional data for the update\",\"dstEid\":\"Destination endpoint ID for cross-chain routing\",\"market\":\"Address for market of the parameter update\",\"newValue\":\"The new value of the risk parameter being updated\",\"poolId\":\"Pool identifier for eMode-style collateral configuration (0 for regular markets)\",\"referenceId\":\"An external reference ID associated with the update\",\"updateType\":\"Type of update performed, must be previously authorized\"}},\"removeAuthorizedSender(address)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws SenderNotAuthorized if sender is not currently authorizedThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits AuthorizedSenderRemoved when sender is successfully removed\",\"params\":{\"sender\":\"Address to be unauthorized\"}},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setUpdateTypeActive(string,bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws UpdateTypeNotFound if update type doesn't existThrows UpdateTypeStatusUnchanged if status is already set to the desired valueThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits UpdateTypeActiveStatusChanged when status is successfully changed\",\"params\":{\"active\":\"True to activate, false to deactivate\",\"updateType\":\"The update type to set active status for\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Risk Oracle\",\"version\":1},\"userdoc\":{\"errors\":{\"ArrayLengthMismatch()\":[{\"notice\":\"Thrown when array lengths don't match in bulk operations\"}],\"InvalidUpdateId()\":[{\"notice\":\"Thrown when update ID is invalid\"}],\"InvalidUpdateTypeString()\":[{\"notice\":\"Thrown when update type string is invalid\"}],\"NoUpdateFound()\":[{\"notice\":\"Thrown when no update is found\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"SenderAlreadyAuthorized()\":[{\"notice\":\"Thrown when sender is already authorized\"}],\"SenderNotAuthorized()\":[{\"notice\":\"Thrown when sender is not authorized\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UpdateTypeAlreadyExists()\":[{\"notice\":\"Thrown when update type already exists\"}],\"UpdateTypeNotActive()\":[{\"notice\":\"Thrown when update type is not active\"}],\"UpdateTypeNotFound()\":[{\"notice\":\"Thrown when update type doesn't exist\"}],\"UpdateTypeStatusUnchanged()\":[{\"notice\":\"Thrown when update type active status is already set to the desired value\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"AuthorizedSenderAdded(address)\":{\"notice\":\"Event emitted when a new authorized sender is added\"},\"AuthorizedSenderRemoved(address)\":{\"notice\":\"Event emitted when an authorized sender is removed\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"UpdatePublished(string,uint256,address,string,bytes,bytes,uint256,address,bytes)\":{\"notice\":\"Event emitted when a risk parameter update is published\"},\"UpdateTypeActiveStatusChanged(string,bool,bool)\":{\"notice\":\"Event emitted when an update type's active status is changed\"},\"UpdateTypeAdded(string)\":{\"notice\":\"Event emitted when a new update type is added\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"activeUpdateTypes(bytes32)\":{\"notice\":\"Whitelist of valid update type identifiers, keyed by updateType hash\"},\"addAuthorizedSender(address)\":{\"notice\":\"Adds a new sender to the list of addresses authorized to perform updates\"},\"addUpdateType(string)\":{\"notice\":\"Adds a new type of update to the list of authorized update types\"},\"allUpdateTypes(uint256)\":{\"notice\":\"Array to store all update types\"},\"allUpdateTypesLength()\":{\"notice\":\"Returns the total number of update types in the allUpdateTypes array\"},\"authorizedSenders(address)\":{\"notice\":\"Authorized accounts capable of proposing updates\"},\"constructor\":{\"notice\":\"Disables initializers\"},\"getActiveUpdateTypes(string)\":{\"notice\":\"Checks if a given update type is currently active.\"},\"getAllUpdateTypes()\":{\"notice\":\"Returns all update types in the allUpdateTypes array\"},\"getLatestUpdateByTypeAndMarket(string,address)\":{\"notice\":\"Fetches the most recent update for a specific parameter in a specific market\"},\"getLatestUpdateIdByTypeAndMarket(string,address)\":{\"notice\":\"Gets the latest update ID for a specific market and update type (string) combination\"},\"getUpdateById(uint256)\":{\"notice\":\"Fetches the update for a provided updateId\"},\"initialize(address)\":{\"notice\":\"Initializes the contract with access control manager\"},\"latestUpdateIdByMarketAndType(bytes32,address)\":{\"notice\":\"Mapping to store the latest update ID for each combination of update type key and market\"},\"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])\":{\"notice\":\"Publishes multiple risk parameter updates in a single transaction\"},\"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)\":{\"notice\":\"Publishes a new risk parameter update\"},\"removeAuthorizedSender(address)\":{\"notice\":\"Removes an address from the list of authorized senders\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setUpdateTypeActive(string,bool)\":{\"notice\":\"Sets the active status of an existing update type\"},\"updateCounter()\":{\"notice\":\"Counter to keep track of the total number of updates\"},\"updatesById(uint256)\":{\"notice\":\"Mapping from unique update ID to the update details\"}},\"notice\":\"Contract for managing and publishing risk parameter updates for Risk-Steward Updates\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/RiskOracle.sol\":\"RiskOracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n function __Ownable2Step_init() internal onlyInitializing {\\n __Ownable_init_unchained();\\n }\\n\\n function __Ownable2Step_init_unchained() internal onlyInitializing {\\n }\\n address private _pendingOwner;\\n\\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Returns the address of the pending owner.\\n */\\n function pendingOwner() public view virtual returns (address) {\\n return _pendingOwner;\\n }\\n\\n /**\\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual override onlyOwner {\\n _pendingOwner = newOwner;\\n emit OwnershipTransferStarted(owner(), newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual override {\\n delete _pendingOwner;\\n super._transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev The new owner accepts the ownership transfer.\\n */\\n function acceptOwnership() external {\\n address sender = _msgSender();\\n require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n _transferOwnership(sender);\\n }\\n\\n /**\\n * @dev This empty reserved space is put in place to allow future versions to add new\\n * variables without shifting down storage in the inheritance chain.\\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n */\\n uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Con