This file is a merged representation of the entire codebase, combined into a single document by Repomix. The content has been processed where content has been compressed (code blocks are separated by ⋮---- delimiter). # File Summary ## Purpose This file contains a packed representation of the entire repository's contents. It is designed to be easily consumable by AI systems for analysis, code review, or other automated processes. ## File Format The content is organized as follows: 1. This summary section 2. Repository information 3. Directory structure 4. Repository files (if enabled) 5. Multiple file entries, each consisting of: a. A header with the file path (## File: path/to/file) b. The full contents of the file in a code block ## Usage Guidelines - This file should be treated as read-only. Any changes should be made to the original repository files, not this packed version. - When processing this file, use the file path to distinguish between different files in the repository. - Be aware that this file may contain sensitive information. Handle it with the same level of security as you would the original repository. ## Notes - Some files may have been excluded based on .gitignore rules and Repomix's configuration - Binary files are not included in this packed representation. Please refer to the Repository Structure section for a complete list of file paths, including binary files - Files matching patterns in .gitignore are excluded - Files matching default ignore patterns are excluded - Content has been compressed - code blocks are separated by ⋮---- delimiter - Files are sorted by Git change count (files with more changes are at the bottom) # Directory Structure ``` abi/ BurnerRouterABI.json BurnerRouterFactoryABI.json DefaultCollateralMigratorABI.json DefaultOperatorRewardsABI.json DefaultOperatorRewardsFactoryABI.json DefaultStakerRewardsABI.json DefaultStakerRewardsFactoryABI.json DelegatorFactoryABI.json ETHx_BurnerABI.json FullRestakeDecreaseHookABI.json FullRestakeDelegatorABI.json mETH_BurnerABI.json NetworkMiddlewareServiceABI.json NetworkRegistryABI.json NetworkRestakeDecreaseHookABI.json NetworkRestakeDelegatorABI.json NetworkRestakeRedistributeHookABI.json OperatorNetworkOptInServiceABI.json OperatorNetworkSpecificDelegatorABI.json OperatorRegistryABI.json OperatorSpecificDecreaseHookABI.json OperatorSpecificDelegatorABI.json OperatorVaultOptInServiceABI.json rETH_BurnerABI.json sfrxETH_BurnerABI.json SlasherABI.json SlasherFactoryABI.json swETH_BurnerABI.json VaultABI.json VaultConfiguratorABI.json VaultFactoryABI.json VaultTokenizedABI.json VetoSlasherABI.json wstETH_BurnerABI.json LICENSE README.md requirements.txt symb.py ``` # Files ## File: abi/BurnerRouterABI.json ````json [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "DuplicateNetworkReceiver", "type": "error" }, { "inputs": [], "name": "DuplicateOperatorNetworkReceiver", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidCollateral", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidReceiver", "type": "error" }, { "inputs": [], "name": "InvalidReceiverSetEpochsDelay", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotReady", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [], "name": "AcceptDelay", "type": "event" }, { "anonymous": false, "inputs": [], "name": "AcceptGlobalReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" } ], "name": "AcceptNetworkReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" } ], "name": "AcceptOperatorNetworkReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "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": "uint48", "name": "delay", "type": "uint48" } ], "name": "SetDelay", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "SetGlobalReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "SetNetworkReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "SetOperatorNetworkReceiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TriggerTransfer", "type": "event" }, { "inputs": [], "name": "acceptDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "acceptGlobalReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" } ], "name": "acceptNetworkReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "acceptOperatorNetworkReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "collateral", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "delay", "outputs": [ { "internalType": "uint48", "name": "value", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "globalReceiver", "outputs": [ { "internalType": "address", "name": "value", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "uint48", "name": "delay", "type": "uint48" }, { "internalType": "address", "name": "globalReceiver", "type": "address" }, { "components": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "internalType": "struct IBurnerRouter.NetworkReceiver[]", "name": "networkReceivers", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "internalType": "struct IBurnerRouter.OperatorNetworkReceiver[]", "name": "operatorNetworkReceivers", "type": "tuple[]" } ], "internalType": "struct IBurnerRouter.InitParams", "name": "params", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lastBalance", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" } ], "name": "networkReceiver", "outputs": [ { "internalType": "address", "name": "value", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint48", "name": "", "type": "uint48" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "operatorNetworkReceiver", "outputs": [ { "internalType": "address", "name": "value", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingDelay", "outputs": [ { "internalType": "uint48", "name": "value", "type": "uint48" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingGlobalReceiver", "outputs": [ { "internalType": "address", "name": "value", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" } ], "name": "pendingNetworkReceiver", "outputs": [ { "internalType": "address", "name": "value", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "pendingOperatorNetworkReceiver", "outputs": [ { "internalType": "address", "name": "value", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "newDelay", "type": "uint48" } ], "name": "setDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "setGlobalReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "setNetworkReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "setOperatorNetworkReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "triggerTransfer", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/BurnerRouterFactoryABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "burnerRouterImplementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC1167FailedCreateClone", "type": "error" }, { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "uint48", "name": "delay", "type": "uint48" }, { "internalType": "address", "name": "globalReceiver", "type": "address" }, { "components": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "internalType": "struct IBurnerRouter.NetworkReceiver[]", "name": "networkReceivers", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "internalType": "struct IBurnerRouter.OperatorNetworkReceiver[]", "name": "operatorNetworkReceivers", "type": "tuple[]" } ], "internalType": "struct IBurnerRouter.InitParams", "name": "params", "type": "tuple" } ], "name": "create", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/DefaultCollateralMigratorABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "address", "name": "vault", "type": "address" }, { "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "migrate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/DefaultOperatorRewardsABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "networkMiddlewareService", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InsufficientTotalClaimable", "type": "error" }, { "inputs": [], "name": "InsufficientTransfer", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidProof", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetworkMiddleware", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [], "name": "RootNotSet", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "root", "type": "bytes32" } ], "name": "DistributeRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "inputs": [], "name": "NETWORK_MIDDLEWARE_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "balance", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "totalClaimable", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "claimRewards", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "claimed", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes32", "name": "root_", "type": "bytes32" } ], "name": "distributeRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "root", "outputs": [ { "internalType": "bytes32", "name": "value", "type": "bytes32" } ], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/DefaultOperatorRewardsFactoryABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "operatorRewardsImplementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC1167FailedCreateClone", "type": "error" }, { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "inputs": [], "name": "create", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/DefaultStakerRewardsABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "networkMiddlewareService", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "HighAdminFee", "type": "error" }, { "inputs": [], "name": "InsufficientAdminFee", "type": "error" }, { "inputs": [], "name": "InsufficientReward", "type": "error" }, { "inputs": [], "name": "InvalidAdminFee", "type": "error" }, { "inputs": [], "name": "InvalidHintsLength", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidRewardTimestamp", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "MissingRoles", "type": "error" }, { "inputs": [], "name": "NoRewardsToClaim", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "inputs": [], "name": "NotNetworkMiddleware", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimAdminFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "firstRewardIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "numRewards", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "DistributeRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "adminFee", "type": "uint256" } ], "name": "SetAdminFee", "type": "event" }, { "inputs": [], "name": "ADMIN_FEE_BASE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ADMIN_FEE_CLAIM_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ADMIN_FEE_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_MIDDLEWARE_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "adminFee", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "claimAdminFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "claimable", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "claimableAdminFee", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "distributeRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "vault", "type": "address" }, { "internalType": "uint256", "name": "adminFee", "type": "uint256" }, { "internalType": "address", "name": "defaultAdminRoleHolder", "type": "address" }, { "internalType": "address", "name": "adminFeeClaimRoleHolder", "type": "address" }, { "internalType": "address", "name": "adminFeeSetRoleHolder", "type": "address" } ], "internalType": "struct IDefaultStakerRewards.InitParams", "name": "params", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "network", "type": "address" } ], "name": "lastUnclaimedReward", "outputs": [ { "internalType": "uint256", "name": "rewardIndex", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "network", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewards", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "network", "type": "address" } ], "name": "rewardsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "adminFee_", "type": "uint256" } ], "name": "setAdminFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/DefaultStakerRewardsFactoryABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "stakerRewardsImplementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC1167FailedCreateClone", "type": "error" }, { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "vault", "type": "address" }, { "internalType": "uint256", "name": "adminFee", "type": "uint256" }, { "internalType": "address", "name": "defaultAdminRoleHolder", "type": "address" }, { "internalType": "address", "name": "adminFeeClaimRoleHolder", "type": "address" }, { "internalType": "address", "name": "adminFeeSetRoleHolder", "type": "address" } ], "internalType": "struct IDefaultStakerRewards.InitParams", "name": "params", "type": "tuple" } ], "name": "create", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/DelegatorFactoryABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyBlacklisted", "type": "error" }, { "inputs": [], "name": "AlreadyWhitelisted", "type": "error" }, { "inputs": [], "name": "ERC1167FailedCreateClone", "type": "error" }, { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "inputs": [], "name": "InvalidImplementation", "type": "error" }, { "inputs": [], "name": "InvalidType", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "type_", "type": "uint64" } ], "name": "Blacklist", "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": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Whitelist", "type": "event" }, { "inputs": [{ "internalType": "uint64", "name": "type_", "type": "uint64" }], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint64", "name": "type_", "type": "uint64" }], "name": "blacklisted", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "type_", "type": "uint64" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "create", "outputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint64", "name": "type_", "type": "uint64" }], "name": "implementation", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalTypes", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" } ], "name": "whitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/ETHx_BurnerABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "address", "name": "staderConfig", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InvalidETHxMaximumWithdrawal", "type": "error" }, { "inputs": [], "name": "InvalidRequestId", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerWithdrawal", "type": "event" }, { "inputs": [], "name": "COLLATERAL", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "STADER_CONFIG", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "STAKE_POOLS_MANAGER", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USER_WITHDRAW_MANAGER", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "maxRequestIds", "type": "uint256" } ], "name": "requestIds", "outputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "requestIdsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "triggerBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxWithdrawalAmount", "type": "uint256" } ], "name": "triggerWithdrawal", "outputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ] ```` ## File: abi/FullRestakeDecreaseHookABI.json ````json [ { "inputs": [], "name": "NotFullRestakeDelegator", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" }, { "internalType": "uint48", "name": "", "type": "uint48" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/FullRestakeDelegatorABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "networkRegistry", "type": "address" }, { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "operatorVaultOptInService", "type": "address" }, { "internalType": "address", "name": "operatorNetworkOptInService", "type": "address" }, { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "uint64", "name": "entityType", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "DuplicateRoleHolder", "type": "error" }, { "inputs": [], "name": "ExceedsMaxNetworkLimit", "type": "error" }, { "inputs": [], "name": "InsufficientHookGas", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "MissingRoleHolders", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "inputs": [], "name": "NotSlasher", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [], "name": "ZeroAddressRoleHolder", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "OnSlash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "hook", "type": "address" } ], "name": "SetHook", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxNetworkLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetNetworkLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetOperatorNetworkLimit", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_GAS_LIMIT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_RESERVE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_NETWORK_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_NETWORK_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_VAULT_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TYPE", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hook", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "maxNetworkLimit", "outputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "networkLimit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "networkLimitAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "operatorNetworkLimit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "operatorNetworkLimitAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "hook_", "type": "address" } ], "name": "setHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "identifier", "type": "uint96" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setOperatorNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "stake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "stakeAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/mETH_BurnerABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidRequestId", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerWithdrawal", "type": "event" }, { "inputs": [], "name": "COLLATERAL", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "STAKING", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "maxRequestIds", "type": "uint256" } ], "name": "requestIds", "outputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "requestIdsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "triggerBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "triggerWithdrawal", "outputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ] ```` ## File: abi/NetworkMiddlewareServiceABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "networkRegistry", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "network", "type": "address" }, { "indexed": false, "internalType": "address", "name": "middleware", "type": "address" } ], "name": "SetMiddleware", "type": "event" }, { "inputs": [], "name": "NETWORK_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "network", "type": "address" } ], "name": "middleware", "outputs": [ { "internalType": "address", "name": "value", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "middleware_", "type": "address" } ], "name": "setMiddleware", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/NetworkRegistryABI.json ````json [ { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "inputs": [], "name": "NetworkAlreadyRegistered", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "registerNetwork", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/NetworkRestakeDecreaseHookABI.json ````json [ { "inputs": [], "name": "NotNetworkRestakeDelegator", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/NetworkRestakeDelegatorABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "networkRegistry", "type": "address" }, { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "operatorVaultOptInService", "type": "address" }, { "internalType": "address", "name": "operatorNetworkOptInService", "type": "address" }, { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "uint64", "name": "entityType", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "DuplicateRoleHolder", "type": "error" }, { "inputs": [], "name": "ExceedsMaxNetworkLimit", "type": "error" }, { "inputs": [], "name": "InsufficientHookGas", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "MissingRoleHolders", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "inputs": [], "name": "NotSlasher", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [], "name": "ZeroAddressRoleHolder", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "OnSlash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "hook", "type": "address" } ], "name": "SetHook", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxNetworkLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetNetworkLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "SetOperatorNetworkShares", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_GAS_LIMIT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_RESERVE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_NETWORK_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_NETWORK_SHARES_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_VAULT_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TYPE", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hook", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "maxNetworkLimit", "outputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "networkLimit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "networkLimitAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "operatorNetworkShares", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "operatorNetworkSharesAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "hook_", "type": "address" } ], "name": "setHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "identifier", "type": "uint96" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "setOperatorNetworkShares", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "stake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "stakeAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "totalOperatorNetworkShares", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "totalOperatorNetworkSharesAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/NetworkRestakeRedistributeHookABI.json ````json [ { "inputs": [], "name": "NotNetworkRestakeDelegator", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/OperatorNetworkOptInServiceABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "whoRegistry", "type": "address" }, { "internalType": "address", "name": "whereRegistry", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyOptedIn", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "ExpiredSignature", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "NotOptedIn", "type": "error" }, { "inputs": [], "name": "NotWhereEntity", "type": "error" }, { "inputs": [], "name": "NotWho", "type": "error" }, { "inputs": [], "name": "OptOutCooldown", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [{ "internalType": "string", "name": "str", "type": "string" }], "name": "StringTooLong", "type": "error" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": true, "internalType": "address", "name": "where", "type": "address" } ], "name": "IncreaseNonce", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": true, "internalType": "address", "name": "where", "type": "address" } ], "name": "OptIn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": true, "internalType": "address", "name": "where", "type": "address" } ], "name": "OptOut", "type": "event" }, { "inputs": [], "name": "WHERE_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHO_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "where", "type": "address" } ], "name": "increaseNonce", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" } ], "name": "isOptedIn", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "isOptedInAt", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "where", "type": "address" } ], "name": "optIn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" }, { "internalType": "uint48", "name": "deadline", "type": "uint48" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "optIn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" }, { "internalType": "uint48", "name": "deadline", "type": "uint48" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "optOut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "where", "type": "address" } ], "name": "optOut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/OperatorNetworkSpecificDelegatorABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "operatorRegistry", "type": "address" }, { "internalType": "address", "name": "networkRegistry", "type": "address" }, { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "operatorVaultOptInService", "type": "address" }, { "internalType": "address", "name": "operatorNetworkOptInService", "type": "address" }, { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "uint64", "name": "entityType", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "InsufficientHookGas", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidNetwork", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "inputs": [], "name": "NotOperator", "type": "error" }, { "inputs": [], "name": "NotSlasher", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "OnSlash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "hook", "type": "address" } ], "name": "SetHook", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxNetworkLimit", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_GAS_LIMIT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_RESERVE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_NETWORK_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_VAULT_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TYPE", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hook", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "maxNetworkLimit", "outputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "maxNetworkLimitAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "network", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "hook_", "type": "address" } ], "name": "setHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "identifier", "type": "uint96" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "stake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "stakeAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/OperatorRegistryABI.json ````json [ { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "inputs": [], "name": "OperatorAlreadyRegistered", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "registerOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/OperatorSpecificDecreaseHookABI.json ````json [ { "inputs": [], "name": "NotOperatorSpecificDelegator", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" }, { "internalType": "uint48", "name": "", "type": "uint48" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/OperatorSpecificDelegatorABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "operatorRegistry", "type": "address" }, { "internalType": "address", "name": "networkRegistry", "type": "address" }, { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "operatorVaultOptInService", "type": "address" }, { "internalType": "address", "name": "operatorNetworkOptInService", "type": "address" }, { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "uint64", "name": "entityType", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "DuplicateRoleHolder", "type": "error" }, { "inputs": [], "name": "ExceedsMaxNetworkLimit", "type": "error" }, { "inputs": [], "name": "InsufficientHookGas", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "MissingRoleHolders", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "inputs": [], "name": "NotOperator", "type": "error" }, { "inputs": [], "name": "NotSlasher", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [], "name": "ZeroAddressRoleHolder", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "OnSlash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "hook", "type": "address" } ], "name": "SetHook", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxNetworkLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetNetworkLimit", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_GAS_LIMIT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_RESERVE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_NETWORK_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR_VAULT_OPT_IN_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TYPE", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hook", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "maxNetworkLimit", "outputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" } ], "name": "networkLimit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "networkLimitAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "hook_", "type": "address" } ], "name": "setHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "identifier", "type": "uint96" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNetworkLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "stake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "stakeAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/OperatorVaultOptInServiceABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "whoRegistry", "type": "address" }, { "internalType": "address", "name": "whereRegistry", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyOptedIn", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "ExpiredSignature", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "NotOptedIn", "type": "error" }, { "inputs": [], "name": "NotWhereEntity", "type": "error" }, { "inputs": [], "name": "NotWho", "type": "error" }, { "inputs": [], "name": "OptOutCooldown", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [{ "internalType": "string", "name": "str", "type": "string" }], "name": "StringTooLong", "type": "error" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": true, "internalType": "address", "name": "where", "type": "address" } ], "name": "IncreaseNonce", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": true, "internalType": "address", "name": "where", "type": "address" } ], "name": "OptIn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "who", "type": "address" }, { "indexed": true, "internalType": "address", "name": "where", "type": "address" } ], "name": "OptOut", "type": "event" }, { "inputs": [], "name": "WHERE_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHO_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "where", "type": "address" } ], "name": "increaseNonce", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" } ], "name": "isOptedIn", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "isOptedInAt", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "where", "type": "address" } ], "name": "optIn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" }, { "internalType": "uint48", "name": "deadline", "type": "uint48" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "optIn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" }, { "internalType": "address", "name": "where", "type": "address" }, { "internalType": "uint48", "name": "deadline", "type": "uint48" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "optOut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "where", "type": "address" } ], "name": "optOut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/rETH_BurnerABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assetAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethAmount", "type": "uint256" } ], "name": "TriggerBurn", "type": "event" }, { "inputs": [], "name": "COLLATERAL", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "triggerBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ] ```` ## File: abi/sfrxETH_BurnerABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "address", "name": "fraxEtherRedemptionQueue", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidRequestId", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerWithdrawal", "type": "event" }, { "inputs": [], "name": "COLLATERAL", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FRAX_ETHER_REDEMPTION_QUEUE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "maxRequestIds", "type": "uint256" } ], "name": "requestIds", "outputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "requestIdsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "triggerBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "triggerWithdrawal", "outputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ] ```` ## File: abi/SlasherABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "networkMiddlewareService", "type": "address" }, { "internalType": "address", "name": "slasherFactory", "type": "address" }, { "internalType": "uint64", "name": "entityType", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "InsufficientBurnerGas", "type": "error" }, { "inputs": [], "name": "InsufficientSlash", "type": "error" }, { "inputs": [], "name": "InvalidCaptureTimestamp", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NoBurner", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetworkMiddleware", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "slashedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "Slash", "type": "event" }, { "inputs": [], "name": "BURNER_GAS_LIMIT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BURNER_RESERVE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_MIDDLEWARE_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TYPE", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "cumulativeSlash", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "cumulativeSlashAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isBurnerHook", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "latestSlashedCaptureTimestamp", "outputs": [ { "internalType": "uint48", "name": "value", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "slash", "outputs": [ { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "slashableStake", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/SlasherFactoryABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyBlacklisted", "type": "error" }, { "inputs": [], "name": "AlreadyWhitelisted", "type": "error" }, { "inputs": [], "name": "ERC1167FailedCreateClone", "type": "error" }, { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "inputs": [], "name": "InvalidImplementation", "type": "error" }, { "inputs": [], "name": "InvalidType", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "type_", "type": "uint64" } ], "name": "Blacklist", "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": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Whitelist", "type": "event" }, { "inputs": [{ "internalType": "uint64", "name": "type_", "type": "uint64" }], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint64", "name": "type_", "type": "uint64" }], "name": "blacklisted", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "type_", "type": "uint64" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "create", "outputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint64", "name": "type_", "type": "uint64" }], "name": "implementation", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalTypes", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" } ], "name": "whitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/swETH_BurnerABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "address", "name": "swEXIT", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InsufficientWithdrawal", "type": "error" }, { "inputs": [], "name": "InvalidRequestId", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "firstRequestId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastRequestId", "type": "uint256" } ], "name": "TriggerWithdrawal", "type": "event" }, { "inputs": [], "name": "COLLATERAL", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SWEXIT", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "maxRequestIds", "type": "uint256" } ], "name": "requestIds", "outputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "requestIdsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "triggerBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxRequests", "type": "uint256" } ], "name": "triggerWithdrawal", "outputs": [ { "internalType": "uint256", "name": "firstRequestId", "type": "uint256" }, { "internalType": "uint256", "name": "lastRequestId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ] ```` ## File: abi/VaultABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "address", "name": "slasherFactory", "type": "address" }, { "internalType": "address", "name": "vaultFactory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "AlreadyClaimed", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "DelegatorAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "DepositLimitReached", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InsufficientClaim", "type": "error" }, { "inputs": [], "name": "InsufficientDeposit", "type": "error" }, { "inputs": [], "name": "InsufficientRedemption", "type": "error" }, { "inputs": [], "name": "InsufficientWithdrawal", "type": "error" }, { "inputs": [], "name": "InvalidAccount", "type": "error" }, { "inputs": [], "name": "InvalidCaptureEpoch", "type": "error" }, { "inputs": [], "name": "InvalidClaimer", "type": "error" }, { "inputs": [], "name": "InvalidCollateral", "type": "error" }, { "inputs": [], "name": "InvalidDelegator", "type": "error" }, { "inputs": [], "name": "InvalidEpoch", "type": "error" }, { "inputs": [], "name": "InvalidEpochDuration", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidLengthEpochs", "type": "error" }, { "inputs": [], "name": "InvalidOnBehalfOf", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSlasher", "type": "error" }, { "inputs": [], "name": "InvalidTimestamp", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "MissingRoles", "type": "error" }, { "inputs": [], "name": "NoPreviousEpoch", "type": "error" }, { "inputs": [], "name": "NotDelegator", "type": "error" }, { "inputs": [], "name": "NotFactory", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotSlasher", "type": "error" }, { "inputs": [], "name": "NotWhitelistedDepositor", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "SlasherAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "TooMuchRedeem", "type": "error" }, { "inputs": [], "name": "TooMuchWithdraw", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "epochs", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "depositor", "type": "address" }, { "indexed": true, "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "indexed": false, "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "name": "OnSlash", "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": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" } ], "name": "SetDelegator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "SetDepositLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetDepositWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetDepositorWhitelistStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetIsDepositLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "slasher", "type": "address" } ], "name": "SetSlasher", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "withdrawer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "burnedShares", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DELEGATOR_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSITOR_WHITELIST_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSIT_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSIT_WHITELIST_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "IS_DEPOSIT_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SLASHER_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "activeBalanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "activeBalanceOfAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeShares", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "activeSharesAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "activeSharesOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "activeSharesOfAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeStake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "activeStakeAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "epoch", "type": "uint256" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256[]", "name": "epochs", "type": "uint256[]" } ], "name": "claimBatch", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "collateral", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentEpoch", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentEpochStart", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "delegator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "depositedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositLimit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "depositWhitelist", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "name": "epochAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "epochDuration", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "epochDurationInit", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "initialVersion", "type": "uint64" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isDelegatorInitialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isDepositLimit", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isDepositorWhitelisted", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isInitialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSlasherInitialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "isWithdrawalsClaimed", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "newVersion", "type": "uint64" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "nextEpochStart", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "onSlash", "outputs": [ { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "previousEpochStart", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimer", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "withdrawnAssets", "type": "uint256" }, { "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator_", "type": "address" } ], "name": "setDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "setDepositLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "bool", "name": "status", "type": "bool" }], "name": "setDepositWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setDepositorWhitelistStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "bool", "name": "status", "type": "bool" }], "name": "setIsDepositLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "slasher_", "type": "address" } ], "name": "setSlasher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "slashableBalanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "slasher", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalStake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimer", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "burnedShares", "type": "uint256" }, { "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" } ], "name": "withdrawalShares", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawalSharesOf", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" } ], "name": "withdrawals", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawalsOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/VaultConfiguratorABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "address", "name": "slasherFactory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "DELEGATOR_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SLASHER_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint64", "name": "version", "type": "uint64" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "bytes", "name": "vaultParams", "type": "bytes" }, { "internalType": "uint64", "name": "delegatorIndex", "type": "uint64" }, { "internalType": "bytes", "name": "delegatorParams", "type": "bytes" }, { "internalType": "bool", "name": "withSlasher", "type": "bool" }, { "internalType": "uint64", "name": "slasherIndex", "type": "uint64" }, { "internalType": "bytes", "name": "slasherParams", "type": "bytes" } ], "internalType": "struct IVaultConfigurator.InitParams", "name": "params", "type": "tuple" } ], "name": "create", "outputs": [ { "internalType": "address", "name": "vault", "type": "address" }, { "internalType": "address", "name": "delegator", "type": "address" }, { "internalType": "address", "name": "slasher", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/VaultFactoryABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyBlacklisted", "type": "error" }, { "inputs": [], "name": "AlreadyWhitelisted", "type": "error" }, { "inputs": [], "name": "EntityNotExist", "type": "error" }, { "inputs": [], "name": "InvalidImplementation", "type": "error" }, { "inputs": [], "name": "InvalidVersion", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "OldVersion", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" } ], "name": "AddEntity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Blacklist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "entity", "type": "address" }, { "indexed": false, "internalType": "uint64", "name": "newVersion", "type": "uint64" } ], "name": "Migrate", "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": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Whitelist", "type": "event" }, { "inputs": [ { "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "blacklisted", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "version", "type": "uint64" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "create", "outputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "entity", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "implementation", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" } ], "name": "isEntity", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastVersion", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "entity_", "type": "address" }, { "internalType": "uint64", "name": "newVersion", "type": "uint64" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalEntities", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" } ], "name": "whitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/VaultTokenizedABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "delegatorFactory", "type": "address" }, { "internalType": "address", "name": "slasherFactory", "type": "address" }, { "internalType": "address", "name": "vaultFactory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "AlreadyClaimed", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "DelegatorAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "DepositLimitReached", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InsufficientClaim", "type": "error" }, { "inputs": [], "name": "InsufficientDeposit", "type": "error" }, { "inputs": [], "name": "InsufficientRedemption", "type": "error" }, { "inputs": [], "name": "InsufficientWithdrawal", "type": "error" }, { "inputs": [], "name": "InvalidAccount", "type": "error" }, { "inputs": [], "name": "InvalidCaptureEpoch", "type": "error" }, { "inputs": [], "name": "InvalidClaimer", "type": "error" }, { "inputs": [], "name": "InvalidCollateral", "type": "error" }, { "inputs": [], "name": "InvalidDelegator", "type": "error" }, { "inputs": [], "name": "InvalidEpoch", "type": "error" }, { "inputs": [], "name": "InvalidEpochDuration", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidLengthEpochs", "type": "error" }, { "inputs": [], "name": "InvalidOnBehalfOf", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSlasher", "type": "error" }, { "inputs": [], "name": "InvalidTimestamp", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "MissingRoles", "type": "error" }, { "inputs": [], "name": "NoPreviousEpoch", "type": "error" }, { "inputs": [], "name": "NotDelegator", "type": "error" }, { "inputs": [], "name": "NotFactory", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotSlasher", "type": "error" }, { "inputs": [], "name": "NotWhitelistedDepositor", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "SlasherAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "TooMuchRedeem", "type": "error" }, { "inputs": [], "name": "TooMuchWithdraw", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "epochs", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "depositor", "type": "address" }, { "indexed": true, "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "indexed": false, "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "name": "OnSlash", "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": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" } ], "name": "SetDelegator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "SetDepositLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetDepositWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetDepositorWhitelistStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetIsDepositLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "slasher", "type": "address" } ], "name": "SetSlasher", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "withdrawer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "burnedShares", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DELEGATOR_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSITOR_WHITELIST_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSIT_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSIT_WHITELIST_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "IS_DEPOSIT_LIMIT_SET_ROLE", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SLASHER_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "activeBalanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "activeBalanceOfAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeShares", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "activeSharesAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "activeSharesOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "activeSharesOfAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeStake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "activeStakeAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "epoch", "type": "uint256" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256[]", "name": "epochs", "type": "uint256[]" } ], "name": "claimBatch", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "collateral", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentEpoch", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentEpochStart", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "delegator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "depositedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositLimit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "depositWhitelist", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "timestamp", "type": "uint48" } ], "name": "epochAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "epochDuration", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "epochDurationInit", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "initialVersion", "type": "uint64" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isDelegatorInitialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isDepositLimit", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isDepositorWhitelisted", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isInitialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSlasherInitialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "isWithdrawalsClaimed", "outputs": [{ "internalType": "bool", "name": "value", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "newVersion", "type": "uint64" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextEpochStart", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" } ], "name": "onSlash", "outputs": [ { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "previousEpochStart", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimer", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "withdrawnAssets", "type": "uint256" }, { "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator_", "type": "address" } ], "name": "setDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "setDepositLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "bool", "name": "status", "type": "bool" }], "name": "setDepositWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setDepositorWhitelistStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "bool", "name": "status", "type": "bool" }], "name": "setIsDepositLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "slasher_", "type": "address" } ], "name": "setSlasher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "slashableBalanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "slasher", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalStake", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimer", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "burnedShares", "type": "uint256" }, { "internalType": "uint256", "name": "mintedShares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" } ], "name": "withdrawalShares", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawalSharesOf", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" } ], "name": "withdrawals", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawalsOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" } ] ```` ## File: abi/VetoSlasherABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "vaultFactory", "type": "address" }, { "internalType": "address", "name": "networkMiddlewareService", "type": "address" }, { "internalType": "address", "name": "networkRegistry", "type": "address" }, { "internalType": "address", "name": "slasherFactory", "type": "address" }, { "internalType": "uint64", "name": "entityType", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadySet", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "InsufficientBurnerGas", "type": "error" }, { "inputs": [], "name": "InsufficientSlash", "type": "error" }, { "inputs": [], "name": "InvalidCaptureTimestamp", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidResolverSetEpochsDelay", "type": "error" }, { "inputs": [], "name": "InvalidVetoDuration", "type": "error" }, { "inputs": [], "name": "NoBurner", "type": "error" }, { "inputs": [], "name": "NoResolver", "type": "error" }, { "inputs": [], "name": "NotInitialized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotNetwork", "type": "error" }, { "inputs": [], "name": "NotNetworkMiddleware", "type": "error" }, { "inputs": [], "name": "NotResolver", "type": "error" }, { "inputs": [], "name": "NotVault", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [], "name": "SlashPeriodEnded", "type": "error" }, { "inputs": [], "name": "SlashRequestCompleted", "type": "error" }, { "inputs": [], "name": "SlashRequestNotExist", "type": "error" }, { "inputs": [], "name": "VetoPeriodEnded", "type": "error" }, { "inputs": [], "name": "VetoPeriodNotEnded", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "slashIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "name": "ExecuteSlash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "slashIndex", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "slashAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "indexed": false, "internalType": "uint48", "name": "vetoDeadline", "type": "uint48" } ], "name": "RequestSlash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "resolver", "type": "address" } ], "name": "SetResolver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "slashIndex", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "resolver", "type": "address" } ], "name": "VetoSlash", "type": "event" }, { "inputs": [], "name": "BURNER_GAS_LIMIT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BURNER_RESERVE", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_MIDDLEWARE_SERVICE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NETWORK_REGISTRY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TYPE", "outputs": [{ "internalType": "uint64", "name": "", "type": "uint64" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "cumulativeSlash", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "cumulativeSlashAt", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "slashIndex", "type": "uint256" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "executeSlash", "outputs": [ { "internalType": "uint256", "name": "slashedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isBurnerHook", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "latestSlashedCaptureTimestamp", "outputs": [ { "internalType": "uint48", "name": "value", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "requestSlash", "outputs": [ { "internalType": "uint256", "name": "slashIndex", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "resolver", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hint", "type": "bytes" } ], "name": "resolverAt", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "resolverSetEpochsDelay", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "identifier", "type": "uint96" }, { "internalType": "address", "name": "resolver_", "type": "address" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "setResolver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "slashRequests", "outputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "uint48", "name": "vetoDeadline", "type": "uint48" }, { "internalType": "bool", "name": "completed", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "slashRequestsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "subnetwork", "type": "bytes32" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint48", "name": "captureTimestamp", "type": "uint48" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "slashableStake", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "staticDelegateCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vetoDuration", "outputs": [{ "internalType": "uint48", "name": "", "type": "uint48" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "slashIndex", "type": "uint256" }, { "internalType": "bytes", "name": "hints", "type": "bytes" } ], "name": "vetoSlash", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] ```` ## File: abi/wstETH_BurnerABI.json ````json [ { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address" }, { "internalType": "address", "name": "lidoWithdrawalQueue", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InsufficientWithdrawal", "type": "error" }, { "inputs": [], "name": "InvalidRequestId", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "TriggerBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "requestIds", "type": "uint256[]" } ], "name": "TriggerBurnBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "requestIds", "type": "uint256[]" } ], "name": "TriggerWithdrawal", "type": "event" }, { "inputs": [], "name": "COLLATERAL", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LIDO_WITHDRAWAL_QUEUE", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_STETH_WITHDRAWAL_AMOUNT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_STETH_WITHDRAWAL_AMOUNT", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "STETH", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "maxRequestIds", "type": "uint256" } ], "name": "requestIds", "outputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "requestIdsLength", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "requestId", "type": "uint256" } ], "name": "triggerBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "hints", "type": "uint256[]" } ], "name": "triggerBurnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxRequests", "type": "uint256" } ], "name": "triggerWithdrawal", "outputs": [ { "internalType": "uint256[]", "name": "requestIds_", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ] ```` ## File: LICENSE ```` MIT License Copyright (c) 2024 Symbiotic Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ```` ## File: README.md ````markdown # Symbiotic CLI (symb) Simple CLI tool for fetching data and interacting with Symbiotic core smart contracts. [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/symbioticfi/cli) ## Documentation Can be found [here](https://docs.symbiotic.fi/guides/cli). ## Prerequisites - Python >=3.8 ## Install ```bash pip3 install -r requirements.txt ``` ## Usage ``` $ python3 symb.py Usage: symb.py [GENERAL_OPTIONS] COMMAND [ARGS] [OPTIONS] General options: --help Show all the possible commands and exit. --chain TEXT Chain ID to use. --provider TEXT Ethereum provider URL [http(s)]. Commands: --- for general use (related to Networks) --- isnet Check if address is network. middleware Get network middleware address. nets List all networks. netops List all operators opted in network. netstakes Show stakes of all operators in network. max-network-limit Get a maximum network limit at the vault's delegator. network-limit Get a network limit at the vault's delegator. pending-resolver Get a current resolver for a subnetwork in a vault. resolver Get a pending resolver for a subnetwork in a vault. --- for general use (related to Operators) --- isop Check if address is operator. ops List all operators. opnets List all networks where operator is opted in. op-vault-net-stake Get operator stake in vault for network (includes data about the operator's shares if NetworkRestakeDelegator). opstakes Show operator stakes in all networks. check-opt-in-network Check if operator is opted in to a network. check-opt-in-vault Check if is opted in to a vault. operator-network-limit Get an operator-network limit at the vault's delegator. operator-network-shares Get operator-network shares at the vault's delegator. total-operator-network-shares Get total operator-network shares at the vault's delegator. --- for general use (related to Vaults) --- isvault Check if address is vault. vaults List all vaults. vaultnets List all networks associated with the given vault. vaultops List all operators opted into the given vault. vaultnetsops List all operators and their associated networks for the given vault. --- for general use (related to Stakers) --- active-balance-of Get an active balance of a given account at a particular vault. withdrawals-of Get some epoch's withdrawals of a given account at a particular vault. withdrawals-claimed Check if some epoch's withdrawals of a given account at a particular vault are claimed. --- for Networks --- register-network Register the signer as a network. set-max-network-limit Set a maximum network limit at the vault's delegator. set-resolver Set a resolver for a subnetwork at VetoSlasher. --- for Operators --- register-operator Register the signer as an operator. opt-in-network Opt-in to a network. opt-in-network-signature Get a signature for opt-in to a network. opt-in-vault Opt-in to a vault. opt-in-vault-signature Get a signature for opt-in to a vault. opt-out-network Opt-out from a network. opt-out-network-signature Get a signature for opt-out from a network. opt-out-vault Opt-out from a vault. opt-out-vault-signature Get a signature for opt-out from a vault. --- for Vault Curators --- set-network-limit Set a network limit at the vault's delegator. set-operator-network-limit Set an operator-network limit at the vault's delegator. set-operator-network-shares Set an operator-network shares at the vault's delegator. --- for Stakers --- deposit Deposit to the vault. withdraw Withdraw from the vault. claim Claim a withdrawal for some epoch at the vault. Options: --help Show the command's description and exit. --private-key TEXT Private key to sign transactions with (only for write functionality). --ledger Flag if to use a ledger to sign transactions (only for write functionality). --ledger-address TEXT Address of the ledger's account to use to sign transactions (only for write functionality). ``` ```` ## File: requirements.txt ```` click==8.1.3 web3==6.11.1 w3multicall==0.3.1 ledgereth==0.9.1 ```` ## File: symb.py ````python class AddressType(click.ParamType) ⋮---- name = "ethereum_address" pattern = re.compile(r"^0x[0-9a-fA-F]{40}$") ⋮---- def convert(self, value, param, ctx) ⋮---- class Bytes32Type(click.ParamType) ⋮---- name = "bytes32" ⋮---- value = value[2:] ⋮---- class Uint256Type(click.ParamType) ⋮---- name = "uint256" ⋮---- ivalue = int(value) ⋮---- class Uint96Type(click.ParamType) ⋮---- name = "uint96" ⋮---- class Uint48Type(click.ParamType) ⋮---- name = "uint48" ⋮---- class TokenAmountType(click.ParamType) ⋮---- name = "token_amount" ⋮---- def __init__(self, decimals=18) ⋮---- # Convert the string input to a Decimal amount = Decimal(value) ⋮---- # Check for negative amounts ⋮---- class ChainType(click.ParamType) ⋮---- name = "chain" ⋮---- CHAIN_IDS = { ⋮---- value_str = str(value).lower() ⋮---- address_type = AddressType() bytes32_type = Bytes32Type() uint256_type = Uint256Type() uint96_type = Uint96Type() uint48_type = Uint48Type() token_amount_type = TokenAmountType() chain_type = ChainType() ⋮---- def load_abi(abis_path, name) ⋮---- class SymbioticCLI ⋮---- PROVIDERS = { ⋮---- ABIS_PATH = "./abi" ⋮---- ABIS = { ⋮---- ADDRESSES = { ⋮---- DELEGATOR_TYPES_ENTITIES = { ⋮---- DELEGATOR_TYPES_NAMES = { ⋮---- SLASHER_TYPES_NAMES = { ⋮---- SUBNETWORKS = [0, 1] # TODO: Generalize subnetworks ⋮---- def __init__(self, chain, provider) ⋮---- def init_contracts(self) ⋮---- def build_error_selector_map(self) ⋮---- parsed_abi = json.loads(open(f"{self.ABIS_PATH}/{abi_name}", "r").read()) ⋮---- error_name = item["name"] ⋮---- input_types = [] type_sig = f"{error_name}()" ⋮---- input_types = [inp["type"] for inp in item["inputs"]] type_sig = f"{error_name}({','.join(input_types)})" ⋮---- selector = Web3.keccak(text=type_sig)[:4].hex() ⋮---- def normalize_address(self, address) ⋮---- def get_subnetwork(self, net, subnet_id=0) ⋮---- net = self.normalize_address(net) ⋮---- def get_token_meta(self, token) ⋮---- token = self.normalize_address(token) ⋮---- w3_multicall = W3Multicall(self.w3) ⋮---- res = w3_multicall.call() ⋮---- res = [None, None] ⋮---- meta = {"symbol": "Unknown", "decimals": 0} ⋮---- meta = {"symbol": res[0], "decimals": int(res[1])} ⋮---- def get_middleware(self, net) ⋮---- def get_collateral(self, vault_address) ⋮---- vault_address = self.normalize_address(vault_address) ⋮---- def get_delegator(self, vault_address) ⋮---- def get_slasher(self, vault_address) ⋮---- def get_nets(self) ⋮---- total_entities = self.contracts["net_registry"].functions.totalEntities().call() ⋮---- nets = w3_multicall.call() nets = [self.normalize_address(net) for net in nets] ⋮---- middlewares = w3_multicall.call() middlewares = [self.normalize_address(middleware) for middleware in middlewares] ⋮---- def get_ops(self) ⋮---- total_entities = self.contracts["op_registry"].functions.totalEntities().call() ⋮---- ops = w3_multicall.call() ⋮---- def get_op_nets(self, operator) ⋮---- operator = self.normalize_address(operator) nets = self.get_nets() ⋮---- optins = w3_multicall.call() ⋮---- def get_net_ops(self, net) ⋮---- ops = self.get_ops() ⋮---- def get_vaults(self) ⋮---- total_entities = ( ⋮---- vaults = w3_multicall.call() vaults = [self.normalize_address(vault) for vault in vaults] ⋮---- data = w3_multicall.call() results = [] n = 4 ⋮---- rev_result_idxs = [] ⋮---- response = w3_multicall.call() ⋮---- def get_net_vaults(self, net) ⋮---- """Fetch all vaults in a given network.""" ⋮---- vaults = self.get_vaults() vaults = [ ⋮---- limits = w3_multicall.call() ⋮---- i = 0 ⋮---- vault_limit = {} ⋮---- limit = limits[i] ⋮---- def get_net_ops_vaults(self, net) ⋮---- """Fetch the stakes of all operators in a given network.""" ⋮---- vaults = self.get_net_vaults(net) ops = self.get_net_ops(net) ⋮---- stakes = w3_multicall.call() results = [{"op": op, "vaults": []} for op in ops] ⋮---- vault_stake = {} ⋮---- stake = stakes[i] ⋮---- def get_vault_nets_ops_full(self, data) ⋮---- nets = self.get_vault_nets(data["vault"]) ops = self.get_vault_ops(data["vault"]) ⋮---- results = [{"net": net["net"], "ops": []} for net in nets] ⋮---- op_stakes = {} ⋮---- def get_op_nets_vaults(self, op) ⋮---- """Fetch stakes of an operator in all networks.""" op = self.normalize_address(op) nets = self.get_op_nets(op) ⋮---- net_vaults = {} ⋮---- results = [{"net": net["net"], "vaults": []} for net in nets] ⋮---- def get_vault_ops(self, vault) ⋮---- """Get all operators that are opted into a given vault.""" vault = self.normalize_address(vault) ⋮---- def get_vault_nets(self, vault) ⋮---- """Get all networks associated with a given vault.""" ⋮---- delegator = self.get_delegator(vault) ⋮---- net_associations = w3_multicall.call() ⋮---- network_limit = {} ⋮---- associated = net_associations[i] ⋮---- def get_vault_nets_ops(self, vault) ⋮---- """Get all operators opted into the vault and their associated networks.""" ⋮---- vault_ops = self.get_vault_ops(vault) vault_nets = self.get_vault_nets(vault) ⋮---- results = {} ⋮---- def get_op_opted_in_vault(self, operator, vault) ⋮---- """Check if an operator is opted into a vault.""" ⋮---- def get_op_opted_in_net(self, operator, net) ⋮---- """Check if an operator is opted into a network.""" ⋮---- def get_resolver_set_epoch_delay(self, slasher_address) ⋮---- slasher_address = self.normalize_address(slasher_address) ⋮---- def get_resolver(self, slasher_address, subnetwork) ⋮---- def get_pending_resolver(self, slasher_address, subnetwork) ⋮---- timestamp = 2**48 - 1 ⋮---- def get_entity_type(self, entity_address) ⋮---- entity_address = self.normalize_address(entity_address) ⋮---- def get_vault_epoch_duration(self, vault_address) ⋮---- def get_vault_current_epoch(self, vault_address) ⋮---- def get_vault_current_epoch_start(self, vault_address) ⋮---- def get_max_network_limit(self, delegator_address, subnetwork) ⋮---- delegator_address = self.normalize_address(delegator_address) ⋮---- def get_network_limit(self, delegator_address, subnetwork) ⋮---- operator_address = self.normalize_address(operator_address) ⋮---- def get_total_operator_network_shares(self, delegator_address, subnetwork) ⋮---- def get_stake(self, vault_address, subnetwork, operator_address) ⋮---- delegator_address = self.get_delegator(vault_address) ⋮---- def get_wei_amount(self, token, amount) ⋮---- meta = self.get_token_meta(token) wei_amount = int(amount * 10 ** meta["decimals"]) ⋮---- def get_token_amount(self, token, wei_amount) ⋮---- def get_allowance(self, token, owner, spender) ⋮---- owner = self.normalize_address(owner) spender = self.normalize_address(spender) ⋮---- def get_active_balance(self, vault_address, account) ⋮---- account = self.normalize_address(account) ⋮---- def get_withdrawals(self, vault_address, epoch, account) ⋮---- def get_withdrawals_claimed(self, vault_address, epoch, account) ⋮---- def timestamp_to_datetime(self, timestamp) ⋮---- where = self.normalize_address(where) who = self.get_address(private_key, ledger, ledger_address) entity = "op_net_opt_in" nonce = self.get_data(entity, self.addresses[entity], "nonces", who, where) deadline = int(time()) + duration ⋮---- entity = "op_vault_opt_in" ⋮---- def decode_error_data(self, error_data: str) ⋮---- error_data = "0x" + error_data ⋮---- selector = error_data[:10] encoded_args = error_data[10:] ⋮---- encoded_bytes = bytes.fromhex(encoded_args) decoded = abi.decode(input_types, encoded_bytes) ⋮---- # "Error(string)" ⋮---- reason_str = abi.decode(["string"], encoded_bytes)[0] ⋮---- # "Panic(uint256)" ⋮---- panic_code = abi.decode(["uint256"], encoded_bytes)[0] ⋮---- def process_error(self, e) ⋮---- raw_msg = str(e.args[0]) m = re.search(r"(0x[0-9a-fA-F]+)", raw_msg) ⋮---- revert_hex = m.group(1) decoded = self.decode_error_data(revert_hex) ⋮---- def print_indented(self, *args, indent=2) ⋮---- def get_data(self, entity, address, function_name, *args, **kwargs) ⋮---- address = self.normalize_address(address) contract = self.w3.eth.contract(address=address, abi=self.ABIS[entity]) ⋮---- def get_address(self, private_key, ledger, ledger_address) ⋮---- ledger_address = self.normalize_address(ledger_address) ⋮---- address = ledger_address ⋮---- address = ledgereth.accounts.get_accounts()[0].address ⋮---- address = Account.from_key(private_key).address ⋮---- def get_transaction(self, who, entity, address, function_name, *args, **kwargs) ⋮---- who = self.normalize_address(who) ⋮---- tx = self.get_transaction( ⋮---- def send_raw_transaction_and_wait(self, rawTransaction) ⋮---- tx_hash = self.w3.eth.send_raw_transaction(rawTransaction) ⋮---- def send_transaction(self, tx, private_key) ⋮---- signed_tx = self.w3.eth.account.sign_transaction(tx, private_key) ⋮---- def send_transaction_ledger(self, tx) ⋮---- to = self.normalize_address(to) ⋮---- account = ledgereth.accounts.find_account(ledger_address) ⋮---- account = ledgereth.accounts.get_accounts()[0] ⋮---- tx = self.get_transaction_ledger( ⋮---- tx_receipt = self.send_transaction_ledger(tx) ⋮---- who = Account.from_key(private_key).address ⋮---- tx = self.get_transaction(who, entity, to, function_name, *args) ⋮---- tx_receipt = self.send_transaction(tx, private_key) ⋮---- def get_domain_data(self, name, version, verifyingContract) ⋮---- verifyingContract = self.normalize_address(verifyingContract) ⋮---- def sign_typed_data_ledger(self, account, signable_message) ⋮---- domain_hash = signable_message.header message_hash = signable_message.body ⋮---- signable_message = self.get_signable_message_from_typed_data( ⋮---- signed_message = self.sign_typed_data_ledger(account, signable_message) signature = signed_message.signature ⋮---- signed_message = self.sign_typed_data( signature = signed_message.signature.hex() ⋮---- def process_request(self, request_text) ⋮---- response = input(f"{request_text}") ⋮---- ### GENERAL CLI COMMANDS ### ⋮---- @click.pass_context def cli(ctx, chain, provider) ⋮---- ## GENERAL NETWORK RELATED CLI COMMANDS ## ⋮---- @cli.command() @click.argument("address", type=address_type) @click.pass_context def isnet(ctx, address) ⋮---- """Check if address is network. \b ADDRESS - an address to check """ address = ctx.obj.normalize_address(address) is_net = ctx.obj.contracts["net_registry"].functions.isEntity(address).call() ⋮---- @cli.command() @click.argument("network_address", type=address_type) @click.pass_context def middleware(ctx, network_address) ⋮---- """Get network middleware address. \b NETWORK_ADDRESS - an address of the network to get a middleware for """ network_address = ctx.obj.normalize_address(network_address) middleware_address = ctx.obj.get_middleware(network_address) ⋮---- @click.pass_context def nets(ctx, full) ⋮---- """List all networks.""" nets = ctx.obj.get_nets() ⋮---- op_vaults = ctx.obj.get_net_ops_vaults(net["net"]) ⋮---- vaults = {vault["vault"] for op in op_vaults for vault in op["vaults"]} ⋮---- @cli.command() @click.argument("network_address", type=address_type) @click.pass_context def netops(ctx, network_address) ⋮---- """List all operators opted in network. \b NETWORK_ADDRESS - an address of the network to get operators for """ ⋮---- ops = ctx.obj.get_net_ops(network_address) ⋮---- @cli.command() @click.argument("network_address", type=address_type) @click.pass_context def netstakes(ctx, network_address) ⋮---- """Show stakes of all operators in network. \b NETWORK_ADDRESS - an address of the network to get a whole stake data for """ ⋮---- opsvaults = ctx.obj.get_net_ops_vaults(network_address) ⋮---- total_stakes = {} ⋮---- collaterals = {} ⋮---- total_op_stake = "" ⋮---- stakes_sum = 0 token_meta = ctx.obj.get_token_meta(collateral) ⋮---- stake = sum(vault["stake"].values()) ⋮---- ## GENERAL OPERATOR RELATED CLI COMMANDS ## ⋮---- @cli.command() @click.argument("address", type=address_type) @click.pass_context def isop(ctx, address) ⋮---- """Check if address is operator. \b ADDRESS - an address to check """ ⋮---- is_op = ctx.obj.contracts["op_registry"].functions.isEntity(address).call() ⋮---- @cli.command() @click.pass_context def ops(ctx) ⋮---- """List all operators.""" ops = ctx.obj.get_ops() ⋮---- @cli.command() @click.argument("operator_address", type=address_type) @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def op_vault_net_stake(ctx, operator_address, vault_address, network_address) ⋮---- """Get operator stake in vault for network. \b OPERATOR_ADDRESS - an address of the operator to get a stake of VAULT_ADDRESS - an address of the vault to get a stake at NETWORK_ADDRESS - an address of the network to get a stake for """ operator_address = ctx.obj.normalize_address(operator_address) vault_address = ctx.obj.normalize_address(vault_address) ⋮---- delegator = ctx.obj.get_delegator(vault_address) delegator_type = ctx.obj.get_entity_type(delegator) ⋮---- subnetwork = ctx.obj.get_subnetwork(network_address, subnetwork_id) ⋮---- stake = ctx.obj.get_stake(vault_address, subnetwork, operator_address) collateral = ctx.obj.get_collateral(vault_address) ⋮---- stake_normalized = stake / 10 ** token_meta["decimals"] collateral_symbol = token_meta["symbol"] ⋮---- operator_network_shares = ctx.obj.get_operator_network_shares( total_operator_network_shares = ctx.obj.get_total_operator_network_shares( ⋮---- percent = ( ⋮---- @cli.command() @click.argument("operator_address", type=address_type) @click.pass_context def opnets(ctx, operator_address) ⋮---- """List all networks where operator is opted in. \b OPERATOR_ADDRESS - an address of the operator to get networks for """ ⋮---- nets = ctx.obj.get_op_nets(operator_address) ⋮---- @cli.command() @click.argument("operator_address", type=address_type) @click.pass_context def opstakes(ctx, operator_address) ⋮---- """Show operator stakes in all networks. \b OPERATOR_ADDRESS - an address of the operator to get a whole stake data for """ ⋮---- netsvaults = ctx.obj.get_op_nets_vaults(operator_address) ⋮---- total_net_stake = "" ⋮---- @cli.command() @click.argument("operator_address", type=address_type) @click.argument("vault_address", type=address_type) @click.pass_context def check_opt_in_vault(ctx, operator_address, vault_address) ⋮---- """Check if operator is opted in to a vault. \b OPERATOR_ADDRESS - an address of the operator to check an opt-in status of VAULT_ADDRESS - an address of the vault to check an opt-in status for """ ⋮---- @cli.command() @click.argument("operator_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def check_opt_in_network(ctx, operator_address, network_address) ⋮---- """Check if operator is opted in to a network. \b OPERATOR_ADDRESS - an address of the operator to check an opt-in status of NETWORK_ADDRESS - an address of the network to check an opt-in status for """ ⋮---- ## GENERAL VAULT RELATED CLI COMMANDS ## ⋮---- @cli.command() @click.argument("address", type=address_type) @click.pass_context def isvault(ctx, address) ⋮---- """Check if address is vault. \b ADDRESS - an address to check """ ⋮---- is_vault = ctx.obj.contracts["vault_factory"].functions.isEntity(address).call() ⋮---- @click.pass_context def vaults(ctx, full) ⋮---- """List all vaults.""" vaults = ctx.obj.get_vaults() ⋮---- collateral_meta = ctx.obj.get_token_meta(vault["collateral"]) ⋮---- slasher_type = ctx.obj.SLASHER_TYPES_NAMES.get(vault["slasher_type"], "Unknown") ⋮---- vault_data = ctx.obj.get_vault_nets_ops_full(vault) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.pass_context def vaultops(ctx, vault_address) ⋮---- """List all operators opted into the given vault. \b VAULT_ADDRESS - an address of the vault to get all operators for """ ⋮---- ops = ctx.obj.get_vault_ops(vault_address) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.pass_context def vaultnets(ctx, vault_address) ⋮---- """List all networks associated with the given vault. \b VAULT_ADDRESS - an address of the vault to get all networks for """ ⋮---- nets = ctx.obj.get_vault_nets(vault_address) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.pass_context def vaultnetsops(ctx, vault_address) ⋮---- """List all operators and their associated networks for the given vault. \b VAULT_ADDRESS - an address of the vault to adjust the delegations for """ ⋮---- nets_ops = ctx.obj.get_vault_nets_ops(vault_address) ⋮---- ## GENERAL STAKER RELATED CLI COMMANDS ## ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("address", type=address_type) @click.pass_context def active_balance_of(ctx, vault_address, address) ⋮---- """Get an active balance of a given account at a particular vault. \b VAULT_ADDRESS - an address of the vault ADDRESS - an address to get an active balance for """ ⋮---- token_address = ctx.obj.get_collateral(vault_address) symbol = ctx.obj.get_token_meta(token_address)["symbol"] active_balance_wei = ctx.obj.get_active_balance(vault_address, address) active_balance = ctx.obj.get_token_amount(token_address, active_balance_wei) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("epoch", type=uint256_type) @click.argument("address", type=address_type) @click.pass_context def withdrawals_of(ctx, vault_address, epoch, address) ⋮---- """Get some epoch's withdrawals of a given account at a particular vault. \b VAULT_ADDRESS - an address of the vault EPOCH - an epoch to get withdrawals for ADDRESS - an address to get withdrawals for """ ⋮---- withdrawals_wei = ctx.obj.get_withdrawals(vault_address, epoch, address) withdrawals = ctx.obj.get_token_amount(token_address, withdrawals_wei) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("epoch", type=uint256_type) @click.argument("address", type=address_type) @click.pass_context def withdrawals_claimed(ctx, vault_address, epoch, address) ⋮---- """Check if some epoch's withdrawals of a given account at a particular vault are claimed. \b VAULT_ADDRESS - an address of the vault EPOCH - an epoch to check for ADDRESS - an address to get if the withdrawals are claimed for """ ⋮---- withdrawals_claimed = ctx.obj.get_withdrawals_claimed(vault_address, epoch, address) ⋮---- ### NETWORK CLI COMMANDS ### ⋮---- @click.pass_context def register_network(ctx, private_key, ledger, ledger_address) ⋮---- """Register the signer as a network.""" ⋮---- """Set a maximum network limit at the vault's delegator. \b VAULT_ADDRESS - an address of the vault to set a maximum limit for MAX_LIMIT - a maximum amount of stake a network is ready to get from the vault (in wei) SUBNETWORK_ID - an identifier of the subnetwork to set a maximum limit for (default is 0) """ ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def max_network_limit(ctx, vault_address, network_address) ⋮---- """Get a current maximum network limit for a subnetwork in a vault. \b VAULT_ADDRESS - an address of the vault to get a maximum network limit for NETWORK_ADDRESS - an address of the network to get a maximum network limit for """ ⋮---- max_network_limit = ctx.obj.get_max_network_limit(delegator, subnetwork) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def resolver(ctx, vault_address, network_address) ⋮---- """Get a current resolver for a subnetwork in a vault. \b VAULT_ADDRESS - an address of the vault to get a resolver for NETWORK_ADDRESS - an address of the network to get a resolver for """ ⋮---- slasher = ctx.obj.get_slasher(vault_address) slasher_type = ctx.obj.get_entity_type(slasher) ⋮---- resolver = ctx.obj.get_resolver(slasher, subnetwork) ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def pending_resolver(ctx, vault_address, network_address) ⋮---- """Get a pending resolver for a subnetwork in a vault. \b VAULT_ADDRESS - an address of the vault to get a pending resolver for NETWORK_ADDRESS - an address of the network to get a pending resolver for """ ⋮---- pending_resolver = ctx.obj.get_pending_resolver(slasher, subnetwork) ⋮---- """Set a resolver for a subnetwork at VetoSlasher. \b VAULT_ADDRESS - an address of the vault to set a resolver for RESOLVER - an address of the resolver to set SUBNETWORK_ID - an identifier of the subnetwork to set a resolver for (default is 0) """ ⋮---- resolver = ctx.obj.normalize_address(resolver) ⋮---- net = ctx.obj.get_address(private_key, ledger, ledger_address) ⋮---- subnetwork = ctx.obj.get_subnetwork(net, subnetwork_id) ⋮---- current_resolver = ctx.obj.get_resolver(slasher, subnetwork) ⋮---- new_timestamp = ctx.obj.get_vault_current_epoch_start( new_datetime = ctx.obj.timestamp_to_datetime(new_timestamp) ⋮---- ### OPERATOR CLI COMMANDS ### ⋮---- @click.pass_context def register_operator(ctx, private_key, ledger, ledger_address) ⋮---- """Register the signer as an operator.""" ⋮---- @click.pass_context def opt_in_vault(ctx, vault_address, private_key, ledger, ledger_address) ⋮---- """Opt-in to a vault. \b VAULT_ADDRESS - an address of the vault to opt into """ ⋮---- """Get a signature for opt-in to a vault. \b VAULT_ADDRESS - an address of the vault to opt into DURATION - a period of time (in seconds) after which the signature will expire (default is 7 days) """ ⋮---- @click.pass_context def opt_out_vault(ctx, vault_address, private_key, ledger, ledger_address) ⋮---- """Opt-out from a vault. \b VAULT_ADDRESS - an address of the vault to opt out from """ ⋮---- """Get a signature for opt-out from a vault. \b VAULT_ADDRESS - an address of the vault to opt out from DURATION - a period of time (in seconds) after which the signature will expire (default is 7 days) """ ⋮---- @click.pass_context def opt_in_network(ctx, network_address, private_key, ledger, ledger_address) ⋮---- """Opt-in to a network. \b NETWORK_ADDRESS - an address of the network to opt into """ ⋮---- """Get a signature for opt-in to a network. \b NETWORK_ADDRESS - an address of the network to opt into DURATION - a period of time (in seconds) after which the signature will expire (default is 7 days) """ ⋮---- @click.pass_context def opt_out_network(ctx, network_address, private_key, ledger, ledger_address) ⋮---- """Opt-out from a network. \b NETWORK_ADDRESS - an address of the network to opt out from """ ⋮---- """Get a signature for opt-out from a network. \b NETWORK_ADDRESS - an address of the network to opt out from DURATION - a period of time (in seconds) after which the signature will expire (default is 7 days) """ ⋮---- ### VAULT CURATOR CLI COMMANDS ### ⋮---- """Set a network limit at the vault's delegator. \b VAULT_ADDRESS - an address of the vault to adjust the delegations for NETWORK_ADDRESS - an address of the network to set a limit for LIMIT - a maximum amount of stake the network can get (in wei) SUBNETWORK_ID - an identifier of the subnetwork to adjust the delegations for (default is 0) """ ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def network_limit(ctx, vault_address, network_address) ⋮---- """Get a current network limit for a subnetwork in a vault. \b VAULT_ADDRESS - an address of the vault to get a network limit for NETWORK_ADDRESS - an address of the network to get a network limit for """ ⋮---- network_limit = ctx.obj.get_network_limit(delegator, subnetwork) ⋮---- """Set an operator-network limit at the vault's delegator. \b VAULT_ADDRESS - an address of the vault to adjust the delegations for NETWORK_ADDRESS - an address of the network OPERATOR_ADDRESS - an address of the operator to set a limit in the network for LIMIT - a maximum amount of stake the operator can get in the network (in wei) SUBNETWORK_ID - an identifier of the subnetwork to adjust the delegations for (default is 0) """ ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.argument("operator_address", type=address_type) @click.pass_context def operator_network_limit(ctx, vault_address, network_address, operator_address) ⋮---- """Get a current operator-network limit for an operator in the subnetwork. \b VAULT_ADDRESS - an address of the vault to get a operator-network limit for NETWORK_ADDRESS - an address of the network to get a operator-network limit for OPERATOR_ADDRESS - an address of the operator to get a operator-network limit for """ ⋮---- operator_network_limit = ctx.obj.get_operator_network_limit( ⋮---- """Set an operator-network shares at the vault's delegator. \b VAULT_ADDRESS - an address of the vault to adjust the delegations for NETWORK_ADDRESS - an address of the network OPERATOR_ADDRESS - an address of the operator to set shares in the network for SHARES - an amount of shares (determines a percent = operator shares / total shares of the network stake the operator can get) to set for the operator SUBNETWORK_ID - an identifier of the subnetwork to adjust the delegations for (default is 0) """ ⋮---- new_total_operator_network_shares = ( ⋮---- percentage = ( ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.argument("operator_address", type=address_type) @click.pass_context def operator_network_shares(ctx, vault_address, network_address, operator_address) ⋮---- """Get current operator-network shares for an operator in the subnetwork. \b VAULT_ADDRESS - an address of the vault to get operator-network shares for NETWORK_ADDRESS - an address of the network to get operator-network shares for OPERATOR_ADDRESS - an address of the operator to get operator-network shares for """ ⋮---- @cli.command() @click.argument("vault_address", type=address_type) @click.argument("network_address", type=address_type) @click.pass_context def total_operator_network_shares(ctx, vault_address, network_address) ⋮---- """Get current total operator-network shares for a subnetwork in a vault. \b VAULT_ADDRESS - an address of the vault to get total operator-network shares for NETWORK_ADDRESS - an address of the network to get total operator-network shares for """ ⋮---- ### STAKER CLI COMMANDS ### ⋮---- """Deposit to the vault. \b VAULT_ADDRESS - an address of the vault to deposit to AMOUNT - an amount of tokens to deposit (in the token value, e.g., 1000 for 1000 ETH) ON_BEHALF_OF - an address to make a deposit on behalf of (default: address of the signer) """ ⋮---- signer = ctx.obj.get_address(private_key, ledger, ledger_address) on_behalf_of = ctx.obj.normalize_address(on_behalf_of) ⋮---- on_behalf_of = signer ⋮---- wei_amount = ctx.obj.get_wei_amount(token_address, amount) ⋮---- allowance = ctx.obj.get_allowance(token_address, signer, vault_address) ⋮---- """Withdraw from the vault. \b VAULT_ADDRESS - an address of the vault to withdraw from AMOUNT - an amount of tokens to withdraw (in the token value, e.g., 1000 for 1000 ETH) CLAIMER - an address that needs to claim the withdrawal (default: address of the signer) """ ⋮---- claimer = ctx.obj.normalize_address(claimer) ⋮---- claimer = signer ⋮---- epoch_duration = ctx.obj.get_vault_epoch_duration(vault_address) current_epoch = ctx.obj.get_vault_current_epoch(vault_address) current_epoch_start = ctx.obj.get_vault_current_epoch_start(vault_address) ⋮---- next_epoch = current_epoch + 1 next_epoch_end = current_epoch_start + 2 * epoch_duration ⋮---- """Claim a withdrawal for some epoch at the vault. \b VAULT_ADDRESS - an address of the vault to claim from EPOCH - an epoch number to claim a withdrawal for RECIPIENT - an address that will receive the tokens (default: address of the signer) """ ⋮---- recipient = ctx.obj.normalize_address(recipient) ⋮---- recipient = signer ⋮---- withdrawals_wei = ctx.obj.get_withdrawals(vault_address, epoch, signer) ⋮---- withdrawals_claimed = ctx.obj.get_withdrawals_claimed(vault_address, epoch, signer) ````