{ "abi": [ { "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "avsDirectory", "inputs": [], "outputs": [ { "name": "", "type": "address", "internalType": "contract IAVSDirectory" } ], "stateMutability": "view" }, { "type": "function", "name": "delegationManager", "inputs": [], "outputs": [ { "name": "", "type": "address", "internalType": "contract IDelegationManager" } ], "stateMutability": "view" }, { "type": "function", "name": "deregisterOperator", "inputs": [ { "name": "operator", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getOperatorRestakedStrategies", "inputs": [ { "name": "operator", "type": "address", "internalType": "address" } ], "outputs": [ { "name": "", "type": "address[]", "internalType": "address[]" } ], "stateMutability": "view" }, { "type": "function", "name": "getOperatorShare", "inputs": [ { "name": "operator", "type": "address", "internalType": "address" } ], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getRestakeableStrategies", "inputs": [], "outputs": [ { "name": "", "type": "address[]", "internalType": "address[]" } ], "stateMutability": "view" }, { "type": "function", "name": "initialize", "inputs": [ { "name": "_nodeRegistryAddress", "type": "address", "internalType": "address" }, { "name": "_strategyAddress", "type": "address", "internalType": "address" }, { "name": "_avsDirectory", "type": "address", "internalType": "address" }, { "name": "_delegationManager", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "nodeRegistryAddress", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "owner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "proxiableUUID", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "registerOperator", "inputs": [ { "name": "operator", "type": "address", "internalType": "address" }, { "name": "operatorSignature", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry", "components": [ { "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" } ] } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "renounceOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "slashDelegationStaking", "inputs": [ { "name": "operator", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "strategy", "inputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "transferOwnership", "inputs": [ { "name": "newOwner", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "updateAVSMetadataURI", "inputs": [ { "name": "_metadataURI", "type": "string", "internalType": "string" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "upgradeTo", "inputs": [ { "name": "newImplementation", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "upgradeToAndCall", "inputs": [ { "name": "newImplementation", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" } ], "outputs": [], "stateMutability": "payable" }, { "type": "event", "name": "AdminChanged", "inputs": [ { "name": "previousAdmin", "type": "address", "indexed": false, "internalType": "address" }, { "name": "newAdmin", "type": "address", "indexed": false, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "BeaconUpgraded", "inputs": [ { "name": "beacon", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "Initialized", "inputs": [ { "name": "version", "type": "uint8", "indexed": false, "internalType": "uint8" } ], "anonymous": false }, { "type": "event", "name": "OperatorSlashed", "inputs": [ { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "stakingPenalty", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "OwnershipTransferred", "inputs": [ { "name": "previousOwner", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newOwner", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "Upgraded", "inputs": [ { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "error", "name": "SenderNotNodeRegistry", "inputs": [] } ], "bytecode": { "object": "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516116d561011860003960008181610565015281816105ae0152818161064d0152818161068d015261072001526116d56000f3fe6080604052600436106101095760003560e01c8063a98fb35511610095578063e481af9d11610064578063e481af9d146102c7578063ea4d3c9b146102dc578063f2fde38b146102fc578063f8c8765e1461031c578063fec10aa91461033c57600080fd5b8063a98fb35514610247578063aa2bcdbd14610267578063bc88d7e414610287578063d8cf98ca146102a757600080fd5b806352d1902d116100dc57806352d1902d146101995780636b3aa72e146101bc578063715018a6146101f45780637b4ffbbd146102095780638da5cb5b1461022957600080fd5b8063295571371461010e57806333cfb7b7146101305780633659cfe6146101665780634f1ef28614610186575b600080fd5b34801561011a57600080fd5b5061012e610129366004611168565b61035c565b005b34801561013c57600080fd5b5061015061014b366004611192565b6103ce565b60405161015d91906111ad565b60405180910390f35b34801561017257600080fd5b5061012e610181366004611192565b61055b565b61012e6101943660046112a6565b610643565b3480156101a557600080fd5b506101ae610713565b60405190815260200161015d565b3480156101c857600080fd5b5060ca546101dc906001600160a01b031681565b6040516001600160a01b03909116815260200161015d565b34801561020057600080fd5b5061012e6107c6565b34801561021557600080fd5b506101ae610224366004611192565b6107da565b34801561023557600080fd5b506097546001600160a01b03166101dc565b34801561025357600080fd5b5061012e6102623660046112f4565b610886565b34801561027357600080fd5b5061012e61028236600461133d565b6108f3565b34801561029357600080fd5b506101dc6102a23660046113e7565b610986565b3480156102b357600080fd5b5061012e6102c2366004611192565b6109b0565b3480156102d357600080fd5b50610150610a0d565b3480156102e857600080fd5b5060cb546101dc906001600160a01b031681565b34801561030857600080fd5b5061012e610317366004611192565b610a6f565b34801561032857600080fd5b5061012e610337366004611400565b610ae5565b34801561034857600080fd5b5060c9546101dc906001600160a01b031681565b60c9546001600160a01b0316331461038757604051630e2c730d60e41b815260040160405180910390fd5b816001600160a01b03167fa005d3b8f5c8149659f2afc06ed99732d5891377a370a723669418ca1ca29ced826040516103c291815260200190565b60405180910390a25050565b60cc5460609060009067ffffffffffffffff8111156103ef576103ef6111fa565b604051908082528060200260200182016040528015610418578160200160208202803683370190505b5090506000805b60cc548110156105525760cb5460cc80546000926001600160a01b03169163778e55f3918991908690811061045657610456611454565b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d1919061146a565b11156105405760cc81815481106104ea576104ea611454565b9060005260206000200160009054906101000a90046001600160a01b031683838151811061051a5761051a611454565b6001600160a01b03909216602092830291909101909101528161053c81611483565b9250505b8061054a81611483565b91505061041f565b50909392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105ac5760405162461bcd60e51b81526004016105a3906114aa565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105f5600080516020611659833981519152546001600160a01b031690565b6001600160a01b03161461061b5760405162461bcd60e51b81526004016105a3906114f6565b61062481610c73565b6040805160008082526020820190925261064091839190610c7b565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361068b5760405162461bcd60e51b81526004016105a3906114aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106d4600080516020611659833981519152546001600160a01b031690565b6001600160a01b0316146106fa5760405162461bcd60e51b81526004016105a3906114f6565b61070382610c73565b61070f82826001610c7b565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107b35760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105a3565b5060008051602061165983398151915290565b6107ce610deb565b6107d86000610e45565b565b60cb5460cc80546000926001600160a01b03169163778e55f391859190859061080557610805611454565b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610880919061146a565b92915050565b61088e610deb565b60ca5460405163a98fb35560e01b81526001600160a01b039091169063a98fb355906108be908490600401611592565b600060405180830381600087803b1580156108d857600080fd5b505af11580156108ec573d6000803e3d6000fd5b5050505050565b60c9546001600160a01b0316331461091e57604051630e2c730d60e41b815260040160405180910390fd5b60ca54604051639926ee7d60e01b81526001600160a01b0390911690639926ee7d9061095090859085906004016115a5565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b505050505050565b60cc818154811061099657600080fd5b6000918252602090912001546001600160a01b0316905081565b60c9546001600160a01b031633146109db57604051630e2c730d60e41b815260040160405180910390fd5b60ca546040516351b27a6d60e11b81526001600160a01b0383811660048301529091169063a364f4da906024016108be565b606060cc805480602002602001604051908101604052809291908181526020018280548015610a6557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a47575b5050505050905090565b610a77610deb565b6001600160a01b038116610adc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a3565b61064081610e45565b600054610100900460ff1615808015610b055750600054600160ff909116105b80610b1f5750303b158015610b1f575060005460ff166001145b610b825760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105a3565b6000805460ff191660011790558015610ba5576000805461ff0019166101001790555b60c980546001600160a01b038088166001600160a01b03199283161790925560ca805486841690831617905560cb805485841690831617905560cc80546001810182556000919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe01805492871692909116919091179055610c27610e97565b80156108ec576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b610640610deb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610cb357610cae83610ec6565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d0d575060408051601f3d908101601f19168201909252610d0a9181019061146a565b60015b610d705760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105a3565b6000805160206116598339815191528114610ddf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105a3565b50610cae838383610f62565b6097546001600160a01b031633146107d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a3565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ebe5760405162461bcd60e51b81526004016105a3906115f1565b6107d8610f8d565b6001600160a01b0381163b610f335760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105a3565b60008051602061165983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f6b83610fbd565b600082511180610f785750805b15610cae57610f878383610ffd565b50505050565b600054610100900460ff16610fb45760405162461bcd60e51b81526004016105a3906115f1565b6107d833610e45565b610fc681610ec6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611022838360405180606001604052806027815260200161167960279139611029565b9392505050565b6060600080856001600160a01b031685604051611046919061163c565b600060405180830381855af49150503d8060008114611081576040519150601f19603f3d011682016040523d82523d6000602084013e611086565b606091505b5091509150611097868383876110a1565b9695505050505050565b60608315611110578251600003611109576001600160a01b0385163b6111095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105a3565b508161111a565b61111a8383611122565b949350505050565b8151156111325781518083602001fd5b8060405162461bcd60e51b81526004016105a39190611592565b80356001600160a01b038116811461116357600080fd5b919050565b6000806040838503121561117b57600080fd5b6111848361114c565b946020939093013593505050565b6000602082840312156111a457600080fd5b6110228261114c565b6020808252825182820181905260009190848201906040850190845b818110156111ee5783516001600160a01b0316835292840192918401916001016111c9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561122b5761122b6111fa565b604051601f8501601f19908116603f01168101908282118183101715611253576112536111fa565b8160405280935085815286868601111561126c57600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261129757600080fd5b61102283833560208501611210565b600080604083850312156112b957600080fd5b6112c28361114c565b9150602083013567ffffffffffffffff8111156112de57600080fd5b6112ea85828601611286565b9150509250929050565b60006020828403121561130657600080fd5b813567ffffffffffffffff81111561131d57600080fd5b8201601f8101841361132e57600080fd5b61111a84823560208401611210565b6000806040838503121561135057600080fd5b6113598361114c565b9150602083013567ffffffffffffffff8082111561137657600080fd5b908401906060828703121561138a57600080fd5b6040516060810181811083821117156113a5576113a56111fa565b6040528235828111156113b757600080fd5b6113c388828601611286565b82525060208301356020820152604083013560408201528093505050509250929050565b6000602082840312156113f957600080fd5b5035919050565b6000806000806080858703121561141657600080fd5b61141f8561114c565b935061142d6020860161114c565b925061143b6040860161114c565b91506114496060860161114c565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561147c57600080fd5b5051919050565b6000600182016114a357634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60005b8381101561155d578181015183820152602001611545565b50506000910152565b6000815180845261157e816020860160208601611542565b601f01601f19169290920160200192915050565b6020815260006110226020830184611566565b6001600160a01b03831681526040602082015260008251606060408401526115d060a0840182611566565b90506020840151606084015260408401516080840152809150509392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161164e818460208701611542565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208de3979ac38f018d750d33b267bb716046c4f0803f8b3bdcb86b0e51ba338cc864736f6c63430008120033", "sourceMap": "500:3924:95:-:0;;;1198:4:57;1155:48;;1271:53:95;;;;;;;;;-1:-1:-1;1295:22:95;:20;:22::i;:::-;500:3924;;5939:280:56;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:56;;216:2:135;5998:66:56;;;198:21:135;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:135;;;338:37;392:19;;5998:66:56;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:56;6140:15;6125:30;;;;;;6174:28;;564:36:135;;;6174:28:56;;552:2:135;537:18;6174:28:56;;;;;;;6074:139;5939:280::o;422:184:135:-;500:3924:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x6080604052600436106101095760003560e01c8063a98fb35511610095578063e481af9d11610064578063e481af9d146102c7578063ea4d3c9b146102dc578063f2fde38b146102fc578063f8c8765e1461031c578063fec10aa91461033c57600080fd5b8063a98fb35514610247578063aa2bcdbd14610267578063bc88d7e414610287578063d8cf98ca146102a757600080fd5b806352d1902d116100dc57806352d1902d146101995780636b3aa72e146101bc578063715018a6146101f45780637b4ffbbd146102095780638da5cb5b1461022957600080fd5b8063295571371461010e57806333cfb7b7146101305780633659cfe6146101665780634f1ef28614610186575b600080fd5b34801561011a57600080fd5b5061012e610129366004611168565b61035c565b005b34801561013c57600080fd5b5061015061014b366004611192565b6103ce565b60405161015d91906111ad565b60405180910390f35b34801561017257600080fd5b5061012e610181366004611192565b61055b565b61012e6101943660046112a6565b610643565b3480156101a557600080fd5b506101ae610713565b60405190815260200161015d565b3480156101c857600080fd5b5060ca546101dc906001600160a01b031681565b6040516001600160a01b03909116815260200161015d565b34801561020057600080fd5b5061012e6107c6565b34801561021557600080fd5b506101ae610224366004611192565b6107da565b34801561023557600080fd5b506097546001600160a01b03166101dc565b34801561025357600080fd5b5061012e6102623660046112f4565b610886565b34801561027357600080fd5b5061012e61028236600461133d565b6108f3565b34801561029357600080fd5b506101dc6102a23660046113e7565b610986565b3480156102b357600080fd5b5061012e6102c2366004611192565b6109b0565b3480156102d357600080fd5b50610150610a0d565b3480156102e857600080fd5b5060cb546101dc906001600160a01b031681565b34801561030857600080fd5b5061012e610317366004611192565b610a6f565b34801561032857600080fd5b5061012e610337366004611400565b610ae5565b34801561034857600080fd5b5060c9546101dc906001600160a01b031681565b60c9546001600160a01b0316331461038757604051630e2c730d60e41b815260040160405180910390fd5b816001600160a01b03167fa005d3b8f5c8149659f2afc06ed99732d5891377a370a723669418ca1ca29ced826040516103c291815260200190565b60405180910390a25050565b60cc5460609060009067ffffffffffffffff8111156103ef576103ef6111fa565b604051908082528060200260200182016040528015610418578160200160208202803683370190505b5090506000805b60cc548110156105525760cb5460cc80546000926001600160a01b03169163778e55f3918991908690811061045657610456611454565b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d1919061146a565b11156105405760cc81815481106104ea576104ea611454565b9060005260206000200160009054906101000a90046001600160a01b031683838151811061051a5761051a611454565b6001600160a01b03909216602092830291909101909101528161053c81611483565b9250505b8061054a81611483565b91505061041f565b50909392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105ac5760405162461bcd60e51b81526004016105a3906114aa565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105f5600080516020611659833981519152546001600160a01b031690565b6001600160a01b03161461061b5760405162461bcd60e51b81526004016105a3906114f6565b61062481610c73565b6040805160008082526020820190925261064091839190610c7b565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361068b5760405162461bcd60e51b81526004016105a3906114aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106d4600080516020611659833981519152546001600160a01b031690565b6001600160a01b0316146106fa5760405162461bcd60e51b81526004016105a3906114f6565b61070382610c73565b61070f82826001610c7b565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107b35760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105a3565b5060008051602061165983398151915290565b6107ce610deb565b6107d86000610e45565b565b60cb5460cc80546000926001600160a01b03169163778e55f391859190859061080557610805611454565b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610880919061146a565b92915050565b61088e610deb565b60ca5460405163a98fb35560e01b81526001600160a01b039091169063a98fb355906108be908490600401611592565b600060405180830381600087803b1580156108d857600080fd5b505af11580156108ec573d6000803e3d6000fd5b5050505050565b60c9546001600160a01b0316331461091e57604051630e2c730d60e41b815260040160405180910390fd5b60ca54604051639926ee7d60e01b81526001600160a01b0390911690639926ee7d9061095090859085906004016115a5565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b505050505050565b60cc818154811061099657600080fd5b6000918252602090912001546001600160a01b0316905081565b60c9546001600160a01b031633146109db57604051630e2c730d60e41b815260040160405180910390fd5b60ca546040516351b27a6d60e11b81526001600160a01b0383811660048301529091169063a364f4da906024016108be565b606060cc805480602002602001604051908101604052809291908181526020018280548015610a6557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a47575b5050505050905090565b610a77610deb565b6001600160a01b038116610adc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a3565b61064081610e45565b600054610100900460ff1615808015610b055750600054600160ff909116105b80610b1f5750303b158015610b1f575060005460ff166001145b610b825760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105a3565b6000805460ff191660011790558015610ba5576000805461ff0019166101001790555b60c980546001600160a01b038088166001600160a01b03199283161790925560ca805486841690831617905560cb805485841690831617905560cc80546001810182556000919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe01805492871692909116919091179055610c27610e97565b80156108ec576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b610640610deb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610cb357610cae83610ec6565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d0d575060408051601f3d908101601f19168201909252610d0a9181019061146a565b60015b610d705760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105a3565b6000805160206116598339815191528114610ddf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105a3565b50610cae838383610f62565b6097546001600160a01b031633146107d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a3565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610ebe5760405162461bcd60e51b81526004016105a3906115f1565b6107d8610f8d565b6001600160a01b0381163b610f335760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105a3565b60008051602061165983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f6b83610fbd565b600082511180610f785750805b15610cae57610f878383610ffd565b50505050565b600054610100900460ff16610fb45760405162461bcd60e51b81526004016105a3906115f1565b6107d833610e45565b610fc681610ec6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611022838360405180606001604052806027815260200161167960279139611029565b9392505050565b6060600080856001600160a01b031685604051611046919061163c565b600060405180830381855af49150503d8060008114611081576040519150601f19603f3d011682016040523d82523d6000602084013e611086565b606091505b5091509150611097868383876110a1565b9695505050505050565b60608315611110578251600003611109576001600160a01b0385163b6111095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105a3565b508161111a565b61111a8383611122565b949350505050565b8151156111325781518083602001fd5b8060405162461bcd60e51b81526004016105a39190611592565b80356001600160a01b038116811461116357600080fd5b919050565b6000806040838503121561117b57600080fd5b6111848361114c565b946020939093013593505050565b6000602082840312156111a457600080fd5b6110228261114c565b6020808252825182820181905260009190848201906040850190845b818110156111ee5783516001600160a01b0316835292840192918401916001016111c9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561122b5761122b6111fa565b604051601f8501601f19908116603f01168101908282118183101715611253576112536111fa565b8160405280935085815286868601111561126c57600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261129757600080fd5b61102283833560208501611210565b600080604083850312156112b957600080fd5b6112c28361114c565b9150602083013567ffffffffffffffff8111156112de57600080fd5b6112ea85828601611286565b9150509250929050565b60006020828403121561130657600080fd5b813567ffffffffffffffff81111561131d57600080fd5b8201601f8101841361132e57600080fd5b61111a84823560208401611210565b6000806040838503121561135057600080fd5b6113598361114c565b9150602083013567ffffffffffffffff8082111561137657600080fd5b908401906060828703121561138a57600080fd5b6040516060810181811083821117156113a5576113a56111fa565b6040528235828111156113b757600080fd5b6113c388828601611286565b82525060208301356020820152604083013560408201528093505050509250929050565b6000602082840312156113f957600080fd5b5035919050565b6000806000806080858703121561141657600080fd5b61141f8561114c565b935061142d6020860161114c565b925061143b6040860161114c565b91506114496060860161114c565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561147c57600080fd5b5051919050565b6000600182016114a357634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60005b8381101561155d578181015183820152602001611545565b50506000910152565b6000815180845261157e816020860160208601611542565b601f01601f19169290920160200192915050565b6020815260006110226020830184611566565b6001600160a01b03831681526040602082015260008251606060408401526115d060a0840182611566565b90506020840151606084015260408401516080840152809150509392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161164e818460208701611542565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208de3979ac38f018d750d33b267bb716046c4f0803f8b3bdcb86b0e51ba338cc864736f6c63430008120033", "sourceMap": "500:3924:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2502:226;;;;;;;;;;-1:-1:-1;2502:226:95;;;;;:::i;:::-;;:::i;:::-;;3857:506;;;;;;;;;;-1:-1:-1;3857:506:95;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3408:195:57;;;;;;;;;;-1:-1:-1;3408:195:57;;;;;:::i;:::-;;:::i;3922:220::-;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;:::-;;;2889:25:135;;;2877:2;2862:18;3027:131:57;2743:177:135;675:33:95;;;;;;;;;;-1:-1:-1;675:33:95;;;;-1:-1:-1;;;;;675:33:95;;;;;;-1:-1:-1;;;;;3112:55:135;;;3094:74;;3082:2;3067:18;675:33:95;2925:249:135;2085:101:51;;;;;;;;;;;;;:::i;2789:155:95:-;;;;;;;;;;-1:-1:-1;2789:155:95;;;;;:::i;:::-;;:::i;1462:85:51:-;;;;;;;;;;-1:-1:-1;1534:6:51;;-1:-1:-1;;;;;1534:6:51;1462:85;;1889:147:95;;;;;;;;;;-1:-1:-1;1889:147:95;;;;;:::i;:::-;;:::i;2114:239::-;;;;;;;;;;-1:-1:-1;2114:239:95;;;;;:::i;:::-;;:::i;763:25::-;;;;;;;;;;-1:-1:-1;763:25:95;;;;;:::i;:::-;;:::i;2359:137::-;;;;;;;;;;-1:-1:-1;2359:137:95;;;;;:::i;:::-;;:::i;3264:109::-;;;;;;;;;;;;;:::i;714:43::-;;;;;;;;;;-1:-1:-1;714:43:95;;;;-1:-1:-1;;;;;714:43:95;;;2335:198:51;;;;;;;;;;-1:-1:-1;2335:198:51;;;;;:::i;:::-;;:::i;1330:432:95:-;;;;;;;;;;-1:-1:-1;1330:432:95;;;;;:::i;:::-;;:::i;635:34::-;;;;;;;;;;-1:-1:-1;635:34:95;;;;-1:-1:-1;;;;;635:34:95;;;2502:226;973:19;;-1:-1:-1;;;;;973:19:95;959:10;:33;955:94;;1015:23;;-1:-1:-1;;;1015:23:95;;;;;;;;;;;955:94;2704:8:::1;-1:-1:-1::0;;;;;2688:33:95::1;;2714:6;2688:33;;;;2889:25:135::0;;2877:2;2862:18;;2743:177;2688:33:95::1;;;;;;;;2502:226:::0;;:::o;3857:506::-;4017:8;:15;3937:16;;3965:35;;4003:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4003:30:95;;3965:68;;4043:13;4075:9;4070:252;4094:8;:15;4090:19;;4070:252;;;4153:17;;4197:8;:11;;4212:1;;-1:-1:-1;;;;;4153:17:95;;4134:52;;4187:8;;4197;4206:1;;4197:11;;;;;;:::i;:::-;;;;;;;;;;;4134:75;;;;;;-1:-1:-1;;;;;;4134:75:95;;;-1:-1:-1;;;;;6261:15:135;;;4134:75:95;;;6243:34:135;4197:11:95;;6293:18:135;;;6286:43;6155:18;;4134:75:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;4130:182;;;4261:8;4270:1;4261:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4261:11:95;4233:18;4252:5;4233:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4233:39:95;;;:25;;;;;;;;;;;:39;4290:7;;;;:::i;:::-;;;;4130:182;4111:3;;;;:::i;:::-;;;;4070:252;;;-1:-1:-1;4338:18:95;;3857:506;-1:-1:-1;;;3857:506:95:o;3408:195:57:-;-1:-1:-1;;;;;1764:6:57;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:57;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:57;:20;-1:-1:-1;;;;;;;;;;;1557:65:54;-1:-1:-1;;;;;1557:65:54;;1478:151;1837:20:57;-1:-1:-1;;;;;1837:30:57;;1829:87;;;;-1:-1:-1;;;1829:87:57;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3922:220::-;-1:-1:-1;;;;;1764:6:57;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:57;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:57;:20;-1:-1:-1;;;;;;;;;;;1557:65:54;-1:-1:-1;;;;;1557:65:54;;1478:151;1837:20:57;-1:-1:-1;;;;;1837:30:57;;1829:87;;;;-1:-1:-1;;;1829:87:57;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;:::-;3922:220:::0;;:::o;3027:131::-;3105:7;2190:4;-1:-1:-1;;;;;2199:6:57;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:57;;7794:2:135;2174:92:57;;;7776:21:135;7833:2;7813:18;;;7806:30;7872:34;7852:18;;;7845:62;7943:26;7923:18;;;7916:54;7987:19;;2174:92:57;7592:420:135;2174:92:57;-1:-1:-1;;;;;;;;;;;;3027:131:57;:::o;2085:101:51:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2789:155:95:-;2882:17;;2925:8;:11;;2856:7;;-1:-1:-1;;;;;2882:17:95;;:32;;2915:8;;2925;2856:7;;2925:11;;;;:::i;:::-;;;;;;;;;;;2882:55;;;;;;-1:-1:-1;;;;;;2882:55:95;;;-1:-1:-1;;;;;6261:15:135;;;2882:55:95;;;6243:34:135;2925:11:95;;6293:18:135;;;6286:43;6155:18;;2882:55:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2875:62;2789:155;-1:-1:-1;;2789:155:95:o;1889:147::-;1355:13:51;:11;:13::i;:::-;1982:12:95::1;::::0;:47:::1;::::0;-1:-1:-1;;;1982:47:95;;-1:-1:-1;;;;;1982:12:95;;::::1;::::0;:33:::1;::::0;:47:::1;::::0;2016:12;;1982:47:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1889:147:::0;:::o;2114:239::-;973:19;;-1:-1:-1;;;;;973:19:95;959:10;:33;955:94;;1015:23;;-1:-1:-1;;;1015:23:95;;;;;;;;;;;955:94;2283:12:::1;::::0;:63:::1;::::0;-1:-1:-1;;;2283:63:95;;-1:-1:-1;;;;;2283:12:95;;::::1;::::0;:34:::1;::::0;:63:::1;::::0;2318:8;;2328:17;;2283:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2114:239:::0;;:::o;763:25::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:25:95;;-1:-1:-1;763:25:95;:::o;2359:137::-;973:19;;-1:-1:-1;;;;;973:19:95;959:10;:33;955:94;;1015:23;;-1:-1:-1;;;1015:23:95;;;;;;;;;;;955:94;2441:12:::1;::::0;:48:::1;::::0;-1:-1:-1;;;2441:48:95;;-1:-1:-1;;;;;3112:55:135;;;2441:48:95::1;::::0;::::1;3094:74:135::0;2441:12:95;;::::1;::::0;:38:::1;::::0;3067:18:135;;2441:48:95::1;2925:249:135::0;3264:109:95;3323:16;3358:8;3351:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3351:15:95;;;;;;;;;;;;;;;;;;;;;;;3264:109;:::o;2335:198:51:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:51;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:51;;9630:2:135;2415:73:51::1;::::0;::::1;9612:21:135::0;9669:2;9649:18;;;9642:30;9708:34;9688:18;;;9681:62;-1:-1:-1;;;9759:18:135;;;9752:36;9805:19;;2415:73:51::1;9428:402:135::0;2415:73:51::1;2498:28;2517:8;2498:18;:28::i;1330:432:95:-:0;3279:19:56;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:56;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:56;1713:19:58;:23;;;3387:66:56;;-1:-1:-1;3436:12:56;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:56;;10037:2:135;3325:201:56;;;10019:21:135;10076:2;10056:18;;;10049:30;10115:34;10095:18;;;10088:62;-1:-1:-1;;;10166:18:135;;;10159:44;10220:19;;3325:201:56;9835:410:135;3325:201:56;3536:12;:16;;-1:-1:-1;;3536:16:56;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:56;;;;;3562:65;1524:19:95::1;:42:::0;;-1:-1:-1;;;;;1524:42:95;;::::1;-1:-1:-1::0;;;;;;1524:42:95;;::::1;;::::0;;;1576:12:::1;:43:::0;;;;::::1;::::0;;::::1;;::::0;;1629:17:::1;:58:::0;;;;::::1;::::0;;::::1;;::::0;;1697:8:::1;:31:::0;;1524:42;1697:31;::::1;::::0;;1524:19:::1;1697:31:::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1739:16:::1;:14;:16::i;:::-;3651:14:56::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:56;;;3721:14;;-1:-1:-1;10402:36:135;;3721:14:56;;10390:2:135;10375:18;3721:14:56;;;;;;;3269:483;1330:432:95;;;;:::o;1817:66::-;1355:13:51;:11;:13::i;2841:944:54:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;:::-;2841:944;;;:::o;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:54;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:54;;;;;;;;-1:-1:-1;;3404:63:54;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:54;;10840:2:135;3631:56:54;;;10822:21:135;10879:2;10859:18;;;10852:30;10918:34;10898:18;;;10891:62;-1:-1:-1;;;10969:18:135;;;10962:44;11023:19;;3631:56:54;10638:410:135;3400:302:54;-1:-1:-1;;;;;;;;;;;3517:28:54;;3509:82;;;;-1:-1:-1;;;3509:82:54;;11255:2:135;3509:82:54;;;11237:21:135;11294:2;11274:18;;;11267:30;11333:34;11313:18;;;11306:62;-1:-1:-1;;;11384:18:135;;;11377:39;11433:19;;3509:82:54;11053:405:135;3509:82:54;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;1620:130:51:-;1534:6;;-1:-1:-1;;;;;1534:6:51;965:10:59;1683:23:51;1675:68;;;;-1:-1:-1;;;1675:68:51;;11665:2:135;1675:68:51;;;11647:21:135;;;11684:18;;;11677:30;11743:34;11723:18;;;11716:62;11795:18;;1675:68:51;11463:356:135;2687:187:51;2779:6;;;-1:-1:-1;;;;;2795:17:51;;;-1:-1:-1;;;;;;2795:17:51;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1024:95::-;5374:13:56;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:56;;;;;;;:::i;:::-;1086:26:51::1;:24;:26::i;1720:281:54:-:0;-1:-1:-1;;;;;1713:19:58;;;1793:106:54;;;;-1:-1:-1;;;1793:106:54;;12438:2:135;1793:106:54;;;12420:21:135;12477:2;12457:18;;;12450:30;12516:34;12496:18;;;12489:62;-1:-1:-1;;;12567:18:135;;;12560:43;12620:19;;1793:106:54;12236:409:135;1793:106:54;-1:-1:-1;;;;;;;;;;;1909:85:54;;-1:-1:-1;;;;;;1909:85:54;-1:-1:-1;;;;;1909:85:54;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;:::-;;2393:276;;;:::o;1125:111:51:-;5374:13:56;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:56;;;;;;;:::i;:::-;1197:32:51::1;965:10:59::0;1197:18:51::1;:32::i;2107:152:54:-:0;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:54;;;;;;;;2107:152;:::o;6685:198:58:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6792:84;6685:198;-1:-1:-1;;;6685:198:58:o;7069:325::-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:58;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:58:o;7682:628::-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:58;;;8124:60;;;;-1:-1:-1;;;8124:60:58;;13144:2:135;8124:60:58;;;13126:21:135;13183:2;13163:18;;;13156:30;13222:31;13202:18;;;13195:59;13271:18;;8124:60:58;12942:353:135;8124:60:58;-1:-1:-1;8219:10:58;8212:17;;7886:418;8260:33;8268:10;8280:12;8260:7;:33::i;:::-;7682:628;;;;;;:::o;8832:540::-;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:58;;;;;;;;:::i;14:196:135:-;82:20;;-1:-1:-1;;;;;131:54:135;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:135:o;474:186::-;533:6;586:2;574:9;565:7;561:23;557:32;554:52;;;602:1;599;592:12;554:52;625:29;644:9;625:29;:::i;665:681::-;836:2;888:21;;;958:13;;861:18;;;980:22;;;807:4;;836:2;1059:15;;;;1033:2;1018:18;;;807:4;1102:218;1116:6;1113:1;1110:13;1102:218;;;1181:13;;-1:-1:-1;;;;;1177:62:135;1165:75;;1295:15;;;;1260:12;;;;1138:1;1131:9;1102:218;;;-1:-1:-1;1337:3:135;;665:681;-1:-1:-1;;;;;;665:681:135:o;1351:127::-;1412:10;1407:3;1403:20;1400:1;1393:31;1443:4;1440:1;1433:15;1467:4;1464:1;1457:15;1483:631;1547:5;1577:18;1618:2;1610:6;1607:14;1604:40;;;1624:18;;:::i;:::-;1699:2;1693:9;1667:2;1753:15;;-1:-1:-1;;1749:24:135;;;1775:2;1745:33;1741:42;1729:55;;;1799:18;;;1819:22;;;1796:46;1793:72;;;1845:18;;:::i;:::-;1885:10;1881:2;1874:22;1914:6;1905:15;;1944:6;1936;1929:22;1984:3;1975:6;1970:3;1966:16;1963:25;1960:45;;;2001:1;1998;1991:12;1960:45;2051:6;2046:3;2039:4;2031:6;2027:17;2014:44;2106:1;2099:4;2090:6;2082;2078:19;2074:30;2067:41;;;;1483:631;;;;;:::o;2119:220::-;2161:5;2214:3;2207:4;2199:6;2195:17;2191:27;2181:55;;2232:1;2229;2222:12;2181:55;2254:79;2329:3;2320:6;2307:20;2300:4;2292:6;2288:17;2254:79;:::i;2344:394::-;2421:6;2429;2482:2;2470:9;2461:7;2457:23;2453:32;2450:52;;;2498:1;2495;2488:12;2450:52;2521:29;2540:9;2521:29;:::i;:::-;2511:39;;2601:2;2590:9;2586:18;2573:32;2628:18;2620:6;2617:30;2614:50;;;2660:1;2657;2650:12;2614:50;2683:49;2724:7;2715:6;2704:9;2700:22;2683:49;:::i;:::-;2673:59;;;2344:394;;;;;:::o;3592:450::-;3661:6;3714:2;3702:9;3693:7;3689:23;3685:32;3682:52;;;3730:1;3727;3720:12;3682:52;3770:9;3757:23;3803:18;3795:6;3792:30;3789:50;;;3835:1;3832;3825:12;3789:50;3858:22;;3911:4;3903:13;;3899:27;-1:-1:-1;3889:55:135;;3940:1;3937;3930:12;3889:55;3963:73;4028:7;4023:2;4010:16;4005:2;4001;3997:11;3963:73;:::i;4047:966::-;4160:6;4168;4221:2;4209:9;4200:7;4196:23;4192:32;4189:52;;;4237:1;4234;4227:12;4189:52;4260:29;4279:9;4260:29;:::i;:::-;4250:39;;4340:2;4329:9;4325:18;4312:32;4363:18;4404:2;4396:6;4393:14;4390:34;;;4420:1;4417;4410:12;4390:34;4443:22;;;;4499:4;4481:16;;;4477:27;4474:47;;;4517:1;4514;4507:12;4474:47;4550:2;4544:9;4592:4;4584:6;4580:17;4647:6;4635:10;4632:22;4627:2;4615:10;4612:18;4609:46;4606:72;;;4658:18;;:::i;:::-;4694:2;4687:22;4734:16;;4762;;;4759:36;;;4791:1;4788;4781:12;4759:36;4819:44;4855:7;4844:8;4840:2;4836:17;4819:44;:::i;:::-;4811:6;4804:60;;4918:2;4914;4910:11;4897:25;4892:2;4884:6;4880:15;4873:50;4977:2;4973;4969:11;4956:25;4951:2;4943:6;4939:15;4932:50;5001:6;4991:16;;;;;4047:966;;;;;:::o;5018:180::-;5077:6;5130:2;5118:9;5109:7;5105:23;5101:32;5098:52;;;5146:1;5143;5136:12;5098:52;-1:-1:-1;5169:23:135;;5018:180;-1:-1:-1;5018:180:135:o;5462:409::-;5548:6;5556;5564;5572;5625:3;5613:9;5604:7;5600:23;5596:33;5593:53;;;5642:1;5639;5632:12;5593:53;5665:29;5684:9;5665:29;:::i;:::-;5655:39;;5713:38;5747:2;5736:9;5732:18;5713:38;:::i;:::-;5703:48;;5770:38;5804:2;5793:9;5789:18;5770:38;:::i;:::-;5760:48;;5827:38;5861:2;5850:9;5846:18;5827:38;:::i;:::-;5817:48;;5462:409;;;;;;;:::o;5876:127::-;5937:10;5932:3;5928:20;5925:1;5918:31;5968:4;5965:1;5958:15;5992:4;5989:1;5982:15;6340:184;6410:6;6463:2;6451:9;6442:7;6438:23;6434:32;6431:52;;;6479:1;6476;6469:12;6431:52;-1:-1:-1;6502:16:135;;6340:184;-1:-1:-1;6340:184:135:o;6529:232::-;6568:3;6589:17;;;6586:140;;6648:10;6643:3;6639:20;6636:1;6629:31;6683:4;6680:1;6673:15;6711:4;6708:1;6701:15;6586:140;-1:-1:-1;6753:1:135;6742:13;;6529:232::o;6766:408::-;6968:2;6950:21;;;7007:2;6987:18;;;6980:30;7046:34;7041:2;7026:18;;7019:62;-1:-1:-1;;;7112:2:135;7097:18;;7090:42;7164:3;7149:19;;6766:408::o;7179:::-;7381:2;7363:21;;;7420:2;7400:18;;;7393:30;7459:34;7454:2;7439:18;;7432:62;-1:-1:-1;;;7525:2:135;7510:18;;7503:42;7577:3;7562:19;;7179:408::o;8017:250::-;8102:1;8112:113;8126:6;8123:1;8120:13;8112:113;;;8202:11;;;8196:18;8183:11;;;8176:39;8148:2;8141:10;8112:113;;;-1:-1:-1;;8259:1:135;8241:16;;8234:27;8017:250::o;8272:271::-;8314:3;8352:5;8346:12;8379:6;8374:3;8367:19;8395:76;8464:6;8457:4;8452:3;8448:14;8441:4;8434:5;8430:16;8395:76;:::i;:::-;8525:2;8504:15;-1:-1:-1;;8500:29:135;8491:39;;;;8532:4;8487:50;;8272:271;-1:-1:-1;;8272:271:135:o;8548:220::-;8697:2;8686:9;8679:21;8660:4;8717:45;8758:2;8747:9;8743:18;8735:6;8717:45;:::i;8773:650::-;-1:-1:-1;;;;;9024:6:135;9020:55;9009:9;9002:74;9112:2;9107;9096:9;9092:18;9085:30;8983:4;9150:6;9144:13;9193:4;9188:2;9177:9;9173:18;9166:32;9221:52;9268:3;9257:9;9253:19;9239:12;9221:52;:::i;:::-;9207:66;;9329:2;9321:6;9317:15;9311:22;9304:4;9293:9;9289:20;9282:52;9389:2;9381:6;9377:15;9371:22;9365:3;9354:9;9350:19;9343:51;9411:6;9403:14;;;8773:650;;;;;:::o;11824:407::-;12026:2;12008:21;;;12065:2;12045:18;;;12038:30;12104:34;12099:2;12084:18;;12077:62;-1:-1:-1;;;12170:2:135;12155:18;;12148:41;12221:3;12206:19;;11824:407::o;12650:287::-;12779:3;12817:6;12811:13;12833:66;12892:6;12887:3;12880:4;12872:6;12868:17;12833:66;:::i;:::-;12915:16;;;;;12650:287;-1:-1:-1;;12650:287:135:o", "linkReferences": {}, "immutableReferences": { "53306": [ { "start": 1381, "length": 32 }, { "start": 1454, "length": 32 }, { "start": 1613, "length": 32 }, { "start": 1677, "length": 32 }, { "start": 1824, "length": 32 } ] } }, "methodIdentifiers": { "avsDirectory()": "6b3aa72e", "delegationManager()": "ea4d3c9b", "deregisterOperator(address)": "d8cf98ca", "getOperatorRestakedStrategies(address)": "33cfb7b7", "getOperatorShare(address)": "7b4ffbbd", "getRestakeableStrategies()": "e481af9d", "initialize(address,address,address)": "f8c8765e", "nodeRegistryAddress()": "fec10aa9", "owner()": "8da5cb5b", "proxiableUUID()": "52d1902d", "registerOperator(address,(bytes,bytes32,uint256))": "aa2bcdbd", "renounceOwnership()": "715018a6", "slashDelegationStaking(address,uint256)": "29557137", "strategy(uint256)": "bc88d7e4", "transferOwnership(address)": "f2fde38b", "updateAVSMetadataURI(string)": "a98fb355", "upgradeTo(address)": "3659cfe6", "upgradeToAndCall(address,bytes)": "4f1ef286" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"SenderNotNodeRegistry\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakingPenalty\",\"type\":\"uint256\"}],\"name\":\"OperatorSlashed\",\"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\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"avsDirectory\",\"outputs\":[{\"internalType\":\"contract IAVSDirectory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationManager\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRestakedStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRestakeableStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nodeRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategyAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avsDirectory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nodeRegistryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"operatorSignature\",\"type\":\"tuple\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"slashDelegationStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"updateAVSMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorRestakedStrategies(address)\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately\",\"params\":{\"operator\":\"The address of the operator to get restaked strategies for\"}},\"getRestakeableStrategies()\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getOperatorRestakedStrategies(address)\":{\"notice\":\"Returns the list of strategies that the operator has potentially restaked on the AVS\"},\"getRestakeableStrategies()\":{\"notice\":\"Returns the list of strategies that the AVS supports for restaking\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/eigenlayer/ServiceManager.sol\":\"ServiceManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":300},\"remappings\":[\":Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/\",\":Staking-v0.1/=lib/Staking-v0.1/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":fx-portal/=lib/fx-portal/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"src/eigenlayer/ServiceManager.sol\":{\"keccak256\":\"0x962609fbe816028b4a395608e0dd44e6ab444e1a79d74e1ae77fc96d85dc4d42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb99a03ec6e421f88b384ae2141ba624d8db67c1d3942f6436f907323fc2c124\",\"dweb:/ipfs/QmZS1VLFVYn5SvY96AQXkzLjdSg9aDvTR7MAxVA2kBcx66\"]},\"src/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x203c59d260b5e0916432198de1094ff3ebd99ad08db111eedf1f47fb29adca08\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://26a546689640ee3fc212bddf6a678f51f3dc67472e0564bde26687364338cec3\",\"dweb:/ipfs/QmPwTcmoZ1hyCea9dR2XwsC1BHHz6mTSje6AdZ7X4aLzg3\"]},\"src/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xb644c798b46a88350c0607ca20654b26e41d9e10feb29e4ed75a3c3cddb85eea\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7617496b54118f290625228181a40b7a0f28a468d94089ccab8a5994ab3ab50b\",\"dweb:/ipfs/QmP4y9GG9b9U11DZjbV7CpFEMtsyx7ZkEP1tJNSa4npPvf\"]},\"src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x0a42c4e8e619ed0cac6f6f4caedd7bff147843ce600f06cf67ce3924aefc678f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e05247df0369b2d636e5e507985f6e7f7d4e870cdbf476ef16a15781aa047e20\",\"dweb:/ipfs/Qmb6cDpfQURNEwTjYCHqvdwi3UwPYWaiQbBFUjDSQheGXA\"]},\"src/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0xdd987d72d8cdbe1839ffa554c35f5e0b65cad95954044b5528a2f2d565188b26\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://60aeff57e190ce78fbdba148b49fedcbd59576645d91d4d995eaebad95b40388\",\"dweb:/ipfs/QmTSCht7dHR2bjjpuaP7efGbixFUr38NcxxHCih2bzyaSK\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.18+commit.87f61d96" }, "language": "Solidity", "output": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "error", "name": "SenderNotNodeRegistry" }, { "inputs": [ { "internalType": "address", "name": "previousAdmin", "type": "address", "indexed": false }, { "internalType": "address", "name": "newAdmin", "type": "address", "indexed": false } ], "type": "event", "name": "AdminChanged", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "beacon", "type": "address", "indexed": true } ], "type": "event", "name": "BeaconUpgraded", "anonymous": false }, { "inputs": [ { "internalType": "uint8", "name": "version", "type": "uint8", "indexed": false } ], "type": "event", "name": "Initialized", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "stakingPenalty", "type": "uint256", "indexed": false } ], "type": "event", "name": "OperatorSlashed", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "previousOwner", "type": "address", "indexed": true }, { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipTransferred", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address", "indexed": true } ], "type": "event", "name": "Upgraded", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "avsDirectory", "outputs": [ { "internalType": "contract IAVSDirectory", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "delegationManager", "outputs": [ { "internalType": "contract IDelegationManager", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "deregisterOperator" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "getOperatorRestakedStrategies", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ] }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "getOperatorShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getRestakeableStrategies", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ] }, { "inputs": [ { "internalType": "address", "name": "_nodeRegistryAddress", "type": "address" }, { "internalType": "address", "name": "_strategyAddress", "type": "address" }, { "internalType": "address", "name": "_avsDirectory", "type": "address" }, { "internalType": "address", "name": "_delegationManager", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "initialize" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "nodeRegistryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry", "name": "operatorSignature", "type": "tuple", "components": [ { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" } ] } ], "stateMutability": "nonpayable", "type": "function", "name": "registerOperator" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "renounceOwnership" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "slashDelegationStaking" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "strategy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "transferOwnership" }, { "inputs": [ { "internalType": "string", "name": "_metadataURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "updateAVSMetadataURI" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "upgradeTo" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "stateMutability": "payable", "type": "function", "name": "upgradeToAndCall" } ], "devdoc": { "kind": "dev", "methods": { "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, "getOperatorRestakedStrategies(address)": { "details": "This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately", "params": { "operator": "The address of the operator to get restaked strategies for" } }, "getRestakeableStrategies()": { "details": "This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately" }, "owner()": { "details": "Returns the address of the current owner." }, "proxiableUUID()": { "details": "Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner." }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." }, "upgradeTo(address)": { "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." }, "upgradeToAndCall(address,bytes)": { "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "getOperatorRestakedStrategies(address)": { "notice": "Returns the list of strategies that the operator has potentially restaked on the AVS" }, "getRestakeableStrategies()": { "notice": "Returns the list of strategies that the AVS supports for restaking" } }, "version": 1 } }, "settings": { "remappings": [ "Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/", "Staking-v0.1/=lib/Staking-v0.1/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "fx-portal/=lib/fx-portal/contracts/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/" ], "optimizer": { "enabled": true, "runs": 300 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/eigenlayer/ServiceManager.sol": "ServiceManager" }, "libraries": {} }, "sources": { "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": { "keccak256": "0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e", "urls": [ "bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c", "dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol": { "keccak256": "0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b", "urls": [ "bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0", "dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol": { "keccak256": "0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f", "urls": [ "bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053", "dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol": { "keccak256": "0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8", "urls": [ "bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0", "dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol": { "keccak256": "0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908", "urls": [ "bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1", "dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { "keccak256": "0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794", "urls": [ "bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e", "dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": { "keccak256": "0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33", "urls": [ "bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f", "dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": { "keccak256": "0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422", "urls": [ "bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b", "dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": { "keccak256": "0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef", "urls": [ "bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95", "dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol": { "keccak256": "0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908", "urls": [ "bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685", "dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy" ], "license": "MIT" }, "src/eigenlayer/ServiceManager.sol": { "keccak256": "0x962609fbe816028b4a395608e0dd44e6ab444e1a79d74e1ae77fc96d85dc4d42", "urls": [ "bzz-raw://cb99a03ec6e421f88b384ae2141ba624d8db67c1d3942f6436f907323fc2c124", "dweb:/ipfs/QmZS1VLFVYn5SvY96AQXkzLjdSg9aDvTR7MAxVA2kBcx66" ], "license": "MIT" }, "src/interfaces/IAVSDirectory.sol": { "keccak256": "0x203c59d260b5e0916432198de1094ff3ebd99ad08db111eedf1f47fb29adca08", "urls": [ "bzz-raw://26a546689640ee3fc212bddf6a678f51f3dc67472e0564bde26687364338cec3", "dweb:/ipfs/QmPwTcmoZ1hyCea9dR2XwsC1BHHz6mTSje6AdZ7X4aLzg3" ], "license": "BUSL-1.1" }, "src/interfaces/IDelegationManager.sol": { "keccak256": "0xb644c798b46a88350c0607ca20654b26e41d9e10feb29e4ed75a3c3cddb85eea", "urls": [ "bzz-raw://7617496b54118f290625228181a40b7a0f28a468d94089ccab8a5994ab3ab50b", "dweb:/ipfs/QmP4y9GG9b9U11DZjbV7CpFEMtsyx7ZkEP1tJNSa4npPvf" ], "license": "BUSL-1.1" }, "src/interfaces/IServiceManager.sol": { "keccak256": "0x0a42c4e8e619ed0cac6f6f4caedd7bff147843ce600f06cf67ce3924aefc678f", "urls": [ "bzz-raw://e05247df0369b2d636e5e507985f6e7f7d4e870cdbf476ef16a15781aa047e20", "dweb:/ipfs/Qmb6cDpfQURNEwTjYCHqvdwi3UwPYWaiQbBFUjDSQheGXA" ], "license": "BUSL-1.1" }, "src/interfaces/ISignatureUtils.sol": { "keccak256": "0xdd987d72d8cdbe1839ffa554c35f5e0b65cad95954044b5528a2f2d565188b26", "urls": [ "bzz-raw://60aeff57e190ce78fbdba148b49fedcbd59576645d91d4d995eaebad95b40388", "dweb:/ipfs/QmTSCht7dHR2bjjpuaP7efGbixFUr38NcxxHCih2bzyaSK" ], "license": "BUSL-1.1" } }, "version": 1 }, "ast": { "absolutePath": "src/eigenlayer/ServiceManager.sol", "id": 67504, "exportedSymbols": { "IAVSDirectory": [67581], "IDelegationManager": [68447], "IServiceManager": [68685], "ISignatureUtils": [68701], "OwnableUpgradeable": [52751], "ServiceManager": [67503], "UUPSUpgradeable": [53423] }, "nodeType": "SourceUnit", "src": "32:4393:95", "nodes": [ { "id": 67244, "nodeType": "PragmaDirective", "src": "32:24:95", "nodes": [], "literals": ["solidity", "^", "0.8", ".18"] }, { "id": 67246, "nodeType": "ImportDirective", "src": "58:109:95", "nodes": [], "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", "file": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", "nameLocation": "-1:-1:-1", "scope": 67504, "sourceUnit": 53424, "symbolAliases": [ { "foreign": { "id": 67245, "name": "UUPSUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 53423, "src": "66:15:95", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 67248, "nodeType": "ImportDirective", "src": "168:110:95", "nodes": [], "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", "file": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", "nameLocation": "-1:-1:-1", "scope": 67504, "sourceUnit": 52752, "symbolAliases": [ { "foreign": { "id": 67247, "name": "OwnableUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52751, "src": "176:18:95", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 67251, "nodeType": "ImportDirective", "src": "279:79:95", "nodes": [], "absolutePath": "src/interfaces/IAVSDirectory.sol", "file": "../interfaces/IAVSDirectory.sol", "nameLocation": "-1:-1:-1", "scope": 67504, "sourceUnit": 67582, "symbolAliases": [ { "foreign": { "id": 67249, "name": "ISignatureUtils", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68701, "src": "287:15:95", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 67250, "name": "IAVSDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67581, "src": "304:13:95", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 67253, "nodeType": "ImportDirective", "src": "359:72:95", "nodes": [], "absolutePath": "src/interfaces/IDelegationManager.sol", "file": "../interfaces/IDelegationManager.sol", "nameLocation": "-1:-1:-1", "scope": 67504, "sourceUnit": 68448, "symbolAliases": [ { "foreign": { "id": 67252, "name": "IDelegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68447, "src": "367:18:95", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 67255, "nodeType": "ImportDirective", "src": "432:66:95", "nodes": [], "absolutePath": "src/interfaces/IServiceManager.sol", "file": "../interfaces/IServiceManager.sol", "nameLocation": "-1:-1:-1", "scope": 67504, "sourceUnit": 68686, "symbolAliases": [ { "foreign": { "id": 67254, "name": "IServiceManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68685, "src": "440:15:95", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 67503, "nodeType": "ContractDefinition", "src": "500:3924:95", "nodes": [ { "id": 67263, "nodeType": "VariableDeclaration", "src": "635:34:95", "nodes": [], "constant": false, "functionSelector": "fec10aa9", "mutability": "mutable", "name": "nodeRegistryAddress", "nameLocation": "650:19:95", "scope": 67503, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67262, "name": "address", "nodeType": "ElementaryTypeName", "src": "635:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "public" }, { "id": 67266, "nodeType": "VariableDeclaration", "src": "675:33:95", "nodes": [], "constant": false, "functionSelector": "6b3aa72e", "mutability": "mutable", "name": "avsDirectory", "nameLocation": "696:12:95", "scope": 67503, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" }, "typeName": { "id": 67265, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 67264, "name": "IAVSDirectory", "nameLocations": ["675:13:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 67581, "src": "675:13:95" }, "referencedDeclaration": 67581, "src": "675:13:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "visibility": "public" }, { "id": 67269, "nodeType": "VariableDeclaration", "src": "714:43:95", "nodes": [], "constant": false, "functionSelector": "ea4d3c9b", "mutability": "mutable", "name": "delegationManager", "nameLocation": "740:17:95", "scope": 67503, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" }, "typeName": { "id": 67268, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 67267, "name": "IDelegationManager", "nameLocations": ["714:18:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 68447, "src": "714:18:95" }, "referencedDeclaration": 68447, "src": "714:18:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } }, "visibility": "public" }, { "id": 67272, "nodeType": "VariableDeclaration", "src": "763:25:95", "nodes": [], "constant": false, "functionSelector": "bc88d7e4", "mutability": "mutable", "name": "strategy", "nameLocation": "780:8:95", "scope": 67503, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[]" }, "typeName": { "baseType": { "id": 67270, "name": "address", "nodeType": "ElementaryTypeName", "src": "763:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67271, "nodeType": "ArrayTypeName", "src": "763:9:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "public" }, { "id": 67286, "nodeType": "ModifierDefinition", "src": "917:149:95", "nodes": [], "body": { "id": 67285, "nodeType": "Block", "src": "945:121:95", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 67278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 67275, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "959:3:95", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 67276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "963:6:95", "memberName": "sender", "nodeType": "MemberAccess", "src": "959:10:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 67277, "name": "nodeRegistryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67263, "src": "973:19:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "959:33:95", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 67283, "nodeType": "IfStatement", "src": "955:94:95", "trueBody": { "id": 67282, "nodeType": "Block", "src": "994:55:95", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 67279, "name": "SenderNotNodeRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67294, "src": "1015:21:95", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 67280, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1015:23:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67281, "nodeType": "RevertStatement", "src": "1008:30:95" } ] } }, { "id": 67284, "nodeType": "PlaceholderStatement", "src": "1058:1:95" } ] }, "documentation": { "id": 67273, "nodeType": "StructuredDocumentation", "src": "826:86:95", "text": "@notice when applied to a function, only allows the RegistryCoordinator to call it" }, "name": "onlyNodeRegistry", "nameLocation": "926:16:95", "parameters": { "id": 67274, "nodeType": "ParameterList", "parameters": [], "src": "942:2:95" }, "virtual": false, "visibility": "internal" }, { "id": 67292, "nodeType": "EventDefinition", "src": "1088:72:95", "nodes": [], "anonymous": false, "eventSelector": "a005d3b8f5c8149659f2afc06ed99732d5891377a370a723669418ca1ca29ced", "name": "OperatorSlashed", "nameLocation": "1094:15:95", "parameters": { "id": 67291, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67288, "indexed": true, "mutability": "mutable", "name": "operator", "nameLocation": "1126:8:95", "nodeType": "VariableDeclaration", "scope": 67292, "src": "1110:24:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67287, "name": "address", "nodeType": "ElementaryTypeName", "src": "1110:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 67290, "indexed": false, "mutability": "mutable", "name": "stakingPenalty", "nameLocation": "1144:14:95", "nodeType": "VariableDeclaration", "scope": 67292, "src": "1136:22:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 67289, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1136:7:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1109:50:95" } }, { "id": 67294, "nodeType": "ErrorDefinition", "src": "1182:30:95", "nodes": [], "errorSelector": "e2c730d0", "name": "SenderNotNodeRegistry", "nameLocation": "1188:21:95", "parameters": { "id": 67293, "nodeType": "ParameterList", "parameters": [], "src": "1209:2:95" } }, { "id": 67302, "nodeType": "FunctionDefinition", "src": "1271:53:95", "nodes": [], "body": { "id": 67301, "nodeType": "Block", "src": "1285:39:95", "nodes": [], "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 67298, "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 53267, "src": "1295:20:95", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 67299, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1295:22:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67300, "nodeType": "ExpressionStatement", "src": "1295:22:95" } ] }, "documentation": { "id": 67295, "nodeType": "StructuredDocumentation", "src": "1218:48:95", "text": "@custom:oz-upgrades-unsafe-allow constructor" }, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 67296, "nodeType": "ParameterList", "parameters": [], "src": "1282:2:95" }, "returnParameters": { "id": 67297, "nodeType": "ParameterList", "parameters": [], "src": "1285:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 67341, "nodeType": "FunctionDefinition", "src": "1330:432:95", "nodes": [], "body": { "id": 67340, "nodeType": "Block", "src": "1514:248:95", "nodes": [], "statements": [ { "expression": { "id": 67317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 67315, "name": "nodeRegistryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67263, "src": "1524:19:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 67316, "name": "_nodeRegistryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67304, "src": "1546:20:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1524:42:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67318, "nodeType": "ExpressionStatement", "src": "1524:42:95" }, { "expression": { "id": 67323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 67319, "name": "avsDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67266, "src": "1576:12:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 67321, "name": "_avsDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67308, "src": "1605:13:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 67320, "name": "IAVSDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67581, "src": "1591:13:95", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IAVSDirectory_$67581_$", "typeString": "type(contract IAVSDirectory)" } }, "id": 67322, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1591:28:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "src": "1576:43:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "id": 67324, "nodeType": "ExpressionStatement", "src": "1576:43:95" }, { "expression": { "id": 67329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 67325, "name": "delegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67269, "src": "1629:17:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 67327, "name": "_delegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67310, "src": "1668:18:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 67326, "name": "IDelegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68447, "src": "1649:18:95", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IDelegationManager_$68447_$", "typeString": "type(contract IDelegationManager)" } }, "id": 67328, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1649:38:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } }, "src": "1629:58:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } }, "id": 67330, "nodeType": "ExpressionStatement", "src": "1629:58:95" }, { "expression": { "arguments": [ { "id": 67334, "name": "_strategyAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67306, "src": "1711:16:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 67331, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "1697:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 67333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1706:4:95", "memberName": "push", "nodeType": "MemberAccess", "src": "1697:13:95", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", "typeString": "function (address[] storage pointer,address)" } }, "id": 67335, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1697:31:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67336, "nodeType": "ExpressionStatement", "src": "1697:31:95" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 67337, "name": "__Ownable_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52646, "src": "1739:14:95", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 67338, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1739:16:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67339, "nodeType": "ExpressionStatement", "src": "1739:16:95" } ] }, "functionSelector": "f8c8765e", "implemented": true, "kind": "function", "modifiers": [ { "id": 67313, "kind": "modifierInvocation", "modifierName": { "id": 67312, "name": "initializer", "nameLocations": ["1502:11:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 53188, "src": "1502:11:95" }, "nodeType": "ModifierInvocation", "src": "1502:11:95" } ], "name": "initialize", "nameLocation": "1339:10:95", "parameters": { "id": 67311, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67304, "mutability": "mutable", "name": "_nodeRegistryAddress", "nameLocation": "1367:20:95", "nodeType": "VariableDeclaration", "scope": 67341, "src": "1359:28:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67303, "name": "address", "nodeType": "ElementaryTypeName", "src": "1359:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 67306, "mutability": "mutable", "name": "_strategyAddress", "nameLocation": "1405:16:95", "nodeType": "VariableDeclaration", "scope": 67341, "src": "1397:24:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67305, "name": "address", "nodeType": "ElementaryTypeName", "src": "1397:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 67308, "mutability": "mutable", "name": "_avsDirectory", "nameLocation": "1439:13:95", "nodeType": "VariableDeclaration", "scope": 67341, "src": "1431:21:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67307, "name": "address", "nodeType": "ElementaryTypeName", "src": "1431:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 67310, "mutability": "mutable", "name": "_delegationManager", "nameLocation": "1470:18:95", "nodeType": "VariableDeclaration", "scope": 67341, "src": "1462:26:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67309, "name": "address", "nodeType": "ElementaryTypeName", "src": "1462:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1349:145:95" }, "returnParameters": { "id": 67314, "nodeType": "ParameterList", "parameters": [], "src": "1514:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 67350, "nodeType": "FunctionDefinition", "src": "1817:66:95", "nodes": [], "body": { "id": 67349, "nodeType": "Block", "src": "1881:2:95", "nodes": [], "statements": [] }, "baseFunctions": [53417], "implemented": true, "kind": "function", "modifiers": [ { "id": 67347, "kind": "modifierInvocation", "modifierName": { "id": 67346, "name": "onlyOwner", "nameLocations": ["1871:9:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 52665, "src": "1871:9:95" }, "nodeType": "ModifierInvocation", "src": "1871:9:95" } ], "name": "_authorizeUpgrade", "nameLocation": "1826:17:95", "overrides": { "id": 67345, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1862:8:95" }, "parameters": { "id": 67344, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67343, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 67350, "src": "1844:7:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67342, "name": "address", "nodeType": "ElementaryTypeName", "src": "1844:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1843:9:95" }, "returnParameters": { "id": 67348, "nodeType": "ParameterList", "parameters": [], "src": "1881:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 67364, "nodeType": "FunctionDefinition", "src": "1889:147:95", "nodes": [], "body": { "id": 67363, "nodeType": "Block", "src": "1972:64:95", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 67360, "name": "_metadataURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67352, "src": "2016:12:95", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "id": 67357, "name": "avsDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67266, "src": "1982:12:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "id": 67359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1995:20:95", "memberName": "updateAVSMetadataURI", "nodeType": "MemberAccess", "referencedDeclaration": 67550, "src": "1982:33:95", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) external" } }, "id": 67361, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1982:47:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67362, "nodeType": "ExpressionStatement", "src": "1982:47:95" } ] }, "functionSelector": "a98fb355", "implemented": true, "kind": "function", "modifiers": [ { "id": 67355, "kind": "modifierInvocation", "modifierName": { "id": 67354, "name": "onlyOwner", "nameLocations": ["1962:9:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 52665, "src": "1962:9:95" }, "nodeType": "ModifierInvocation", "src": "1962:9:95" } ], "name": "updateAVSMetadataURI", "nameLocation": "1898:20:95", "parameters": { "id": 67353, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67352, "mutability": "mutable", "name": "_metadataURI", "nameLocation": "1933:12:95", "nodeType": "VariableDeclaration", "scope": 67364, "src": "1919:26:95", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 67351, "name": "string", "nodeType": "ElementaryTypeName", "src": "1919:6:95", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1918:28:95" }, "returnParameters": { "id": 67356, "nodeType": "ParameterList", "parameters": [], "src": "1972:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 67382, "nodeType": "FunctionDefinition", "src": "2114:239:95", "nodes": [], "body": { "id": 67381, "nodeType": "Block", "src": "2273:80:95", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 67377, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67366, "src": "2318:8:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 67378, "name": "operatorSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67369, "src": "2328:17:95", "typeDescriptions": { "typeIdentifier": "t_struct$_SignatureWithSaltAndExpiry_$68700_memory_ptr", "typeString": "struct ISignatureUtils.SignatureWithSaltAndExpiry memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_SignatureWithSaltAndExpiry_$68700_memory_ptr", "typeString": "struct ISignatureUtils.SignatureWithSaltAndExpiry memory" } ], "expression": { "id": 67374, "name": "avsDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67266, "src": "2283:12:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "id": 67376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2296:21:95", "memberName": "registerOperatorToAVS", "nodeType": "MemberAccess", "referencedDeclaration": 67538, "src": "2283:34:95", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_struct$_SignatureWithSaltAndExpiry_$68700_memory_ptr_$returns$__$", "typeString": "function (address,struct ISignatureUtils.SignatureWithSaltAndExpiry memory) external" } }, "id": 67379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2283:63:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67380, "nodeType": "ExpressionStatement", "src": "2283:63:95" } ] }, "baseFunctions": [68665], "functionSelector": "aa2bcdbd", "implemented": true, "kind": "function", "modifiers": [ { "id": 67372, "kind": "modifierInvocation", "modifierName": { "id": 67371, "name": "onlyNodeRegistry", "nameLocations": ["2252:16:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 67286, "src": "2252:16:95" }, "nodeType": "ModifierInvocation", "src": "2252:16:95" } ], "name": "registerOperator", "nameLocation": "2123:16:95", "parameters": { "id": 67370, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67366, "mutability": "mutable", "name": "operator", "nameLocation": "2148:8:95", "nodeType": "VariableDeclaration", "scope": 67382, "src": "2140:16:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67365, "name": "address", "nodeType": "ElementaryTypeName", "src": "2140:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 67369, "mutability": "mutable", "name": "operatorSignature", "nameLocation": "2208:17:95", "nodeType": "VariableDeclaration", "scope": 67382, "src": "2158:67:95", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_SignatureWithSaltAndExpiry_$68700_memory_ptr", "typeString": "struct ISignatureUtils.SignatureWithSaltAndExpiry" }, "typeName": { "id": 67368, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 67367, "name": "ISignatureUtils.SignatureWithSaltAndExpiry", "nameLocations": ["2158:15:95", "2174:26:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 68700, "src": "2158:42:95" }, "referencedDeclaration": 68700, "src": "2158:42:95", "typeDescriptions": { "typeIdentifier": "t_struct$_SignatureWithSaltAndExpiry_$68700_storage_ptr", "typeString": "struct ISignatureUtils.SignatureWithSaltAndExpiry" } }, "visibility": "internal" } ], "src": "2139:87:95" }, "returnParameters": { "id": 67373, "nodeType": "ParameterList", "parameters": [], "src": "2273:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 67396, "nodeType": "FunctionDefinition", "src": "2359:137:95", "nodes": [], "body": { "id": 67395, "nodeType": "Block", "src": "2431:65:95", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 67392, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67384, "src": "2480:8:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 67389, "name": "avsDirectory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67266, "src": "2441:12:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IAVSDirectory_$67581", "typeString": "contract IAVSDirectory" } }, "id": 67391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2454:25:95", "memberName": "deregisterOperatorFromAVS", "nodeType": "MemberAccess", "referencedDeclaration": 67544, "src": "2441:38:95", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, "id": 67393, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2441:48:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67394, "nodeType": "ExpressionStatement", "src": "2441:48:95" } ] }, "baseFunctions": [68670], "functionSelector": "d8cf98ca", "implemented": true, "kind": "function", "modifiers": [ { "id": 67387, "kind": "modifierInvocation", "modifierName": { "id": 67386, "name": "onlyNodeRegistry", "nameLocations": ["2414:16:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 67286, "src": "2414:16:95" }, "nodeType": "ModifierInvocation", "src": "2414:16:95" } ], "name": "deregisterOperator", "nameLocation": "2368:18:95", "parameters": { "id": 67385, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67384, "mutability": "mutable", "name": "operator", "nameLocation": "2395:8:95", "nodeType": "VariableDeclaration", "scope": 67396, "src": "2387:16:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67383, "name": "address", "nodeType": "ElementaryTypeName", "src": "2387:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "2386:18:95" }, "returnParameters": { "id": 67388, "nodeType": "ParameterList", "parameters": [], "src": "2431:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 67411, "nodeType": "FunctionDefinition", "src": "2502:226:95", "nodes": [], "body": { "id": 67410, "nodeType": "Block", "src": "2594:134:95", "nodes": [], "statements": [ { "eventCall": { "arguments": [ { "id": 67406, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67398, "src": "2704:8:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 67407, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67400, "src": "2714:6:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 67405, "name": "OperatorSlashed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67292, "src": "2688:15:95", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 67408, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2688:33:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 67409, "nodeType": "EmitStatement", "src": "2683:38:95" } ] }, "baseFunctions": [68677], "functionSelector": "29557137", "implemented": true, "kind": "function", "modifiers": [ { "id": 67403, "kind": "modifierInvocation", "modifierName": { "id": 67402, "name": "onlyNodeRegistry", "nameLocations": ["2577:16:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 67286, "src": "2577:16:95" }, "nodeType": "ModifierInvocation", "src": "2577:16:95" } ], "name": "slashDelegationStaking", "nameLocation": "2511:22:95", "parameters": { "id": 67401, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67398, "mutability": "mutable", "name": "operator", "nameLocation": "2542:8:95", "nodeType": "VariableDeclaration", "scope": 67411, "src": "2534:16:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67397, "name": "address", "nodeType": "ElementaryTypeName", "src": "2534:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 67400, "mutability": "mutable", "name": "amount", "nameLocation": "2560:6:95", "nodeType": "VariableDeclaration", "scope": 67411, "src": "2552:14:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 67399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2552:7:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2533:34:95" }, "returnParameters": { "id": 67404, "nodeType": "ParameterList", "parameters": [], "src": "2594:0:95" }, "scope": 67503, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 67427, "nodeType": "FunctionDefinition", "src": "2789:155:95", "nodes": [], "body": { "id": 67426, "nodeType": "Block", "src": "2865:79:95", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 67420, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67413, "src": "2915:8:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "baseExpression": { "id": 67421, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "2925:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 67423, "indexExpression": { "hexValue": "30", "id": 67422, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2934:1:95", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2925:11:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 67418, "name": "delegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67269, "src": "2882:17:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } }, "id": 67419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2900:14:95", "memberName": "operatorShares", "nodeType": "MemberAccess", "referencedDeclaration": 68446, "src": "2882:32:95", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, "id": 67424, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2882:55:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 67417, "id": 67425, "nodeType": "Return", "src": "2875:62:95" } ] }, "baseFunctions": [68684], "functionSelector": "7b4ffbbd", "implemented": true, "kind": "function", "modifiers": [], "name": "getOperatorShare", "nameLocation": "2798:16:95", "parameters": { "id": 67414, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67413, "mutability": "mutable", "name": "operator", "nameLocation": "2823:8:95", "nodeType": "VariableDeclaration", "scope": 67427, "src": "2815:16:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67412, "name": "address", "nodeType": "ElementaryTypeName", "src": "2815:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "2814:18:95" }, "returnParameters": { "id": 67417, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67416, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 67427, "src": "2856:7:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 67415, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2856:7:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2855:9:95" }, "scope": 67503, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 67437, "nodeType": "FunctionDefinition", "src": "3264:109:95", "nodes": [], "body": { "id": 67436, "nodeType": "Block", "src": "3341:32:95", "nodes": [], "statements": [ { "expression": { "id": 67434, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "3358:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 67433, "id": 67435, "nodeType": "Return", "src": "3351:15:95" } ] }, "documentation": { "id": 67428, "nodeType": "StructuredDocumentation", "src": "2950:309:95", "text": " @notice Returns the list of strategies that the AVS supports for restaking\n @dev This function is intended to be called off-chain\n @dev No guarantee is made on uniqueness of each element in the returned array.\n The off-chain service should do that validation separately" }, "functionSelector": "e481af9d", "implemented": true, "kind": "function", "modifiers": [], "name": "getRestakeableStrategies", "nameLocation": "3273:24:95", "parameters": { "id": 67429, "nodeType": "ParameterList", "parameters": [], "src": "3297:2:95" }, "returnParameters": { "id": 67433, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67432, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 67437, "src": "3323:16:95", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 67430, "name": "address", "nodeType": "ElementaryTypeName", "src": "3323:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67431, "nodeType": "ArrayTypeName", "src": "3323:9:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "3322:18:95" }, "scope": 67503, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 67502, "nodeType": "FunctionDefinition", "src": "3857:506:95", "nodes": [], "body": { "id": 67501, "nodeType": "Block", "src": "3955:408:95", "nodes": [], "statements": [ { "assignments": [67450], "declarations": [ { "constant": false, "id": 67450, "mutability": "mutable", "name": "restakedStrategies", "nameLocation": "3982:18:95", "nodeType": "VariableDeclaration", "scope": 67501, "src": "3965:35:95", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 67448, "name": "address", "nodeType": "ElementaryTypeName", "src": "3965:7:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67449, "nodeType": "ArrayTypeName", "src": "3965:9:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "id": 67457, "initialValue": { "arguments": [ { "expression": { "id": 67454, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "4017:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 67455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4026:6:95", "memberName": "length", "nodeType": "MemberAccess", "src": "4017:15:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 67453, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "4003:13:95", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 67451, "name": "address", "nodeType": "ElementaryTypeName", "src": "4007:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67452, "nodeType": "ArrayTypeName", "src": "4007:9:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 67456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4003:30:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3965:68:95" }, { "assignments": [67459], "declarations": [ { "constant": false, "id": 67459, "mutability": "mutable", "name": "index", "nameLocation": "4051:5:95", "nodeType": "VariableDeclaration", "scope": 67501, "src": "4043:13:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 67458, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4043:7:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 67461, "initialValue": { "hexValue": "30", "id": 67460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4059:1:95", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "4043:17:95" }, { "body": { "id": 67497, "nodeType": "Block", "src": "4116:206:95", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 67483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 67477, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67440, "src": "4187:8:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "baseExpression": { "id": 67478, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "4197:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 67480, "indexExpression": { "id": 67479, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67463, "src": "4206:1:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4197:11:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "arguments": [ { "id": 67474, "name": "delegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67269, "src": "4153:17:95", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } ], "id": 67473, "name": "IDelegationManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68447, "src": "4134:18:95", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IDelegationManager_$68447_$", "typeString": "type(contract IDelegationManager)" } }, "id": 67475, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4134:37:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IDelegationManager_$68447", "typeString": "contract IDelegationManager" } }, "id": 67476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4172:14:95", "memberName": "operatorShares", "nodeType": "MemberAccess", "referencedDeclaration": 68446, "src": "4134:52:95", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, "id": 67481, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4134:75:95", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 67482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4212:1:95", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "4134:79:95", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 67496, "nodeType": "IfStatement", "src": "4130:182:95", "trueBody": { "id": 67495, "nodeType": "Block", "src": "4215:97:95", "statements": [ { "expression": { "id": 67490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 67484, "name": "restakedStrategies", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67450, "src": "4233:18:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 67486, "indexExpression": { "id": 67485, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67459, "src": "4252:5:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4233:25:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 67487, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "4261:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 67489, "indexExpression": { "id": 67488, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67463, "src": "4270:1:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4261:11:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4233:39:95", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67491, "nodeType": "ExpressionStatement", "src": "4233:39:95" }, { "expression": { "id": 67493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "4290:7:95", "subExpression": { "id": 67492, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67459, "src": "4290:5:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 67494, "nodeType": "ExpressionStatement", "src": "4290:7:95" } ] } } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 67469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 67466, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67463, "src": "4090:1:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 67467, "name": "strategy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67272, "src": "4094:8:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 67468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4103:6:95", "memberName": "length", "nodeType": "MemberAccess", "src": "4094:15:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4090:19:95", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 67498, "initializationExpression": { "assignments": [67463], "declarations": [ { "constant": false, "id": 67463, "mutability": "mutable", "name": "i", "nameLocation": "4083:1:95", "nodeType": "VariableDeclaration", "scope": 67498, "src": "4075:9:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 67462, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4075:7:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 67465, "initialValue": { "hexValue": "30", "id": 67464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4087:1:95", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "4075:13:95" }, "loopExpression": { "expression": { "id": 67471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "4111:3:95", "subExpression": { "id": 67470, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67463, "src": "4111:1:95", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 67472, "nodeType": "ExpressionStatement", "src": "4111:3:95" }, "nodeType": "ForStatement", "src": "4070:252:95" }, { "expression": { "id": 67499, "name": "restakedStrategies", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 67450, "src": "4338:18:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "functionReturnParameters": 67445, "id": 67500, "nodeType": "Return", "src": "4331:25:95" } ] }, "documentation": { "id": 67438, "nodeType": "StructuredDocumentation", "src": "3379:473:95", "text": " @notice Returns the list of strategies that the operator has potentially restaked on the AVS\n @param operator The address of the operator to get restaked strategies for\n @dev This function is intended to be called off-chain\n @dev No guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness\n of each element in the returned array. The off-chain service should do that validation separately" }, "functionSelector": "33cfb7b7", "implemented": true, "kind": "function", "modifiers": [], "name": "getOperatorRestakedStrategies", "nameLocation": "3866:29:95", "parameters": { "id": 67441, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67440, "mutability": "mutable", "name": "operator", "nameLocation": "3904:8:95", "nodeType": "VariableDeclaration", "scope": 67502, "src": "3896:16:95", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 67439, "name": "address", "nodeType": "ElementaryTypeName", "src": "3896:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "3895:18:95" }, "returnParameters": { "id": 67445, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 67444, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 67502, "src": "3937:16:95", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 67442, "name": "address", "nodeType": "ElementaryTypeName", "src": "3937:7:95", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 67443, "nodeType": "ArrayTypeName", "src": "3937:9:95", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "3936:18:95" }, "scope": 67503, "stateMutability": "view", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 67256, "name": "UUPSUpgradeable", "nameLocations": ["527:15:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 53423, "src": "527:15:95" }, "id": 67257, "nodeType": "InheritanceSpecifier", "src": "527:15:95" }, { "baseName": { "id": 67258, "name": "IServiceManager", "nameLocations": ["544:15:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 68685, "src": "544:15:95" }, "id": 67259, "nodeType": "InheritanceSpecifier", "src": "544:15:95" }, { "baseName": { "id": 67260, "name": "OwnableUpgradeable", "nameLocations": ["561:18:95"], "nodeType": "IdentifierPath", "referencedDeclaration": 52751, "src": "561:18:95" }, "id": 67261, "nodeType": "InheritanceSpecifier", "src": "561:18:95" } ], "canonicalName": "ServiceManager", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 67503, 52751, 53804, 68685, 53423, 53107, 52772, 52782, 53286 ], "name": "ServiceManager", "nameLocation": "509:14:95", "scope": 67504, "usedErrors": [67294] } ], "license": "MIT" }, "id": 95 }