diff --git a/packages/tenderly-actions/src/actions/chains/chainMetadata.ts b/packages/tenderly-actions/src/actions/chains/chainMetadata.ts index fc5fcfe..b561e85 100644 --- a/packages/tenderly-actions/src/actions/chains/chainMetadata.ts +++ b/packages/tenderly-actions/src/actions/chains/chainMetadata.ts @@ -187,6 +187,26 @@ export const chainsList = [ }, ] as const satisfies readonly ChainMetadata[]; +// LayerZero EID to Venus network name mapping +export const LAYER_ZERO_EID_TO_CHAIN_MAPPING: Record = { + 30101: "ethereum", + 30102: "bscmainnet", + 30202: "opbnbmainnet", + 30110: "arbitrumone", + 30111: "opmainnet", + 30184: "basemainnet", + 30320: "unichainmainnet", + 30165: "zksyncmainnet", + 40161: "sepolia", + 40102: "bsctestnet", + 40231: "arbitrumsepolia", + 40305: "zksyncsepolia", + 40232: "opsepolia", + 40245: "basesepolia", + 40333: "unichainsepolia", + 10102: "hardhat", +}; + export type ChainSpecificAddress = { address: `0x${string}`; chainId: ChainId; diff --git a/packages/tenderly-actions/src/actions/contracts/abis/RiskOracle.json b/packages/tenderly-actions/src/actions/contracts/abis/RiskOracle.json index 1c266c0..a4a183e 100644 --- a/packages/tenderly-actions/src/actions/contracts/abis/RiskOracle.json +++ b/packages/tenderly-actions/src/actions/contracts/abis/RiskOracle.json @@ -1,505 +1,922 @@ [ { - "inputs": [ - { - "internalType": "string", - "name": "_description", - "type": "string" - }, - { - "internalType": "address[]", - "name": "initialSenders", - "type": "address[]" - }, - { - "internalType": "string[]", - "name": "initialUpdateTypes", - "type": "string[]" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" }, { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" + "inputs": [], + "name": "ArrayLengthMismatch", + "type": "error" }, { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" + "inputs": [], + "name": "InvalidUpdateId", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "AuthorizedSenderAdded", - "type": "event" + "inputs": [], + "name": "InvalidUpdateTypeString", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "AuthorizedSenderRemoved", - "type": "event" + "inputs": [], + "name": "NoUpdateFound", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" + "inputs": [], + "name": "RenounceOwnershipNotAllowed", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "referenceId", - "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": true, - "internalType": "string", - "name": "updateType", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "updateId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "market", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "additionalData", - "type": "bytes" - } - ], - "name": "ParameterUpdated", - "type": "event" + "inputs": [], + "name": "SenderAlreadyAuthorized", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "updateType", - "type": "string" - } - ], - "name": "UpdateTypeAdded", - "type": "event" + "inputs": [], + "name": "SenderNotAuthorized", + "type": "error" }, { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "addAuthorizedSender", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "calledContract", + "type": "address" + }, + { + "internalType": "string", + "name": "methodSignature", + "type": "string" + } + ], + "name": "Unauthorized", + "type": "error" }, { - "inputs": [ - { - "internalType": "string", - "name": "newUpdateType", - "type": "string" - } - ], - "name": "addUpdateType", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "UpdateTypeAlreadyExists", + "type": "error" }, { - "inputs": [], - "name": "description", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "UpdateTypeNotActive", + "type": "error" }, { - "inputs": [], - "name": "getAllUpdateTypes", - "outputs": [ - { - "internalType": "string[]", - "name": "", - "type": "string[]" - } - ], - "stateMutability": "view", - "type": "function" + "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": [ + "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": "string", - "name": "updateType", - "type": "string" + "internalType": "uint256", + "name": "updateId", + "type": "uint256" }, { - "internalType": "address", - "name": "market", - "type": "address" - } - ], - "name": "getLatestUpdateByParameterAndMarket", - "outputs": [ + "internalType": "address", + "name": "market", + "type": "address" + }, { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "newValue", - "type": "bytes" - }, - { - "internalType": "string", - "name": "referenceId", - "type": "string" - }, - { - "internalType": "bytes", - "name": "previousValue", - "type": "bytes" - }, - { - "internalType": "string", - "name": "updateType", - "type": "string" - }, - { - "internalType": "uint256", - "name": "updateId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "market", - "type": "address" - }, - { - "internalType": "bytes", - "name": "additionalData", - "type": "bytes" - } - ], - "internalType": "struct RiskOracle.RiskParameterUpdate", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "internalType": "string", + "name": "updateType", + "type": "string" + }, { - "internalType": "uint256", - "name": "updateId", - "type": "uint256" - } - ], - "name": "getUpdateById", - "outputs": [ + "internalType": "bytes32", + "name": "updateTypeKey", + "type": "bytes32" + }, { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "newValue", - "type": "bytes" - }, - { - "internalType": "string", - "name": "referenceId", - "type": "string" - }, - { - "internalType": "bytes", - "name": "previousValue", - "type": "bytes" - }, - { - "internalType": "string", - "name": "updateType", - "type": "string" - }, - { - "internalType": "uint256", - "name": "updateId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "market", - "type": "address" - }, - { - "internalType": "bytes", - "name": "additionalData", - "type": "bytes" - } - ], - "internalType": "struct RiskOracle.RiskParameterUpdate", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "internalType": "bytes", + "name": "newValue", + "type": "bytes" + }, { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "isAuthorized", - "outputs": [ + "internalType": "bytes", + "name": "previousValue", + "type": "bytes" + }, { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "address", + "name": "publisher", + "type": "address" }, { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "latestUpdateIdByMarketAndType", - "outputs": [ + "internalType": "uint96", + "name": "poolId", + "type": "uint96" + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint32", + "name": "destLzEid", + "type": "uint32" + }, + { + "internalType": "bytes", + "name": "additionalData", + "type": "bytes" } - ], - "stateMutability": "view", - "type": "function" + ], + "internalType": "struct RiskParameterUpdate", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "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": [ + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "getUpdateById", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "referenceId", + "type": "string" + }, { - "internalType": "string[]", - "name": "referenceIds", - "type": "string[]" + "internalType": "uint256", + "name": "updateId", + "type": "uint256" }, { - "internalType": "bytes[]", - "name": "newValues", - "type": "bytes[]" + "internalType": "address", + "name": "market", + "type": "address" }, { - "internalType": "string[]", - "name": "updateTypes", - "type": "string[]" + "internalType": "string", + "name": "updateType", + "type": "string" }, { - "internalType": "address[]", - "name": "markets", - "type": "address[]" + "internalType": "bytes32", + "name": "updateTypeKey", + "type": "bytes32" }, { - "internalType": "bytes[]", - "name": "additionalData", - "type": "bytes[]" - } - ], - "name": "publishBulkRiskParameterUpdates", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "internalType": "bytes", + "name": "newValue", + "type": "bytes" + }, { - "internalType": "string", - "name": "referenceId", - "type": "string" + "internalType": "bytes", + "name": "previousValue", + "type": "bytes" }, { - "internalType": "bytes", - "name": "newValue", - "type": "bytes" + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" }, { - "internalType": "string", - "name": "updateType", - "type": "string" + "internalType": "address", + "name": "publisher", + "type": "address" }, { - "internalType": "address", - "name": "market", - "type": "address" + "internalType": "uint96", + "name": "poolId", + "type": "uint96" }, { - "internalType": "bytes", - "name": "additionalData", - "type": "bytes" + "internalType": "uint32", + "name": "destLzEid", + "type": "uint32" + }, + { + "internalType": "bytes", + "name": "additionalData", + "type": "bytes" } - ], - "name": "publishRiskParameterUpdate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + ], + "internalType": "struct RiskParameterUpdate", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "removeAuthorizedSender", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "accessControlManager_", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", - "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": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "updateCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "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" } -] \ No newline at end of file + ] \ No newline at end of file diff --git a/packages/tenderly-actions/src/actions/contracts/abis/RiskStewardReceiver.json b/packages/tenderly-actions/src/actions/contracts/abis/RiskStewardReceiver.json index 36c85c3..72bd37b 100644 --- a/packages/tenderly-actions/src/actions/contracts/abis/RiskStewardReceiver.json +++ b/packages/tenderly-actions/src/actions/contracts/abis/RiskStewardReceiver.json @@ -1,645 +1,1473 @@ [ { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" + "inputs": [ + { + "internalType": "address", + "name": "riskOracle_", + "type": "address" + }, + { + "internalType": "address", + "name": "endpoint_", + "type": "address" + }, + { + "internalType": "uint32", + "name": "layerZeroLzEid_", + "type": "uint32" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" + "inputs": [], + "name": "ConfigNotActive", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" + "inputs": [], + "name": "ConfigStatusUnchanged", + "type": "error" }, { - "stateMutability": "payable", - "type": "fallback" + "inputs": [], + "name": "ExecutorStatusUnchanged", + "type": "error" }, { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "admin_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "InvalidDebounce", + "type": "error" }, { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "implementation_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "InvalidDelegate", + "type": "error" }, { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "InvalidEndpointCall", + "type": "error" }, { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "inputs": [], + "name": "InvalidLayerZeroEid", + "type": "error" }, { - "stateMutability": "payable", - "type": "receive" + "inputs": [], + "name": "InvalidLzSendCaller", + "type": "error" }, { - "inputs": [], - "name": "ConfigAlreadyProcessed", - "type": "error" + "inputs": [ + { + "internalType": "uint16", + "name": "optionType", + "type": "uint16" + } + ], + "name": "InvalidOptionType", + "type": "error" }, { - "inputs": [], - "name": "ConfigNotActive", - "type": "error" + "inputs": [], + "name": "InvalidRegisteredUpdate", + "type": "error" }, { - "inputs": [], - "name": "InvalidDebounce", - "type": "error" + "inputs": [], + "name": "InvalidTimelock", + "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": "InvalidUpdateToResend", + "type": "error" }, { - "inputs": [], - "name": "UnsupportedUpdateType", - "type": "error" + "inputs": [], + "name": "InvalidUpdateType", + "type": "error" }, { - "inputs": [], - "name": "UpdateIsExpired", - "type": "error" + "inputs": [], + "name": "LzTokenUnavailable", + "type": "error" }, { - "inputs": [], - "name": "UpdateTooFrequent", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "eid", + "type": "uint32" + } + ], + "name": "NoPeer", + "type": "error" }, { - "inputs": [], - "name": "ZeroAddressNotAllowed", - "type": "error" + "inputs": [], + "name": "NotAnExecutor", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" + "inputs": [ + { + "internalType": "uint256", + "name": "msgValue", + "type": "uint256" + } + ], + "name": "NotEnoughNative", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oldAccessControlManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAccessControlManager", - "type": "address" - } - ], - "name": "NewAccessControlManager", - "type": "event" + "inputs": [ + { + "internalType": "uint32", + "name": "eid", + "type": "uint32" + }, + { + "internalType": "bytes32", + "name": "sender", + "type": "bytes32" + } + ], + "name": "OnlyPeer", + "type": "error" + }, + { + "inputs": [], + "name": "PauseStatusUnchanged", + "type": "error" + }, + { + "inputs": [], + "name": "PausedError", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "RegisteredUpdateTypeExist", + "type": "error" + }, + { + "inputs": [], + "name": "RenounceOwnershipNotAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "TransferFailed", + "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": "UnsupportedUpdateType", + "type": "error" + }, + { + "inputs": [], + "name": "UpdateAlreadyResolved", + "type": "error" + }, + { + "inputs": [], + "name": "UpdateIsExpired", + "type": "error" + }, + { + "inputs": [], + "name": "UpdateNotFound", + "type": "error" + }, + { + "inputs": [], + "name": "UpdateNotUnlocked", + "type": "error" + }, + { + "inputs": [], + "name": "UpdateTooFrequent", + "type": "error" + }, + { + "inputs": [], + "name": "UpdateWillExpireBeforeUnlock", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddressNotAllowed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "updateTypeHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "previousActive", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "active", + "type": "bool" + } + ], + "name": "ConfigActiveUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "executor", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "previousApproved", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ExecutorStatusUpdated", + "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": "bool", + "name": "previousPaused", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "paused", + "type": "bool" + } + ], + "name": "PauseStatusUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "eid", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "peer", + "type": "bytes32" + } + ], + "name": "PeerSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "updateTypeHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "indexed": true, + "internalType": "address", + "name": "previousRiskSteward", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "riskSteward", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousDebounce", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "debounce", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousTimelock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timelock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "previousActive", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "active", + "type": "bool" + } + ], + "name": "RiskParameterConfigUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "UpdateExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "UpdateExpired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "unlockTime", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "indexed": true, + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "UpdateRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "UpdateRejected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "destLzEid", + "type": "uint32" + }, + { + "indexed": true, + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "indexed": true, + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "UpdateResentToDestination", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "destLzEid", + "type": "uint32" + }, + { + "indexed": true, + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "indexed": true, + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "UpdateSentToDestination", + "type": "event" + }, + { + "inputs": [], + "name": "LAYER_ZERO_EID", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "RISK_ORACLE", + "outputs": [ + { + "internalType": "contract IRiskOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "UPDATE_EXPIRATION_TIME", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "accessControlManager", + "outputs": [ + { + "internalType": "contract IAccessControlManagerV8", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "endpoint", + "outputs": [ + { + "internalType": "contract ILayerZeroEndpointV2", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "executeRegisteredUpdate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "internalType": "address", + "name": "comptroller", + "type": "address" + } + ], + "name": "getExecutableUpdates", + "outputs": [ + { + "internalType": "uint256[]", + "name": "executableUpdates", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "getLastProcessedUpdate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "getLastRegisteredUpdate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [ + { + "internalType": "string", + "name": "updateType", + "type": "string" + } + ], + "name": "getRiskParameterConfig", + "outputs": [ + { + "components": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + "internalType": "bool", + "name": "active", + "type": "bool" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "internalType": "uint256", + "name": "debounce", + "type": "uint256" + }, { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + "internalType": "uint256", + "name": "timelock", + "type": "uint256" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "address", + "name": "riskSteward", + "type": "address" } - ], - "name": "OwnershipTransferred", - "type": "event" + ], + "internalType": "struct IRiskStewardReceiver.RiskParamConfig", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" + "inputs": [ + { + "internalType": "address", + "name": "acm_", + "type": "address" + }, + { + "internalType": "address", + "name": "delegate_", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "isUpdateExecutable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "lastProcessedUpdate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "lastRegisteredUpdate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "dstEid", + "type": "uint32" + }, + { + "components": [ { - "indexed": false, - "internalType": "string", - "name": "updateType", - "type": "string" + "internalType": "string", + "name": "referenceId", + "type": "string" }, { - "indexed": true, - "internalType": "address", - "name": "previousRiskSteward", - "type": "address" + "internalType": "uint256", + "name": "updateId", + "type": "uint256" }, { - "indexed": true, - "internalType": "address", - "name": "riskSteward", - "type": "address" + "internalType": "address", + "name": "market", + "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "previousDebounce", - "type": "uint256" + "internalType": "string", + "name": "updateType", + "type": "string" }, { - "indexed": false, - "internalType": "uint256", - "name": "debounce", - "type": "uint256" + "internalType": "bytes32", + "name": "updateTypeKey", + "type": "bytes32" }, { - "indexed": false, - "internalType": "bool", - "name": "previousActive", - "type": "bool" + "internalType": "bytes", + "name": "newValue", + "type": "bytes" }, { - "indexed": false, - "internalType": "bool", - "name": "active", - "type": "bool" - } - ], - "name": "RiskParameterConfigSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "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" + }, { - "indexed": true, - "internalType": "uint256", - "name": "updateId", - "type": "uint256" + "internalType": "bytes", + "name": "additionalData", + "type": "bytes" } - ], - "name": "RiskParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + ], + "internalType": "struct RiskParameterUpdate", + "name": "update", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "options", + "type": "bytes" + }, + { + "components": [ { - "indexed": false, - "internalType": "string", - "name": "updateType", - "type": "string" + "internalType": "uint256", + "name": "nativeFee", + "type": "uint256" }, { - "indexed": false, - "internalType": "bool", - "name": "active", - "type": "bool" + "internalType": "uint256", + "name": "lzTokenFee", + "type": "uint256" } - ], - "name": "ToggleConfigActive", - "type": "event" + ], + "internalType": "struct MessagingFee", + "name": "fee", + "type": "tuple" + }, + { + "internalType": "address", + "name": "refundAddress", + "type": "address" + } + ], + "name": "lzSend", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" + "inputs": [], + "name": "oAppVersion", + "outputs": [ + { + "internalType": "uint64", + "name": "senderVersion", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "receiverVersion", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "RISK_ORACLE", - "outputs": [ - { - "internalType": "contract IRiskOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "UPDATE_EXPIRATION_TIME", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint32", + "name": "_eid", + "type": "uint32" + } + ], + "name": "peers", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "accessControlManager", - "outputs": [ - { - "internalType": "contract IAccessControlManagerV8", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "accessControlManager_", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "processUpdate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "referenceId", + "type": "string" + }, { - "internalType": "bytes", - "name": "marketUpdateType", - "type": "bytes" + "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" } - ], - "name": "lastProcessedTime", - "outputs": [ + ], + "internalType": "struct RiskParameterUpdate", + "name": "update", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "options", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "payInLzToken", + "type": "bool" + } + ], + "name": "quote", + "outputs": [ + { + "components": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint256", + "name": "nativeFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lzTokenFee", + "type": "uint256" } - ], - "stateMutability": "view", - "type": "function" + ], + "internalType": "struct MessagingFee", + "name": "fee", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "rejectUpdate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "pure", + "type": "function" }, { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "options", + "type": "bytes" + } + ], + "name": "resendRemoteUpdate", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "inputs": [], - "name": "pendingOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "riskParameterConfigs", + "outputs": [ + { + "internalType": "bool", + "name": "active", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "debounce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timelock", + "type": "uint256" + }, + { + "internalType": "address", + "name": "riskSteward", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "updateId", - "type": "uint256" - } - ], - "name": "processUpdateById", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "accessControlManager_", + "type": "address" + } + ], + "name": "setAccessControlManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "string", - "name": "updateType", - "type": "string" - }, - { - "internalType": "address", - "name": "market", - "type": "address" - } - ], - "name": "processUpdateByParameterAndMarket", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "internalType": "bool", + "name": "active", + "type": "bool" + } + ], + "name": "setConfigActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "updateId", - "type": "uint256" - } - ], - "name": "processedUpdates", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "_delegate", + "type": "address" + } + ], + "name": "setDelegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "bool", + "name": "paused_", + "type": "bool" + } + ], + "name": "setPaused", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "string", - "name": "updateType", - "type": "string" - } - ], - "name": "riskParameterConfigs", - "outputs": [ - { - "internalType": "bool", - "name": "active", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "debounce", - "type": "uint256" - }, - { - "internalType": "address", - "name": "riskSteward", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint32", + "name": "_eid", + "type": "uint32" + }, + { + "internalType": "bytes32", + "name": "_peer", + "type": "bytes32" + } + ], + "name": "setPeer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "accessControlManager_", - "type": "address" - } - ], - "name": "setAccessControlManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "string", + "name": "updateType", + "type": "string" + }, + { + "internalType": "address", + "name": "riskSteward", + "type": "address" + }, + { + "internalType": "uint256", + "name": "debounce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timelock", + "type": "uint256" + } + ], + "name": "setRiskParameterConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "string", - "name": "updateType", - "type": "string" - }, - { - "internalType": "address", - "name": "riskSteward", - "type": "address" - }, - { - "internalType": "uint256", - "name": "debounce", - "type": "uint256" - } - ], - "name": "setRiskParameterConfig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "executor", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setWhitelistedExecutor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "string", - "name": "updateType", - "type": "string" - } - ], - "name": "toggleConfigActive", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + } + ], + "name": "updates", + "outputs": [ + { + "internalType": "uint256", + "name": "updateId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "unlockTime", + "type": "uint256" + }, + { + "internalType": "enum IRiskStewardReceiver.UpdateStatus", + "name": "status", + "type": "uint8" + }, + { + "internalType": "address", + "name": "executor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "executedAt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "internalType": "address", - "name": "admin_", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "constructor" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "whitelistedExecutors", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } -] \ No newline at end of file + ] \ No newline at end of file diff --git a/packages/tenderly-actions/src/actions/contracts/index.ts b/packages/tenderly-actions/src/actions/contracts/index.ts index 9619b80..a11ac31 100644 --- a/packages/tenderly-actions/src/actions/contracts/index.ts +++ b/packages/tenderly-actions/src/actions/contracts/index.ts @@ -7,13 +7,37 @@ import { Gateways } from "../utils/gateway"; import RiskOracleAbi from "./abis/RiskOracle.json"; import RiskStewardReceiverAbi from "./abis/RiskStewardReceiver.json"; +export type RiskStewardReceiverNetworkConfig = ChainSpecificAddress & { + gasLimit: number; + gasPrice: ethers.BigNumber; +}; + +export type RiskOracleNetworkConfig = ChainSpecificAddress; + export const getRiskOracleInterface = () => { return new ethers.utils.Interface(RiskOracleAbi); }; -export type RiskStewardReceiverNetworkConfig = ChainSpecificAddress & { - gasLimit: number; - gasPrice: ethers.BigNumber; +export const getRiskStewardReceiverInterface = () => { + return new ethers.utils.Interface(RiskStewardReceiverAbi); +}; + + +export const getRiskOracleNetworkConfig = (context: Context): RiskOracleNetworkConfig => { + const network = context.metadata.getNetwork(); + + const config = getNetworkConfig(network); + + if (!config) { + throw new Error(`Not supported on network: ${network}`); + } else if (!config.riskOracle) { + throw new Error(`Risk Oracle is not configured for network: ${network}`); + } + + return { + address: config.riskOracle.address, + chainId: config.chainId, + }; }; export const getRiskStewardReceiverNetworkConfig = (context: Context): RiskStewardReceiverNetworkConfig => { @@ -35,6 +59,20 @@ export const getRiskStewardReceiverNetworkConfig = (context: Context): RiskStewa }; }; +export const getRiskOracleContract = async (context: Context, gateways: Gateways) => { + const { chainId, address } = getRiskOracleNetworkConfig(context); + const provider = new ethers.providers.JsonRpcProvider(gateways.getGateway(chainId)); + + const iface = new ethers.utils.Interface(RiskOracleAbi); + const contract = new ethers.Contract(address, iface, provider); + + return { + getUpdateById: async (updateId: string) => { + return await contract.getUpdateById(updateId); + }, + }; +}; + export const getRiskStewardReceiverContract = async (context: Context, gateways: Gateways) => { const { chainId, address, gasLimit, gasPrice } = getRiskStewardReceiverNetworkConfig(context); @@ -45,8 +83,8 @@ export const getRiskStewardReceiverContract = async (context: Context, gateways: const contract = new ethers.Contract(address, iface, wallet); return { - processUpdateById: async (updateId: string): Promise => { - return await contract.processUpdateById(updateId, { + processUpdate: async (updateId: string): Promise => { + return await contract.processUpdate(updateId, { gasLimit, gasPrice, }); diff --git a/packages/tenderly-actions/src/actions/messages.ts b/packages/tenderly-actions/src/actions/messages.ts index 2b5e56e..5c69352 100644 --- a/packages/tenderly-actions/src/actions/messages.ts +++ b/packages/tenderly-actions/src/actions/messages.ts @@ -3,10 +3,15 @@ import { Network } from "@tenderly/actions"; const networkName = (network: Network | undefined): string => network ?? "Unknown Network"; const messages = { - proccessRiskOracleUpdatedSuccess: (updateId: string, txHash: string, network: Network | undefined) => - `[${networkName( - network, - )}] RiskStewardReceiver: Update ${updateId} processed successfully. Transaction Hash: ${txHash}`, + + updateSentToDestination: (updateId: string, txHash: string, network: Network | undefined, destinationChain: string) => + `[${networkName(network)}] RiskStewardReceiver: Update ${updateId} sent to ${destinationChain} destination. Transaction Hash: ${txHash}`, + + updateExecuted: (updateId: string, txHash: string, network: Network | undefined) => + `[${networkName(network)}] RiskStewardReceiver: Update ${updateId} executed successfully. Transaction Hash: ${txHash}`, + + updateRegistered: (updateId: string, txHash: string, network: Network | undefined) => + `[${networkName(network)}] RiskStewardReceiver: Update ${updateId} is registered. Transaction Hash: ${txHash}`, processRiskOracleUpdatedError: (updateId: string, network: Network | undefined) => `[${networkName(network)}] RiskStewardReceiver error: Update ${updateId} failed to process`, diff --git a/packages/tenderly-actions/src/actions/networkConfig.ts b/packages/tenderly-actions/src/actions/networkConfig.ts index 280899d..3b9e02c 100644 --- a/packages/tenderly-actions/src/actions/networkConfig.ts +++ b/packages/tenderly-actions/src/actions/networkConfig.ts @@ -7,6 +7,9 @@ export type NetworkConfig = { [key in Network]?: { chainId: number; isTestnet?: boolean; + riskOracle: { + address: `0x${string}`; + }; riskStewardReceiver: { address: `0x${string}`; gasLimit: number; @@ -16,81 +19,26 @@ export type NetworkConfig = { }; const networkConfig: NetworkConfig = { - [Network.MAINNET]: { - chainId: ChainId.ETHEREUM, - riskStewardReceiver: { - address: "0x5086Dc718D1288E4cc4F6a75991E4a0bD0611bF1", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), - }, - }, [Network.BSC]: { chainId: ChainId.BSC_MAINNET, + riskOracle: { + address: "0x0E3E51958b0Daa8C57c949675975CBEDd7b5a1a1", + }, riskStewardReceiver: { - address: "0xBa2a43279a228cf9cD94d072777d8d98e7e0a229", - gasLimit: 250000, + address: "0x47856bFa74B71d24a5545c7506862B8FddE52baB", + gasLimit: 550000, gasPrice: ethers.utils.parseUnits("5", "gwei"), }, }, [Network.BSC_TESTNET]: { chainId: ChainId.BSC_TESTNET, isTestnet: true, - riskStewardReceiver: { - address: "0x31DEb4D1326838522697f7a012992f0824d80f2b", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), - }, - }, - [Network.ARBITRUM_SEPOLIA]: { - chainId: ChainId.ARBITRUM_SEPOLIA, - isTestnet: true, - riskStewardReceiver: { - address: "0xE6b7B1846106605fdfaB3a9F407dd64bed6917a6", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), + riskOracle: { + address: "0x4DEA4D1A9F6101D4adacE89f16064D780D2F241d", }, - }, - [Network.BASE_SEPOLIA]: { - chainId: ChainId.BASE_SEPOLIA, - isTestnet: true, - riskStewardReceiver: { - address: "0xf69fd7757c8A59DFA5c35622d9D44B31dB21B0a2", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), - }, - }, - [Network.OPTIMISTIC_SEPOLIA]: { - chainId: ChainId.OPTIMISM_SEPOLIA, - isTestnet: true, - riskStewardReceiver: { - address: "0x4fCbfE445396f31005b3Fd2F6DE2A986d6E2dCB5", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), - }, - }, - [Network.SEPOLIA]: { - chainId: ChainId.SEPOLIA, - isTestnet: true, - riskStewardReceiver: { - address: "0xDF1807d323Dd2E2871e8b394c8F7595E097e1C73", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), - }, - }, - [Network.UNICHAIN_SEPOLIA]: { - chainId: ChainId.UNICHAIN_SEPOLIA, - isTestnet: true, - riskStewardReceiver: { - address: "0x4fCbfE445396f31005b3Fd2F6DE2A986d6E2dCB5", - gasLimit: 250000, - gasPrice: ethers.utils.parseUnits("100", "gwei"), - }, - }, - [Network.ZKSYNC_SEPOLIA]: { - chainId: ChainId.ZKSYNC_SEPOLIA, riskStewardReceiver: { - address: "0x25483111881c431492D010a9071Ce6C84C3b90A6", - gasLimit: 250000, + address: "0x2F6eb64826f3A067eBFFb5909De7AA4e0Cb31b81", + gasLimit: 550000, gasPrice: ethers.utils.parseUnits("100", "gwei"), }, }, diff --git a/packages/tenderly-actions/src/actions/processRiskParameterUpdate.ts b/packages/tenderly-actions/src/actions/processRiskParameterUpdate.ts index 316a621..891ed3d 100755 --- a/packages/tenderly-actions/src/actions/processRiskParameterUpdate.ts +++ b/packages/tenderly-actions/src/actions/processRiskParameterUpdate.ts @@ -1,12 +1,45 @@ import { ActionFn, Context, Event, TransactionEvent } from "@tenderly/actions"; +import { ContractReceipt, ContractTransaction } from "ethers"; import { getTelegramClient } from "./clients/telegram"; -import { getRiskOracleInterface, getRiskStewardReceiverContract } from "./contracts"; +import { + getRiskOracleContract, + getRiskOracleInterface, + getRiskStewardReceiverContract, + getRiskStewardReceiverInterface, +} from "./contracts"; import messages from "./messages"; import { getNetworkConfig } from "./networkConfig"; import { getGateways } from "./utils/gateway"; +import { LAYER_ZERO_EID_TO_CHAIN_MAPPING } from "./chains/chainMetadata"; -export const getRiskParameterUpdateEvent = ( +type ProcessUpdateEventType = "UpdateSentToDestination" | "UpdateExecuted" | "none"; + +const getDestinationChainName = (destLzEid: number): string => { + return LAYER_ZERO_EID_TO_CHAIN_MAPPING[destLzEid] || `unknown (${destLzEid})`; +}; + +const getProcessUpdateEventType = (receipt: ContractReceipt): ProcessUpdateEventType => { + const riskStewardReceiverInterface = getRiskStewardReceiverInterface(); + + const UPDATE_SENT_TOPIC = riskStewardReceiverInterface.getEventTopic("UpdateSentToDestination"); +const UPDATE_EXECUTED_TOPIC = riskStewardReceiverInterface.getEventTopic("UpdateExecuted"); + +for (const log of receipt.logs) { + const topic0 = log.topics[0]; + + if (topic0 === UPDATE_SENT_TOPIC) { + return "UpdateSentToDestination"; + } + + if (topic0 === UPDATE_EXECUTED_TOPIC) { + return "UpdateExecuted"; + } +} + return "none"; +}; + +export const getLatestRiskOraclePublishedUpdate = ( event: Event, ): { updateId: string; @@ -14,7 +47,7 @@ export const getRiskParameterUpdateEvent = ( const txEvent = event as TransactionEvent; const iface = getRiskOracleInterface(); - const parameterUpdatedEvent = iface.decodeEventLog("ParameterUpdated", txEvent.logs[0].data, txEvent.logs[0].topics); + const parameterUpdatedEvent = iface.decodeEventLog("UpdatePublished", txEvent.logs[0].data, txEvent.logs[0].topics); const { updateId } = parameterUpdatedEvent; @@ -28,13 +61,27 @@ export const processRiskParameterUpdateFn: ActionFn = async (context: Context, e const telegramClient = await getTelegramClient(context); - const { updateId } = getRiskParameterUpdateEvent(event); + const { updateId } = getLatestRiskOraclePublishedUpdate(event); try { + const riskOracle = await getRiskOracleContract(context, gateways); + const updateData = await riskOracle.getUpdateById(updateId); + const destinationChain = getDestinationChainName(updateData.destLzEid); + const riskStewardReceiver = await getRiskStewardReceiverContract(context, gateways); - const updateTransaction = await riskStewardReceiver.processUpdateById(updateId); + const updateTransaction: ContractTransaction = await riskStewardReceiver.processUpdate(updateId); + const receipt = await updateTransaction.wait(); - await telegramClient.info(messages.proccessRiskOracleUpdatedSuccess(updateId, updateTransaction.hash, network)); + const eventType = getProcessUpdateEventType(receipt); + + // Send appropriate message based on which event was emitted + if (eventType === "UpdateSentToDestination") { + await telegramClient.info(messages.updateSentToDestination(updateId, receipt.transactionHash, network, destinationChain)); + } else if (eventType === "UpdateExecuted") { + await telegramClient.info(messages.updateExecuted(updateId, receipt.transactionHash, network)); + } else { + await telegramClient.info(messages.updateRegistered(updateId, receipt.transactionHash, network)); + } } catch (error) { const errorMessage = `Failed to process risk parameter update for updateId ${updateId} on network ${network}: ${ error instanceof Error ? error.message : String(error) diff --git a/packages/tenderly-actions/src/run.ts b/packages/tenderly-actions/src/run.ts index f995ba5..4502925 100644 --- a/packages/tenderly-actions/src/run.ts +++ b/packages/tenderly-actions/src/run.ts @@ -13,6 +13,7 @@ const main = async () => { testRuntime.context.gateways.setConfig("test", { accessKey: "" }); testRuntime.context.secrets.put("TELEGRAM_API_KEY", process.env.TELEGRAM_API_KEY || ""); testRuntime.context.secrets.put("TELEGRAM_CHAT_ID", process.env.TELEGRAM_CHAT_ID || ""); + testRuntime.context.secrets.put("RISK_STEWARD_RECEIVER_PRIVATE_KEY", process.env.RISK_STEWARD_RECEIVER_PRIVATE_KEY || ""); testRuntime.context.storage.putJson("TELEGRAM_TOPICS_BY_SEVERITY", { INFO: 6, WARNING: 4, diff --git a/packages/tenderly-actions/src/tests/events.ts b/packages/tenderly-actions/src/tests/events.ts index 204367f..5b098e7 100644 --- a/packages/tenderly-actions/src/tests/events.ts +++ b/packages/tenderly-actions/src/tests/events.ts @@ -3,25 +3,25 @@ import { TestTransactionEvent } from "@tenderly/actions-test"; export const createUpdateRiskParameterTransactionEvent = () => { const testTransactionEvent = new TestTransactionEvent(); testTransactionEvent.network = "97"; - testTransactionEvent.blockHash = "0x03ce3dc54beda9ebd76d7f8bc672ded8f4bcf05aa3bf23569585af324763d440"; - testTransactionEvent.blockNumber = 47563070; - testTransactionEvent.hash = "0x218985de0d04b7b40dfa576093b8e4f24fde9e364821b140f497bfcb0f8a87f6"; - testTransactionEvent.from = "0xfedd302cfafc03a7d4dfc99342fe20e0521c265a"; - testTransactionEvent.to = "0x00d7560abf808e259fd30d0d2395b8332c394bf4"; + testTransactionEvent.blockHash = "0x90968bb4051127de53d2b21fbdc828970b978ef2477d64c31ae0e7214245ce6b"; + testTransactionEvent.blockNumber = 84436862; + testTransactionEvent.hash = "0xedf55e1c1a1ce37e0a7375d569c056c97c17c7324c6b5db0768252dc76fb6792"; + testTransactionEvent.from = "0x4cd6300f5cb8d6bba5e646131c3522664c10df11"; + testTransactionEvent.to = "0x6f95c162197aa4be503c56355cbb373a46863cdd"; testTransactionEvent.logs = [ { - address: "0x00d7560abf808e259fd30d0d2395b8332c394bf4", - topics: [ - "0xf4ffa2dade992ad974b9415d5dc108fa2a4a6de3822a3a0bb50d5e6991bdb8ae", - "0xcec723f9fbde52ce895e2dc35ea3c6d14c9e1de94ef0a9e37f9d251de1a78175", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x000000000000000000000000488ab2826a154da01cc4cc16a8c83d4720d3ca2c", + "address": "0x6f95c162197aa4be503c56355cbb373a46863cdd", + "topics": [ + "0xfc790d5ce2687ea5b75f51b2fff6d34792504386d9c73160bb6bdc6ea25f5b69", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000046e4efbb6b88f8f44d1a311143da98ac1750d92", + "0x068e90f21e6e5d3d0c48f5983b5b5b9b9e7c4efbb8b596ef6c729c6870a3c943" ], - data: "0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000678ec8e80000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000574657374320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009f3f20b8dfa69d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000006967eac70000000000000000000000004cd6300f5cb8d6bba5e646131c3522664c10df110000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000774657374696e670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000000" }, ]; testTransactionEvent.input = - "0xb0be250500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000488ab2826a154da01cc4cc16a8c83d4720d3ca2c0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000574657374320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009f3f20b8dfa69d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009626f72726f7743617000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + "0x87d7f21f00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000046e4efbb6b88f8f44d1a311143da98ac1750d9200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000774657374696e670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000009737570706c7943617000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; return testTransactionEvent; }; diff --git a/packages/tenderly-actions/tenderly.yaml b/packages/tenderly-actions/tenderly.yaml index 0939759..e243169 100644 --- a/packages/tenderly-actions/tenderly.yaml +++ b/packages/tenderly-actions/tenderly.yaml @@ -1,6 +1,6 @@ -account_id: VenusTools +account_id: venus-labs actions: - venustools/keepers-actions: + venus-labs/risk-steward-keeper-bot: runtime: v2 sources: src/actions specs: @@ -13,15 +13,15 @@ actions: filters: - eventEmitted: contract: - address: 0xBa2a43279a228cf9cD94d072777d8d98e7e0a229 - name: ParameterUpdated + address: 0x0E3E51958b0Daa8C57c949675975CBEDd7b5a1a1 + name: UpdatePublished network: 56 - eventEmitted: contract: - address: 0x7BD97DD6C199532d11Cf5f55E13a120dB6dd0F4F - name: ParameterUpdated + address: 0x4DEA4D1A9F6101D4adacE89f16064D780D2F241d + name: UpdatePublished network: 97 status: - mined type: transaction -project_slug: keeper-actions +project_slug: nrisk-steward-keeper-bot