diff --git a/pkg/bindings/AVSDirectory/binding.go b/pkg/bindings/AVSDirectory/binding.go index e3ef46411..a150ff086 100644 --- a/pkg/bindings/AVSDirectory/binding.go +++ b/pkg/bindings/AVSDirectory/binding.go @@ -39,7 +39,7 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // AVSDirectoryMetaData contains all meta data concerning the AVSDirectory contract. var AVSDirectoryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_AVS_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_SET_FORCE_DEREGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_SET_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsOperatorStatus\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIAVSDirectoryTypes.OperatorAVSRegistrationStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorAVSRegistrationDigestHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cancelSalt\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorSaltIsSpent\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"isSpent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.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\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSMigratedToOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"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\":\"OperatorAVSRegistrationStatusUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIAVSDirectoryTypes.OperatorAVSRegistrationStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMigratedToOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"indexed\":false,\"internalType\":\"uint32[]\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorAlreadyRegisteredToAVS\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegisteredToAVS\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegisteredToEigenLayer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]}]", - Bin: "0x610100604052348015610010575f5ffd5b5060405161172938038061172983398101604081905261002f91610204565b81816001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0524660c052610076610088565b60e052610081610131565b505061023c565b5f60c051461461012a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b5060e05190565b5f54610100900460ff161561019c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101eb575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610201575f5ffd5b50565b5f5f60408385031215610215575f5ffd5b8251610220816101ed565b6020840151909250610231816101ed565b809150509250929050565b60805160a05160c05160e05161149e61028b5f395f610e1d01525f610d5d01525f8181610340015261063d01525f818161021c015281816103d8015281816104ad0152610ac7015261149e5ff3fe608060405234801561000f575f5ffd5b506004361061013d575f3560e01c8063a364f4da116100b4578063dce974b911610079578063dce974b914610314578063df5cf7231461033b578063ec76f44214610362578063f2fde38b14610395578063f698da25146103a8578063fabc1cbc146103b0575f5ffd5b8063a364f4da1461028d578063a98fb355146102a0578063c825fe68146102b3578063cd6dc687146102da578063d79aceab146102ed575f5ffd5b80635c975abb116101055780635c975abb146101fd578063715018a61461020f578063886f1195146102175780638da5cb5b146102565780639926ee7d14610267578063a1060c881461027a575f5ffd5b8063136439dd14610141578063374823b51461015657806349075da314610198578063595c6a67146101d25780635ac86ab7146101da575b5f5ffd5b61015461014f366004611083565b6103c3565b005b6101836101643660046110ae565b609960209081525f928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6101c56101a63660046110d8565b609860209081525f928352604080842090915290825290205460ff1681565b60405161018f9190611123565b610154610498565b6101836101e8366004611149565b606654600160ff9092169190911b9081161490565b6066545b60405190815260200161018f565b610154610547565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161018f565b6033546001600160a01b031661023e565b6101546102753660046111de565b610558565b6102016102883660046112cb565b610777565b61015461029b36600461130e565b6107f6565b6101546102ae366004611329565b6108db565b6102017f809c5ac049c45b7a7f050a20f00c16cf63797efbf8b1eb8d749fdfa39ff8f92981565b6101546102e83660046110ae565b610922565b6102017fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102017f4ee65f64218c67b68da66fd0db16560040a6b973290b9e71912d661ee53fe49581565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b610154610370366004611083565b335f90815260996020908152604080832093835292905220805460ff19166001179055565b6101546103a336600461130e565b610a3e565b610201610ab7565b6101546103be366004611083565b610ac5565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610425573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104499190611397565b61046657604051631d77d47760e21b815260040160405180910390fd5b606654818116811461048b5760405163c61dca5d60e01b815260040160405180910390fd5b61049482610bd4565b5050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156104fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e9190611397565b61053b57604051631d77d47760e21b815260040160405180910390fd5b6105455f19610bd4565b565b61054f610c11565b6105455f610c6b565b6066545f906001908116036105805760405163840a48d560e01b815260040160405180910390fd5b6001335f9081526098602090815260408083206001600160a01b038816845290915290205460ff1660018111156105b9576105b961110f565b036105d757604051631aa528bb60e11b815260040160405180910390fd5b6001600160a01b0383165f90815260996020908152604080832085830151845290915290205460ff161561061e57604051630d4c4c9160e21b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015610682573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a69190611397565b6106c357604051639f88c8af60e01b815260040160405180910390fd5b6106e7836106db853386602001518760400151610777565b84516040860151610cbc565b6001600160a01b0383165f81815260996020908152604080832086830151845282528083208054600160ff19918216811790925533808652609885528386208787529094529382902080549094168117909355519092917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b419161076a9190611123565b60405180910390a3505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd60208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107ed9060c00160405160208183030381529060405280519060200120610d14565b95945050505050565b6066545f9060019081160361081e5760405163840a48d560e01b815260040160405180910390fd5b6001335f9081526098602090815260408083206001600160a01b038716845290915290205460ff1660018111156108575761085761110f565b14610875576040516352df45c960e01b815260040160405180910390fd5b335f8181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b41916108cf9190611123565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371383836040516109169291906113b6565b60405180910390a25050565b5f54610100900460ff161580801561094057505f54600160ff909116105b806109595750303b15801561095957505f5460ff166001145b6109c15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156109e2575f805461ff0019166101001790555b6109eb82610bd4565b6109f483610c6b565b8015610a39575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610a46610c11565b6001600160a01b038116610aab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b8565b610ab481610c6b565b50565b5f610ac0610d5a565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4591906113e4565b6001600160a01b0316336001600160a01b031614610b765760405163794821ff60e01b815260040160405180910390fd5b60665480198219811614610b9d5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610916565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6033546001600160a01b031633146105455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109b8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b42811015610cdd57604051630819bdcd60e01b815260040160405180910390fd5b610cf16001600160a01b0385168484610e3f565b610d0e57604051638baa579f60e01b815260040160405180910390fd5b50505050565b5f610d1d610d5a565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000004614610e1a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f5f5f610e4c8585610e9d565b90925090505f816004811115610e6457610e6461110f565b148015610e825750856001600160a01b0316826001600160a01b0316145b80610e935750610e93868686610edf565b9695505050505050565b5f5f8251604103610ed1576020830151604084015160608501515f1a610ec587828585610fc6565b94509450505050610ed8565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401610f079291906113ff565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f45919061143b565b5f60405180830381855afa9150503d805f8114610f7d576040519150601f19603f3d011682016040523d82523d5f602084013e610f82565b606091505b5091509150818015610f9657506020815110155b8015610e9357508051630b135d3f60e11b90610fbb9083016020908101908401611451565b149695505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610ffb57505f9050600361107a565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561104c573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611074575f6001925092505061107a565b91505f90505b94509492505050565b5f60208284031215611093575f5ffd5b5035919050565b6001600160a01b0381168114610ab4575f5ffd5b5f5f604083850312156110bf575f5ffd5b82356110ca8161109a565b946020939093013593505050565b5f5f604083850312156110e9575f5ffd5b82356110f48161109a565b915060208301356111048161109a565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b602081016002831061114357634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215611159575f5ffd5b813560ff81168114611169575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156111a7576111a7611170565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156111d6576111d6611170565b604052919050565b5f5f604083850312156111ef575f5ffd5b82356111fa8161109a565b9150602083013567ffffffffffffffff811115611215575f5ffd5b830160608186031215611226575f5ffd5b61122e611184565b813567ffffffffffffffff811115611244575f5ffd5b8201601f81018713611254575f5ffd5b803567ffffffffffffffff81111561126e5761126e611170565b611281601f8201601f19166020016111ad565b818152886020838501011115611295575f5ffd5b816020840160208301375f6020928201830152835283810135908301525060409182013591810191909152919491935090915050565b5f5f5f5f608085870312156112de575f5ffd5b84356112e98161109a565b935060208501356112f98161109a565b93969395505050506040820135916060013590565b5f6020828403121561131e575f5ffd5b81356111698161109a565b5f5f6020838503121561133a575f5ffd5b823567ffffffffffffffff811115611350575f5ffd5b8301601f81018513611360575f5ffd5b803567ffffffffffffffff811115611376575f5ffd5b856020828401011115611387575f5ffd5b6020919091019590945092505050565b5f602082840312156113a7575f5ffd5b81518015158114611169575f5ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f602082840312156113f4575f5ffd5b81516111698161109a565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611461575f5ffd5b505191905056fea26469706673582212200d219077ad00b3904b1ee68c8c21bfe61fc8d746d4290c353d60d175b877e06b64736f6c634300081b0033", + Bin: "0x610100604052348015610010575f5ffd5b5060405161172938038061172983398101604081905261002f91610204565b81816001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0524660c052610076610088565b60e052610081610131565b505061023c565b5f60c051461461012a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b5060e05190565b5f54610100900460ff161561019c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101eb575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610201575f5ffd5b50565b5f5f60408385031215610215575f5ffd5b8251610220816101ed565b6020840151909250610231816101ed565b809150509250929050565b60805160a05160c05160e05161149e61028b5f395f610e1d01525f610d5d01525f8181610340015261063d01525f818161021c015281816103d8015281816104ad0152610ac7015261149e5ff3fe608060405234801561000f575f5ffd5b506004361061013d575f3560e01c8063a364f4da116100b4578063dce974b911610079578063dce974b914610314578063df5cf7231461033b578063ec76f44214610362578063f2fde38b14610395578063f698da25146103a8578063fabc1cbc146103b0575f5ffd5b8063a364f4da1461028d578063a98fb355146102a0578063c825fe68146102b3578063cd6dc687146102da578063d79aceab146102ed575f5ffd5b80635c975abb116101055780635c975abb146101fd578063715018a61461020f578063886f1195146102175780638da5cb5b146102565780639926ee7d14610267578063a1060c881461027a575f5ffd5b8063136439dd14610141578063374823b51461015657806349075da314610198578063595c6a67146101d25780635ac86ab7146101da575b5f5ffd5b61015461014f366004611083565b6103c3565b005b6101836101643660046110ae565b609960209081525f928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6101c56101a63660046110d8565b609860209081525f928352604080842090915290825290205460ff1681565b60405161018f9190611123565b610154610498565b6101836101e8366004611149565b606654600160ff9092169190911b9081161490565b6066545b60405190815260200161018f565b610154610547565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161018f565b6033546001600160a01b031661023e565b6101546102753660046111de565b610558565b6102016102883660046112cb565b610777565b61015461029b36600461130e565b6107f6565b6101546102ae366004611329565b6108db565b6102017f809c5ac049c45b7a7f050a20f00c16cf63797efbf8b1eb8d749fdfa39ff8f92981565b6101546102e83660046110ae565b610922565b6102017fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102017f4ee65f64218c67b68da66fd0db16560040a6b973290b9e71912d661ee53fe49581565b61023e7f000000000000000000000000000000000000000000000000000000000000000081565b610154610370366004611083565b335f90815260996020908152604080832093835292905220805460ff19166001179055565b6101546103a336600461130e565b610a3e565b610201610ab7565b6101546103be366004611083565b610ac5565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610425573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104499190611397565b61046657604051631d77d47760e21b815260040160405180910390fd5b606654818116811461048b5760405163c61dca5d60e01b815260040160405180910390fd5b61049482610bd4565b5050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156104fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e9190611397565b61053b57604051631d77d47760e21b815260040160405180910390fd5b6105455f19610bd4565b565b61054f610c11565b6105455f610c6b565b6066545f906001908116036105805760405163840a48d560e01b815260040160405180910390fd5b6001335f9081526098602090815260408083206001600160a01b038816845290915290205460ff1660018111156105b9576105b961110f565b036105d757604051631aa528bb60e11b815260040160405180910390fd5b6001600160a01b0383165f90815260996020908152604080832085830151845290915290205460ff161561061e57604051630d4c4c9160e21b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015610682573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a69190611397565b6106c357604051639f88c8af60e01b815260040160405180910390fd5b6106e7836106db853386602001518760400151610777565b84516040860151610cbc565b6001600160a01b0383165f81815260996020908152604080832086830151845282528083208054600160ff19918216811790925533808652609885528386208787529094529382902080549094168117909355519092917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b419161076a9190611123565b60405180910390a3505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd60208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107ed9060c00160405160208183030381529060405280519060200120610d14565b95945050505050565b6066545f9060019081160361081e5760405163840a48d560e01b815260040160405180910390fd5b6001335f9081526098602090815260408083206001600160a01b038716845290915290205460ff1660018111156108575761085761110f565b14610875576040516352df45c960e01b815260040160405180910390fd5b335f8181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b41916108cf9190611123565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371383836040516109169291906113b6565b60405180910390a25050565b5f54610100900460ff161580801561094057505f54600160ff909116105b806109595750303b15801561095957505f5460ff166001145b6109c15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156109e2575f805461ff0019166101001790555b6109eb82610bd4565b6109f483610c6b565b8015610a39575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610a46610c11565b6001600160a01b038116610aab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b8565b610ab481610c6b565b50565b5f610ac0610d5a565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4591906113e4565b6001600160a01b0316336001600160a01b031614610b765760405163794821ff60e01b815260040160405180910390fd5b60665480198219811614610b9d5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610916565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6033546001600160a01b031633146105455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109b8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b42811015610cdd57604051630819bdcd60e01b815260040160405180910390fd5b610cf16001600160a01b0385168484610e3f565b610d0e57604051638baa579f60e01b815260040160405180910390fd5b50505050565b5f610d1d610d5a565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000004614610e1a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f5f5f610e4c8585610e9d565b90925090505f816004811115610e6457610e6461110f565b148015610e825750856001600160a01b0316826001600160a01b0316145b80610e935750610e93868686610edf565b9695505050505050565b5f5f8251604103610ed1576020830151604084015160608501515f1a610ec587828585610fc6565b94509450505050610ed8565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401610f079291906113ff565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f45919061143b565b5f60405180830381855afa9150503d805f8114610f7d576040519150601f19603f3d011682016040523d82523d5f602084013e610f82565b606091505b5091509150818015610f9657506020815110155b8015610e9357508051630b135d3f60e11b90610fbb9083016020908101908401611451565b149695505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610ffb57505f9050600361107a565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561104c573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611074575f6001925092505061107a565b91505f90505b94509492505050565b5f60208284031215611093575f5ffd5b5035919050565b6001600160a01b0381168114610ab4575f5ffd5b5f5f604083850312156110bf575f5ffd5b82356110ca8161109a565b946020939093013593505050565b5f5f604083850312156110e9575f5ffd5b82356110f48161109a565b915060208301356111048161109a565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b602081016002831061114357634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215611159575f5ffd5b813560ff81168114611169575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156111a7576111a7611170565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156111d6576111d6611170565b604052919050565b5f5f604083850312156111ef575f5ffd5b82356111fa8161109a565b9150602083013567ffffffffffffffff811115611215575f5ffd5b830160608186031215611226575f5ffd5b61122e611184565b813567ffffffffffffffff811115611244575f5ffd5b8201601f81018713611254575f5ffd5b803567ffffffffffffffff81111561126e5761126e611170565b611281601f8201601f19166020016111ad565b818152886020838501011115611295575f5ffd5b816020840160208301375f6020928201830152835283810135908301525060409182013591810191909152919491935090915050565b5f5f5f5f608085870312156112de575f5ffd5b84356112e98161109a565b935060208501356112f98161109a565b93969395505050506040820135916060013590565b5f6020828403121561131e575f5ffd5b81356111698161109a565b5f5f6020838503121561133a575f5ffd5b823567ffffffffffffffff811115611350575f5ffd5b8301601f81018513611360575f5ffd5b803567ffffffffffffffff811115611376575f5ffd5b856020828401011115611387575f5ffd5b6020919091019590945092505050565b5f602082840312156113a7575f5ffd5b81518015158114611169575f5ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f602082840312156113f4575f5ffd5b81516111698161109a565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611461575f5ffd5b505191905056fea2646970667358221220219cae31c41717666f7f1fa9b8ea165e86f87310d1edcf83a64ce0f1d1e989b764736f6c634300081b0033", } // AVSDirectoryABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/AllocationManager/binding.go b/pkg/bindings/AllocationManager/binding.go index 2585f8109..bd952c0aa 100644 --- a/pkg/bindings/AllocationManager/binding.go +++ b/pkg/bindings/AllocationManager/binding.go @@ -80,8 +80,8 @@ type OperatorSet struct { // AllocationManagerMetaData contains all meta data concerning the AllocationManager contract. var AllocationManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_DEALLOCATION_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_ALLOCATION_CONFIGURATION_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ALLOCATION_CONFIGURATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEALLOCATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"encumberedMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Empty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxStrategiesExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OutOfBounds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", - Bin: "0x610120604052348015610010575f5ffd5b50604051615abb380380615abb83398101604081905261002f91610180565b82858383876001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05263ffffffff91821660c0521660e052166101005261008b610095565b50505050506101e9565b5f54610100900460ff16156101005760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161461014f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610165575f5ffd5b50565b805163ffffffff8116811461017b575f5ffd5b919050565b5f5f5f5f5f60a08688031215610194575f5ffd5b855161019f81610151565b60208701519095506101b081610151565b60408701519094506101c181610151565b92506101cf60608701610168565b91506101dd60808701610168565b90509295509295909350565b60805160a05160c05160e0516101005161584161027a5f395f81816103f9015261374a01525f81816105480152613d4901525f818161031e01528181612290015261298701525f81816106fa01528181610cec0152818161163701528181611cd501528181611d3f0152612c4301525f818161056f0152818161079201528181611de401526133c101526158415ff3fe608060405234801561000f575f5ffd5b5060043610610281575f3560e01c80636e875dba11610156578063a984eb3a116100ca578063c221d8ae11610084578063c221d8ae146106bc578063cd6dc687146106cf578063d3d96ff4146106e2578063df5cf723146106f5578063f2fde38b1461071c578063fabc1cbc1461072f575f5ffd5b8063a984eb3a1461060e578063adc2e3d914610641578063b2447af714610654578063b66bd98914610667578063b9fbaed11461067a578063ba1a84e5146106a9575f5ffd5b80638ce648541161011b5780638ce64854146105915780638da5cb5b146105b157806394d7d00c146105c2578063952899ee146105d5578063a9333ec8146105e8578063a9821821146105fb575f5ffd5b80636e875dba14610515578063715018a61461052857806379ae50cd146105305780637bc1ef6114610543578063886f11951461056a575f5ffd5b80634657e26a116101f8578063595c6a67116101b2578063595c6a67146104875780635ac86ab71461048f5780635c975abb146104b2578063670d3ba2146104c45780636cfb4481146104d75780636e3492b514610502575f5ffd5b80634657e26a146103f45780634a10ffe51461041b5780634b5046ef1461043b57806350feea201461044e578063547afb871461046157806356c483e614610474575f5ffd5b80632981eb77116102495780632981eb77146103195780632bab2c4a14610355578063304c10cd1461037557806336352057146103a057806340120dab146103b35780634177a87c146103d4575f5ffd5b806310e1b9b814610285578063136439dd146102ae57806315fe5028146102c3578063260dc758146102e3578063261f84e014610306575b5f5ffd5b61029861029336600461476e565b610742565b6040516102a591906147b5565b60405180910390f35b6102c16102bc3660046147e8565b61077d565b005b6102d66102d13660046147ff565b610852565b6040516102a5919061487d565b6102f66102f136600461488f565b610969565b60405190151581526020016102a5565b6102c16103143660046148e9565b6109a0565b6103407f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102a5565b6103686103633660046149ce565b610c98565b6040516102a59190614a82565b6103886103833660046147ff565b610f85565b6040516001600160a01b0390911681526020016102a5565b6102c16103ae366004614ae5565b610fb4565b6103c66103c1366004614b37565b61178c565b6040516102a5929190614bc4565b6103e76103e236600461488f565b611907565b6040516102a59190614c21565b6103887f000000000000000000000000000000000000000000000000000000000000000081565b61042e610429366004614c33565b61192b565b6040516102a59190614c76565b6102c1610449366004614cc1565b6119d3565b6102c161045c366004614d41565b611a8d565b61042e61046f366004614d9f565b611c22565b6102c1610482366004614deb565b611cca565b6102c1611dcf565b6102f661049d366004614e1e565b606654600160ff9092169190911b9081161490565b6066545b6040519081526020016102a5565b6102f66104d2366004614e3e565b611e7e565b6104ea6104e5366004614b37565b611e8f565b6040516001600160401b0390911681526020016102a5565b6102c1610510366004614e7f565b611ffc565b6103e761052336600461488f565b6123cc565b6102c16123dd565b6102d661053e3660046147ff565b6123ee565b6103407f000000000000000000000000000000000000000000000000000000000000000081565b6103887f000000000000000000000000000000000000000000000000000000000000000081565b6105a461059f366004614eb0565b6124c8565b6040516102a59190614ef3565b6033546001600160a01b0316610388565b61042e6105d0366004614f05565b61258d565b6102c16105e3366004614f60565b612679565b6104ea6105f6366004614b37565b612b35565b6102c1610609366004615109565b612b64565b6104ea61061c366004614b37565b60a260209081525f92835260408084209091529082529020546001600160401b031681565b6102c161064f366004615187565b612bd4565b6104b661066236600461488f565b612f23565b6102c1610675366004614d41565b612f45565b61068d6106883660046147ff565b61309f565b60408051921515835263ffffffff9091166020830152016102a5565b6104b66106b73660046147ff565b613139565b6103e76106ca366004614e3e565b613159565b6102c16106dd3660046151c9565b61318a565b6102c16106f0366004614b37565b6132a7565b6103887f000000000000000000000000000000000000000000000000000000000000000081565b6102c161072a3660046147ff565b613346565b6102c161073d3660046147e8565b6133bf565b604080516060810182525f80825260208201819052918101829052906107718561076b866134d5565b85613538565b925050505b9392505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156107df573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080391906151f3565b61082057604051631d77d47760e21b815260040160405180910390fd5b60665481811681146108455760405163c61dca5d60e01b815260040160405180910390fd5b61084e826136a4565b5050565b6001600160a01b0381165f908152609d6020526040812060609190610876906136e1565b90505f816001600160401b0381111561089157610891614692565b6040519080825280602002602001820160405280156108d557816020015b604080518082019091525f80825260208201528152602001906001900390816108af5790505b5090505f5b82811015610961576001600160a01b0385165f908152609d6020526040902061093c9061090790836136ea565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b82828151811061094e5761094e615212565b60209081029190910101526001016108da565b509392505050565b60208082015182516001600160a01b03165f90815260989092526040822061099a9163ffffffff908116906136f516565b92915050565b826109aa8161370c565b6109c75760405163932d94f760e01b815260040160405180910390fd5b5f5b82811015610c915760218484838181106109e5576109e5615212565b90506020028101906109f79190615226565b610a05906020810190615244565b90501115610a26576040516301a1443960e31b815260040160405180910390fd5b5f6040518060400160405280876001600160a01b03168152602001868685818110610a5357610a53615212565b9050602002810190610a659190615226565b610a73906020810190615289565b63ffffffff168152509050610abd816020015163ffffffff1660985f896001600160a01b03166001600160a01b031681526020019081526020015f206137b690919063ffffffff16565b610ada57604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c6040518060400160405280886001600160a01b03168152602001836020015163ffffffff16815250604051610b3091906152a2565b60405180910390a15f610b42826134d5565b90505f5b868685818110610b5857610b58615212565b9050602002810190610b6a9190615226565b610b78906020810190615244565b9050811015610c8657610bee878786818110610b9657610b96615212565b9050602002810190610ba89190615226565b610bb6906020810190615244565b83818110610bc657610bc6615212565b9050602002016020810190610bdb91906147ff565b5f848152609960205260409020906137c1565b507f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83888887818110610c2357610c23615212565b9050602002810190610c359190615226565b610c43906020810190615244565b84818110610c5357610c53615212565b9050602002016020810190610c6891906147ff565b604051610c769291906152b0565b60405180910390a1600101610b46565b5050506001016109c9565b5050505050565b606083516001600160401b03811115610cb357610cb3614692565b604051908082528060200260200182016040528015610ce657816020015b6060815260200190600190039081610cd15790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b8152600401610d389291906152d6565b5f60405180830381865afa158015610d52573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d7991908101906152fa565b90505f5b8551811015610f7b575f868281518110610d9957610d99615212565b6020026020010151905085516001600160401b03811115610dbc57610dbc614692565b604051908082528060200260200182016040528015610de5578160200160208202803683370190505b50848381518110610df857610df8615212565b60209081029190910101525f5b8651811015610f71575f878281518110610e2157610e21615212565b6020908102919091018101516001600160a01b038086165f90815260a1845260408082209284168252919093528220909250610e5c906137d5565b9050806001600160401b03165f03610e75575050610f69565b5f610e81858d85610742565b90508863ffffffff16816040015163ffffffff1611158015610ea957505f8160200151600f0b125b15610ecb57610ebf815f015182602001516137e8565b6001600160401b031681525b80515f90610ee6906001600160401b039081169085166137fc565b9050610f2d81898981518110610efe57610efe615212565b60200260200101518781518110610f1757610f17615212565b602002602001015161381090919063ffffffff16565b898881518110610f3f57610f3f615212565b60200260200101518681518110610f5857610f58615212565b602002602001018181525050505050505b600101610e05565b5050600101610d7d565b5050949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610fad5780610776565b5090919050565b606654600190600290811603610fdd5760405163840a48d560e01b815260040160405180910390fd5b82610fe78161370c565b6110045760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280866001600160a01b031681526020018560200160208101906110329190615289565b63ffffffff16905290505f61105361104d60208701876147ff565b83613824565b60208084015184516001600160a01b03165f90815260989092526040909120919250611089919063ffffffff908116906136f516565b6110a657604051631fb1705560e21b815260040160405180910390fd5b806110c45760405163ebbff49760e01b815260040160405180910390fd5b5f6110d26040870187615244565b90506001600160401b038111156110eb576110eb614692565b604051908082528060200260200182016040528015611114578160200160208202803683370190505b5090505f5b6111266040880188615244565b905081101561171d578015806111b957506111446040880188615244565b61114f60018461541a565b81811061115e5761115e615212565b905060200201602081019061117391906147ff565b6001600160a01b03166111896040890189615244565b8381811061119957611199615212565b90506020020160208101906111ae91906147ff565b6001600160a01b0316115b6111d657604051639f1c805360e01b815260040160405180910390fd5b6111e36060880188615244565b828181106111f3576111f3615212565b905060200201355f1080156112335750670de0b6b3a76400006112196060890189615244565b8381811061122957611229615212565b9050602002013511155b61125057604051631353603160e01b815260040160405180910390fd5b6112ac6112606040890189615244565b8381811061127057611270615212565b905060200201602081019061128591906147ff565b60995f611291886134d5565b81526020019081526020015f2061389990919063ffffffff16565b6112c9576040516331bc342760e11b815260040160405180910390fd5b5f8061131b6112db60208b018b6147ff565b6112e4886134d5565b6112f160408d018d615244565b8781811061130157611301615212565b905060200201602081019061131691906147ff565b613538565b805191935091506001600160401b03165f03611338575050611715565b5f61137361134960608c018c615244565b8681811061135957611359615212565b85516001600160401b0316926020909102013590506138ba565b835190915061138e6001600160401b038084169083166137fc565b8686815181106113a0576113a0615212565b60200260200101818152505081835f018181516113bd919061542d565b6001600160401b03169052508351829085906113da90839061542d565b6001600160401b03169052506020840180518391906113fa90839061542d565b6001600160401b031690525060208301515f600f9190910b1215611515575f61145d61142960608e018e615244565b8881811061143957611439615212565b90506020020135856020015161144e9061544c565b6001600160801b0316906138ba565b9050806001600160401b03168460200181815161147a9190615470565b600f0b9052507f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd6114ae60208e018e6147ff565b8a8e80604001906114bf9190615244565b8a8181106114cf576114cf615212565b90506020020160208101906114e491906147ff565b6114f5885f015189602001516137e8565b886040015160405161150b95949392919061549d565b60405180910390a1505b61156761152560208d018d6147ff565b61152e8a6134d5565b61153b60408f018f615244565b8981811061154b5761154b615212565b905060200201602081019061156091906147ff565b87876138d0565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61159560208d018d6147ff565b896115a360408f018f615244565b898181106115b3576115b3615212565b90506020020160208101906115c891906147ff565b86516040516115dc9493929190439061549d565b60405180910390a161162d6115f460208d018d6147ff565b61160160408e018e615244565b8881811061161157611611615212565b905060200201602081019061162691906147ff565b8651613b10565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ee74937f61166960208e018e6147ff565b61167660408f018f615244565b8981811061168657611686615212565b905060200201602081019061169b91906147ff565b875160405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529290911660248301526001600160401b0380861660448401521660648201526084015f604051808303815f87803b1580156116fa575f5ffd5b505af115801561170c573d5f5f3e3d5ffd5b50505050505050505b600101611119565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe561174c60208801886147ff565b8461175a60408a018a615244565b8561176860808d018d6154ee565b60405161177b9796959493929190615558565b60405180910390a150505050505050565b6001600160a01b0382165f908152609d6020526040812060609182916117b1906136e1565b90505f816001600160401b038111156117cc576117cc614692565b60405190808252806020026020018201604052801561181057816020015b604080518082019091525f80825260208201528152602001906001900390816117ea5790505b5090505f826001600160401b0381111561182c5761182c614692565b60405190808252806020026020018201604052801561187557816020015b604080516060810182525f80825260208083018290529282015282525f1990920191018161184a5790505b5090505f5b838110156118f8576001600160a01b0388165f908152609d602052604081206118a79061090790846136ea565b9050808483815181106118bc576118bc615212565b60200260200101819052506118d289828a610742565b8383815181106118e4576118e4615212565b60209081029190910101525060010161187a565b509093509150505b9250929050565b60605f61077660995f611919866134d5565b81526020019081526020015f20613b92565b60605f83516001600160401b0381111561194757611947614692565b604051908082528060200260200182016040528015611970578160200160208202803683370190505b5090505f5b8451811015610961576119a185828151811061199357611993615212565b602002602001015185612b35565b8282815181106119b3576119b3615212565b6001600160401b0390921660209283029190910190910152600101611975565b6066545f906001908116036119fb5760405163840a48d560e01b815260040160405180910390fd5b838214611a1b576040516343714afd60e01b815260040160405180910390fd5b5f5b84811015611a8457611a7c87878784818110611a3b57611a3b615212565b9050602002016020810190611a5091906147ff565b868685818110611a6257611a62615212565b9050602002016020810190611a7791906155ee565b613b9e565b600101611a1d565b50505050505050565b83611a978161370c565b611ab45760405163932d94f760e01b815260040160405180910390fd5b604080518082019091526001600160a01b038616815263ffffffff851660208201525f611ae0826134d5565b5f8181526099602052604090209091506021908590611afe906136e1565b611b08919061560f565b1115611b27576040516301a1443960e31b815260040160405180910390fd5b6020808301516001600160a01b0389165f90815260989092526040909120611b589163ffffffff908116906136f516565b611b7557604051631fb1705560e21b815260040160405180910390fd5b5f5b84811015611c1857611b94868683818110610bc657610bc6615212565b611bb15760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83878784818110611be557611be5615212565b9050602002016020810190611bfa91906147ff565b604051611c089291906152b0565b60405180910390a1600101611b77565b5050505050505050565b60605f82516001600160401b03811115611c3e57611c3e614692565b604051908082528060200260200182016040528015611c67578160200160208202803683370190505b5090505f5b835181101561096157611c9885858381518110611c8b57611c8b615212565b6020026020010151612b35565b828281518110611caa57611caa615212565b6001600160401b0390921660209283029190910190910152600101611c6c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611dc557611d038261370c565b611d20576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611d84573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da891906151f3565b611dc55760405163ccea9e6f60e01b815260040160405180910390fd5b61084e8282613ca2565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611e31573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5591906151f3565b611e7257604051631d77d47760e21b815260040160405180910390fd5b611e7c5f196136a4565b565b5f61077683609a5f611291866134d5565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b0390911690600f81810b600160801b909204900b03825b81811015611fb9576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120611f219083613e43565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff16918101829052919250431015611f9c575050611fb9565b611faa8582602001516137e8565b94505050806001019050611ee9565b506001600160a01b038086165f90815260a1602090815260408083209388168352929052208290611fe9906137d5565b611ff3919061542d565b95945050505050565b6066546002906004908116036120255760405163840a48d560e01b815260040160405180910390fd5b61203a61203560208401846147ff565b61370c565b80612053575061205361203560408401602085016147ff565b612070576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b61207f6040840184615244565b9050811015612341575f60405180604001604052808560200160208101906120a791906147ff565b6001600160a01b031681526020016120c26040870187615244565b858181106120d2576120d2615212565b90506020020160208101906120e79190615289565b63ffffffff168152509050612134816020015163ffffffff1660985f87602001602081019061211691906147ff565b6001600160a01b0316815260208101919091526040015f20906136f5565b61215157604051631fb1705560e21b815260040160405180910390fd5b609e5f61216160208701876147ff565b6001600160a01b03166001600160a01b031681526020019081526020015f205f61218a836134d5565b815260208101919091526040015f205460ff166121ba576040516325131d4f60e01b815260040160405180910390fd5b6121f46121c6826134d5565b609c5f6121d660208901896147ff565b6001600160a01b0316815260208101919091526040015f2090613eb2565b5061222c61220560208601866147ff565b609a5f612211856134d5565b81526020019081526020015f20613ebd90919063ffffffff16565b5061223a60208501856147ff565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe8260405161227291906152a2565b60405180910390a2604080518082019091525f8152602081016122b57f000000000000000000000000000000000000000000000000000000000000000043615622565b63ffffffff169052609e5f6122cd60208801886147ff565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6122f6846134d5565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101612072565b5061235561038360408401602085016147ff565b6001600160a01b0316639d8e0c2361237060208501856147ff565b61237d6040860186615244565b6040518463ffffffff1660e01b815260040161239b93929190615677565b5f604051808303815f87803b1580156123b2575f5ffd5b505af19250505080156123c3575060015b1561084e575050565b606061099a609a5f611919856134d5565b6123e5613ed1565b611e7c5f613f2b565b6001600160a01b0381165f908152609c6020526040812060609190612412906136e1565b90505f816001600160401b0381111561242d5761242d614692565b60405190808252806020026020018201604052801561247157816020015b604080518082019091525f808252602082015281526020019060019003908161244b5790505b5090505f5b82811015610961576001600160a01b0385165f908152609c602052604090206124a39061090790836136ea565b8282815181106124b5576124b5615212565b6020908102919091010152600101612476565b60605f84516001600160401b038111156124e4576124e4614692565b60405190808252806020026020018201604052801561252d57816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816125025790505b5090505f5b85518110156125845761255f86828151811061255057612550615212565b60200260200101518686610742565b82828151811061257157612571615212565b6020908102919091010152600101612532565b50949350505050565b60605f83516001600160401b038111156125a9576125a9614692565b6040519080825280602002602001820160405280156125d2578160200160208202803683370190505b5090505f5b8451811015612584576001600160a01b0386165f90815260a16020526040812086516126479287929189908690811061261257612612615212565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20613f7c90919063ffffffff16565b82828151811061265957612659615212565b6001600160401b03909216602092830291909101909101526001016125d7565b6066545f906001908116036126a15760405163840a48d560e01b815260040160405180910390fd5b6126aa8361370c565b6126c7576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f6126d38661309f565b91509150816126f55760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610c915783818151811061271657612716615212565b6020026020010151604001515184828151811061273557612735615212565b6020026020010151602001515114612760576040516343714afd60e01b815260040160405180910390fd5b5f84828151811061277357612773615212565b602090810291909101810151518082015181516001600160a01b03165f908152609890935260409092209092506127b39163ffffffff908116906136f516565b6127d057604051631fb1705560e21b815260040160405180910390fd5b5f6127db8783613824565b90505f5b8684815181106127f1576127f1615212565b60200260200101516020015151811015612b2a575f87858151811061281857612818615212565b602002602001015160200151828151811061283557612835615212565b6020026020010151905061284c898261ffff613b9e565b5f5f61285b8b61076b886134d5565b915091508060200151600f0b5f1461288657604051630d8fcbe360e41b815260040160405180910390fd5b5f61289387858489613f90565b90506128d8825f01518c8a815181106128ae576128ae615212565b60200260200101516040015187815181106128cb576128cb615212565b6020026020010151613fc6565b600f0b602083018190525f0361290157604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b1215612a3a5780156129bc57612982612922886134d5565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b6129ac7f000000000000000000000000000000000000000000000000000000000000000043615622565b63ffffffff166040830152612aa7565b6129ce836020015183602001516137e8565b6001600160401b031660208401528a518b90899081106129f0576129f0615212565b6020026020010151604001518581518110612a0d57612a0d615212565b6020908102919091018101516001600160401b031683525f9083015263ffffffff43166040830152612aa7565b5f8260200151600f0b1315612aa757612a5b836020015183602001516137e8565b6001600160401b039081166020850181905284519091161015612a9157604051636c9be0bf60e01b815260040160405180910390fd5b612a9b8943615622565b63ffffffff1660408301525b612abc8c612ab4896134d5565b8686866138d0565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd8c612aea6109078a6134d5565b86612afc865f015187602001516137e8565b8660400151604051612b1295949392919061549d565b60405180910390a15050600190920191506127df9050565b5050506001016126fb565b6001600160a01b038083165f90815260a1602090815260408083209385168352929052908120610776906137d5565b82612b6e8161370c565b612b8b5760405163932d94f760e01b815260040160405180910390fd5b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138484604051612bc692919061569b565b60405180910390a250505050565b606654600290600490811603612bfd5760405163840a48d560e01b815260040160405180910390fd5b82612c078161370c565b612c245760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015612c88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cac91906151f3565b612cc95760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b612cd86020850185615244565b9050811015612ea057604080518082019091525f9080612cfb60208801886147ff565b6001600160a01b03168152602001868060200190612d199190615244565b85818110612d2957612d29615212565b9050602002016020810190612d3e9190615289565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612d7a9291908116906136f516565b612d9757604051631fb1705560e21b815260040160405180910390fd5b612da18682613824565b15612dbf57604051636c6c6e2760e11b815260040160405180910390fd5b612de8612dcb826134d5565b6001600160a01b0388165f908152609c60205260409020906137b6565b50612e1486609a5f612df9856134d5565b81526020019081526020015f206137c190919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e82604051612e4e91906152a2565b60405180910390a26001600160a01b0386165f908152609e60205260408120600191612e79846134d5565b815260208101919091526040015f20805460ff191691151591909117905550600101612ccb565b50612eb161038360208501856147ff565b6001600160a01b031663adcf73f785612ecd6020870187615244565b612eda60408901896154ee565b6040518663ffffffff1660e01b8152600401612efa9594939291906156ae565b5f604051808303815f87803b158015612f11575f5ffd5b505af1158015611c18573d5f5f3e3d5ffd5b5f61099a609a5f612f33856134d5565b81526020019081526020015f206136e1565b83612f4f8161370c565b612f6c5760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f93845260989052939091209192612fab92916136f516565b612fc857604051631fb1705560e21b815260040160405180910390fd5b5f612fd2826134d5565b90505f5b84811015611c185761301b868683818110612ff357612ff3615212565b905060200201602081019061300891906147ff565b5f84815260996020526040902090613ebd565b613038576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee8387878481811061306c5761306c615212565b905060200201602081019061308191906147ff565b60405161308f9291906152b0565b60405180910390a1600101612fd6565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052650100000000008304821694840194909452600160481b9091041660608201819052849391929190158015906131205750826060015163ffffffff164310155b1561312f575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061099a906136e1565b6001600160a01b0382165f908152609f60205260408120606091906131829082611919866134d5565b949350505050565b5f54610100900460ff16158080156131a857505f54600160ff909116105b806131c15750303b1580156131c157505f5460ff166001145b6132295760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561324a575f805461ff0019166101001790555b613253826136a4565b61325c83613f2b565b80156132a2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050565b816132b18161370c565b6132ce5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf858361332681610f85565b604080516001600160a01b03938416815292909116602083015201613299565b61334e613ed1565b6001600160a01b0381166133b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401613220565b6133bc81613f2b565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561341b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343f91906156f1565b6001600160a01b0316336001600160a01b0316146134705760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146134975760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f815f0151826020015163ffffffff1660405160200161352092919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261099a9061570c565b6040805180820182525f80825260208083018290528351606081018552828152808201839052808501839052845180860186526001600160a01b03898116855260a1845286852090881685529092529382209293928190613598906137d5565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff1691810182905291925043101561363a57909250905061369c565b61364b815f015182602001516137e8565b6001600160401b0316815260208101515f600f9190910b12156136895761367a826020015182602001516137e8565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f61099a825490565b5f6107768383613fdd565b5f8181526001830160205260408120541515610776565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015613792573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099a91906151f3565b5f6107768383614003565b5f610776836001600160a01b038416614003565b5f61099a82670de0b6b3a764000061404f565b5f610776826001600160401b038516615470565b5f61077683670de0b6b3a764000084614093565b5f6107768383670de0b6b3a7640000614093565b6001600160a01b0382165f908152609e60205260408120819081613847856134d5565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff169282019290925291508061318257506020015163ffffffff1643109392505050565b6001600160a01b0381165f9081526001830160205260408120541515610776565b5f6107768383670de0b6b3a76400006001614178565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b0390811691161461399657602082810180516001600160a01b038881165f81815260a286526040808220938a1680835293875290819020805467ffffffffffffffff19166001600160401b0395861617905593518451918252948101919091529216908201527facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc559060600160405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b15613a78576001600160a01b0385165f908152609f602090815260408083208784529091529020613a5090846137c1565b506001600160a01b0385165f908152609d60205260409020613a7290856137b6565b50610c91565b80516001600160401b03165f03610c91576001600160a01b0385165f908152609f602090815260408083208784529091529020613ab59084613ebd565b506001600160a01b0385165f908152609f602090815260408083208784529091529020613ae1906136e1565b5f03610c91576001600160a01b0385165f908152609d60205260409020613b089085613eb2565b505050505050565b6001600160a01b038084165f90815260a160209081526040808320938616835292905220613b3f9043836141d1565b604080516001600160a01b038086168252841660208201526001600160401b038316918101919091527f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c90606001613299565b60605f610776836141e5565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f81118015613be857508261ffff1682105b15610c91576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613c1c9061423e565b90505f5f613c2b888489613538565b91509150806040015163ffffffff16431015613c4957505050610c91565b613c5688848985856138d0565b6001600160a01b038089165f90815260a360209081526040808320938b16835292905220613c8390614290565b50613c8d8561572f565b9450613c9884615747565b9350505050613bd6565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352650100000000008104831693820193909352600160481b909204166060820181905215801590613d1e5750806060015163ffffffff164310155b15613d3857604081015163ffffffff168152600160208201525b63ffffffff82166040820152613d6e7f000000000000000000000000000000000000000000000000000000000000000043615622565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff0000000000191665010000000000978916979097026cffffffff000000000000000000191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db9101613299565b5f5f613e65613e518461430d565b8554613e609190600f0b61575c565b61437a565b8454909150600160801b9004600f90810b9082900b12613e9857604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f61077683836143e3565b5f610776836001600160a01b0384166143e3565b6033546001600160a01b03163314611e7c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401613220565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6107768383670de0b6b3a76400006144c6565b5f613fa18460995f611291896134d5565b8015613faa5750815b8015611ff357505090516001600160401b031615159392505050565b5f6107766001600160401b03808516908416615783565b5f825f018281548110613ff257613ff2615212565b905f5260205f200154905092915050565b5f81815260018301602052604081205461404857508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561099a565b505f61099a565b81545f90801561408b576140758461406860018461541a565b5f91825260209091200190565b54600160201b90046001600160e01b0316613182565b509092915050565b5f80805f19858709858702925082811083820303915050805f036140ca578382816140c0576140c06157b0565b0492505050610776565b8084116141115760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401613220565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f5f614185868686614093565b9050600183600281111561419b5761419b6157c4565b1480156141b757505f84806141b2576141b26157b0565b868809115b15611ff3576141c760018261560f565b9695505050505050565b6132a283836001600160401b03841661450e565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561423257602002820191905f5260205f20905b81548152602001906001019080831161421e575b50505050509050919050565b5f6142588254600f81810b600160801b909204900b131590565b1561427657604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6142aa8254600f81810b600160801b909204900b131590565b156142c857604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b5f6001600160ff1b038211156143765760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401613220565b5090565b80600f81900b81146143de5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401613220565b919050565b5f81815260018301602052604081205480156144bd575f61440560018361541a565b85549091505f906144189060019061541a565b9050818114614477575f865f01828154811061443657614436615212565b905f5260205f200154905080875f01848154811061445657614456615212565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080614488576144886157d8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061099a565b5f91505061099a565b82545f90816144d786868385614611565b90508015614504576144ee8661406860018461541a565b54600160201b90046001600160e01b0316610771565b5091949350505050565b825480156145c4575f6145268561406860018561541a565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090851610156145785760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff8086169116036145c257826145998661406860018661541a565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f5b81831015610961575f6146268484614664565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156146505780925061465e565b61465b81600161560f565b93505b50614613565b5f61467260028484186157ec565b6107769084841661560f565b6001600160a01b03811681146133bc575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156146c8576146c8614692565b60405290565b604051601f8201601f191681016001600160401b03811182821017156146f6576146f6614692565b604052919050565b803563ffffffff811681146143de575f5ffd5b5f60408284031215614721575f5ffd5b604080519081016001600160401b038111828210171561474357614743614692565b60405290508082356147548161467e565b8152614762602084016146fe565b60208201525092915050565b5f5f5f60808486031215614780575f5ffd5b833561478b8161467e565b925061479a8560208601614711565b915060608401356147aa8161467e565b809150509250925092565b81516001600160401b03168152602080830151600f0b9082015260408083015163ffffffff16908201526060810161099a565b5f602082840312156147f8575f5ffd5b5035919050565b5f6020828403121561480f575f5ffd5b81356107768161467e565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b828110156148735761485d86835161481a565b604095909501946020919091019060010161484a565b5093949350505050565b602081525f6107766020830184614838565b5f6040828403121561489f575f5ffd5b6107768383614711565b5f5f83601f8401126148b9575f5ffd5b5081356001600160401b038111156148cf575f5ffd5b6020830191508360208260051b8501011115611900575f5ffd5b5f5f5f604084860312156148fb575f5ffd5b83356149068161467e565b925060208401356001600160401b03811115614920575f5ffd5b61492c868287016148a9565b9497909650939450505050565b5f6001600160401b0382111561495157614951614692565b5060051b60200190565b5f82601f83011261496a575f5ffd5b813561497d61497882614939565b6146ce565b8082825260208201915060208360051b86010192508583111561499e575f5ffd5b602085015b838110156149c45780356149b68161467e565b8352602092830192016149a3565b5095945050505050565b5f5f5f5f60a085870312156149e1575f5ffd5b6149eb8686614711565b935060408501356001600160401b03811115614a05575f5ffd5b614a118782880161495b565b93505060608501356001600160401b03811115614a2c575f5ffd5b614a388782880161495b565b925050614a47608086016146fe565b905092959194509250565b5f8151808452602084019350602083015f5b82811015614873578151865260209586019590910190600101614a64565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614ad957603f19878603018452614ac4858351614a52565b94506020938401939190910190600101614aa8565b50929695505050505050565b5f5f60408385031215614af6575f5ffd5b8235614b018161467e565b915060208301356001600160401b03811115614b1b575f5ffd5b830160a08186031215614b2c575f5ffd5b809150509250929050565b5f5f60408385031215614b48575f5ffd5b8235614b538161467e565b91506020830135614b2c8161467e565b5f8151808452602084019350602083015f5b8281101561487357614bae86835180516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060959095019460209190910190600101614b75565b604081525f614bd66040830185614838565b8281036020840152611ff38185614b63565b5f8151808452602084019350602083015f5b828110156148735781516001600160a01b0316865260209586019590910190600101614bfa565b602081525f6107766020830184614be8565b5f5f60408385031215614c44575f5ffd5b82356001600160401b03811115614c59575f5ffd5b614c658582860161495b565b9250506020830135614b2c8161467e565b602080825282518282018190525f918401906040840190835b81811015614cb65783516001600160401b0316835260209384019390920191600101614c8f565b509095945050505050565b5f5f5f5f5f60608688031215614cd5575f5ffd5b8535614ce08161467e565b945060208601356001600160401b03811115614cfa575f5ffd5b614d06888289016148a9565b90955093505060408601356001600160401b03811115614d24575f5ffd5b614d30888289016148a9565b969995985093965092949392505050565b5f5f5f5f60608587031215614d54575f5ffd5b8435614d5f8161467e565b9350614d6d602086016146fe565b925060408501356001600160401b03811115614d87575f5ffd5b614d93878288016148a9565b95989497509550505050565b5f5f60408385031215614db0575f5ffd5b8235614dbb8161467e565b915060208301356001600160401b03811115614dd5575f5ffd5b614de18582860161495b565b9150509250929050565b5f5f60408385031215614dfc575f5ffd5b8235614e078161467e565b9150614e15602084016146fe565b90509250929050565b5f60208284031215614e2e575f5ffd5b813560ff81168114610776575f5ffd5b5f5f60608385031215614e4f575f5ffd5b8235614e5a8161467e565b9150614e158460208501614711565b5f60608284031215614e79575f5ffd5b50919050565b5f60208284031215614e8f575f5ffd5b81356001600160401b03811115614ea4575f5ffd5b61318284828501614e69565b5f5f5f60808486031215614ec2575f5ffd5b83356001600160401b03811115614ed7575f5ffd5b614ee38682870161495b565b93505061479a8560208601614711565b602081525f6107766020830184614b63565b5f5f5f60608486031215614f17575f5ffd5b8335614f228161467e565b925060208401356001600160401b03811115614f3c575f5ffd5b614f488682870161495b565b925050614f57604085016146fe565b90509250925092565b5f5f60408385031215614f71575f5ffd5b8235614f7c8161467e565b915060208301356001600160401b03811115614f96575f5ffd5b8301601f81018513614fa6575f5ffd5b8035614fb461497882614939565b8082825260208201915060208360051b850101925087831115614fd5575f5ffd5b602084015b838110156150fa5780356001600160401b03811115614ff7575f5ffd5b85016080818b03601f1901121561500c575f5ffd5b6150146146a6565b6150218b60208401614711565b815260608201356001600160401b0381111561503b575f5ffd5b61504a8c60208386010161495b565b60208301525060808201356001600160401b03811115615068575f5ffd5b6020818401019250508a601f83011261507f575f5ffd5b813561508d61497882614939565b8082825260208201915060208360051b86010192508d8311156150ae575f5ffd5b6020850194505b828510156150e45784356001600160401b03811681146150d3575f5ffd5b8252602094850194909101906150b5565b6040840152505084525060209283019201614fda565b50809450505050509250929050565b5f5f5f6040848603121561511b575f5ffd5b83356151268161467e565b925060208401356001600160401b03811115615140575f5ffd5b8401601f81018613615150575f5ffd5b80356001600160401b03811115615165575f5ffd5b866020828401011115615176575f5ffd5b939660209190910195509293505050565b5f5f60408385031215615198575f5ffd5b82356151a38161467e565b915060208301356001600160401b038111156151bd575f5ffd5b614de185828601614e69565b5f5f604083850312156151da575f5ffd5b82356151e58161467e565b946020939093013593505050565b5f60208284031215615203575f5ffd5b81518015158114610776575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235603e1983360301811261523a575f5ffd5b9190910192915050565b5f5f8335601e19843603018112615259575f5ffd5b8301803591506001600160401b03821115615272575f5ffd5b6020019150600581901b3603821315611900575f5ffd5b5f60208284031215615299575f5ffd5b610776826146fe565b6040810161099a828461481a565b606081016152be828561481a565b6001600160a01b039290921660409190910152919050565b604081525f6152e86040830185614be8565b8281036020840152611ff38185614be8565b5f6020828403121561530a575f5ffd5b81516001600160401b0381111561531f575f5ffd5b8201601f8101841361532f575f5ffd5b805161533d61497882614939565b8082825260208201915060208360051b85010192508683111561535e575f5ffd5b602084015b838110156153fb5780516001600160401b03811115615380575f5ffd5b8501603f81018913615390575f5ffd5b60208101516153a161497882614939565b808282526020820191506020808460051b8601010192508b8311156153c4575f5ffd5b6040840193505b828410156153e65783518252602093840193909101906153cb565b86525050602093840193919091019050615363565b509695505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561099a5761099a615406565b6001600160401b03828116828216039081111561099a5761099a615406565b5f81600f0b60016001607f1b0319810361546857615468615406565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b03198212171561099a5761099a615406565b6001600160a01b038616815260c081016154ba602083018761481a565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b5f5f8335601e19843603018112615503575f5ffd5b8301803591506001600160401b0382111561551c575f5ffd5b602001915036819003821315611900575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03881681525f60c08201615576602084018a61481a565b60c060608401528690528660e083015f5b888110156155b757823561559a8161467e565b6001600160a01b0316825260209283019290910190600101615587565b5083810360808501526155ca8188614a52565b91505082810360a08401526155e0818587615530565b9a9950505050505050505050565b5f602082840312156155fe575f5ffd5b813561ffff81168114610776575f5ffd5b8082018082111561099a5761099a615406565b63ffffffff818116838216019081111561099a5761099a615406565b8183526020830192505f815f5b848110156148735763ffffffff615661836146fe565b168652602095860195919091019060010161564b565b6001600160a01b03841681526040602082018190525f90611ff3908301848661563e565b602081525f613182602083018486615530565b6001600160a01b03861681526060602082018190525f906156d2908301868861563e565b82810360408401526156e5818587615530565b98975050505050505050565b5f60208284031215615701575f5ffd5b81516107768161467e565b80516020808301519190811015614e79575f1960209190910360031b1b16919050565b5f6001820161574057615740615406565b5060010190565b5f8161575557615755615406565b505f190190565b8082018281125f83128015821682158216171561577b5761577b615406565b505092915050565b600f82810b9082900b0360016001607f1b0319811260016001607f1b038213171561099a5761099a615406565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f8261580657634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212202c0f483a478d14f76ed057d28cec9d6ef94a45015cd283d99238b804b9741b8264736f6c634300081b0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_DEALLOCATION_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_ALLOCATION_CONFIGURATION_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ALLOCATION_CONFIGURATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEALLOCATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"encumberedMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Empty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OutOfBounds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", + Bin: "0x610120604052348015610010575f5ffd5b50604051615a75380380615a7583398101604081905261002f91610180565b82858383876001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05263ffffffff91821660c0521660e052166101005261008b610095565b50505050506101e9565b5f54610100900460ff16156101005760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161461014f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610165575f5ffd5b50565b805163ffffffff8116811461017b575f5ffd5b919050565b5f5f5f5f5f60a08688031215610194575f5ffd5b855161019f81610151565b60208701519095506101b081610151565b60408701519094506101c181610151565b92506101cf60608701610168565b91506101dd60808701610168565b90509295509295909350565b60805160a05160c05160e051610100516157fb61027a5f395f81816103f9015261370301525f81816105480152613d0301525f818161031e0152818161223e015261293501525f81816106fa01528181610c970152818161161c01528181611c8301528181611ced0152612bfc01525f818161056f0152818161079201528181611d92015261337a01526157fb5ff3fe608060405234801561000f575f5ffd5b5060043610610281575f3560e01c80636e875dba11610156578063a984eb3a116100ca578063c221d8ae11610084578063c221d8ae146106bc578063cd6dc687146106cf578063d3d96ff4146106e2578063df5cf723146106f5578063f2fde38b1461071c578063fabc1cbc1461072f575f5ffd5b8063a984eb3a1461060e578063adc2e3d914610641578063b2447af714610654578063b66bd98914610667578063b9fbaed11461067a578063ba1a84e5146106a9575f5ffd5b80638ce648541161011b5780638ce64854146105915780638da5cb5b146105b157806394d7d00c146105c2578063952899ee146105d5578063a9333ec8146105e8578063a9821821146105fb575f5ffd5b80636e875dba14610515578063715018a61461052857806379ae50cd146105305780637bc1ef6114610543578063886f11951461056a575f5ffd5b80634657e26a116101f8578063595c6a67116101b2578063595c6a67146104875780635ac86ab71461048f5780635c975abb146104b2578063670d3ba2146104c45780636cfb4481146104d75780636e3492b514610502575f5ffd5b80634657e26a146103f45780634a10ffe51461041b5780634b5046ef1461043b57806350feea201461044e578063547afb871461046157806356c483e614610474575f5ffd5b80632981eb77116102495780632981eb77146103195780632bab2c4a14610355578063304c10cd1461037557806336352057146103a057806340120dab146103b35780634177a87c146103d4575f5ffd5b806310e1b9b814610285578063136439dd146102ae57806315fe5028146102c3578063260dc758146102e3578063261f84e014610306575b5f5ffd5b610298610293366004614728565b610742565b6040516102a5919061476f565b60405180910390f35b6102c16102bc3660046147a2565b61077d565b005b6102d66102d13660046147b9565b610852565b6040516102a59190614837565b6102f66102f1366004614849565b610969565b60405190151581526020016102a5565b6102c16103143660046148a3565b6109a0565b6103407f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102a5565b610368610363366004614988565b610c43565b6040516102a59190614a3c565b6103886103833660046147b9565b610f30565b6040516001600160a01b0390911681526020016102a5565b6102c16103ae366004614a9f565b610f5f565b6103c66103c1366004614af1565b611771565b6040516102a5929190614b7e565b6103e76103e2366004614849565b6118ec565b6040516102a59190614bdb565b6103887f000000000000000000000000000000000000000000000000000000000000000081565b61042e610429366004614bed565b611910565b6040516102a59190614c30565b6102c1610449366004614c7b565b6119b8565b6102c161045c366004614cfb565b611a72565b61042e61046f366004614d59565b611bd0565b6102c1610482366004614da5565b611c78565b6102c1611d7d565b6102f661049d366004614dd8565b606654600160ff9092169190911b9081161490565b6066545b6040519081526020016102a5565b6102f66104d2366004614df8565b611e2c565b6104ea6104e5366004614af1565b611e3d565b6040516001600160401b0390911681526020016102a5565b6102c1610510366004614e39565b611faa565b6103e7610523366004614849565b61237a565b6102c161238b565b6102d661053e3660046147b9565b61239c565b6103407f000000000000000000000000000000000000000000000000000000000000000081565b6103887f000000000000000000000000000000000000000000000000000000000000000081565b6105a461059f366004614e6a565b612476565b6040516102a59190614ead565b6033546001600160a01b0316610388565b61042e6105d0366004614ebf565b61253b565b6102c16105e3366004614f1a565b612627565b6104ea6105f6366004614af1565b612aee565b6102c16106093660046150c3565b612b1d565b6104ea61061c366004614af1565b60a260209081525f92835260408084209091529082529020546001600160401b031681565b6102c161064f366004615141565b612b8d565b6104b6610662366004614849565b612edc565b6102c1610675366004614cfb565b612efe565b61068d6106883660046147b9565b613058565b60408051921515835263ffffffff9091166020830152016102a5565b6104b66106b73660046147b9565b6130f2565b6103e76106ca366004614df8565b613112565b6102c16106dd366004615183565b613143565b6102c16106f0366004614af1565b613260565b6103887f000000000000000000000000000000000000000000000000000000000000000081565b6102c161072a3660046147b9565b6132ff565b6102c161073d3660046147a2565b613378565b604080516060810182525f80825260208201819052918101829052906107718561076b8661348e565b856134f1565b925050505b9392505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156107df573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080391906151ad565b61082057604051631d77d47760e21b815260040160405180910390fd5b60665481811681146108455760405163c61dca5d60e01b815260040160405180910390fd5b61084e8261365d565b5050565b6001600160a01b0381165f908152609d60205260408120606091906108769061369a565b90505f816001600160401b038111156108915761089161464c565b6040519080825280602002602001820160405280156108d557816020015b604080518082019091525f80825260208201528152602001906001900390816108af5790505b5090505f5b82811015610961576001600160a01b0385165f908152609d6020526040902061093c9061090790836136a3565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b82828151811061094e5761094e6151cc565b60209081029190910101526001016108da565b509392505050565b60208082015182516001600160a01b03165f90815260989092526040822061099a9163ffffffff908116906136ae16565b92915050565b826109aa816136c5565b6109c75760405163932d94f760e01b815260040160405180910390fd5b5f5b82811015610c3c575f6040518060400160405280876001600160a01b031681526020018686858181106109fe576109fe6151cc565b9050602002810190610a1091906151e0565b610a1e9060208101906151fe565b63ffffffff168152509050610a68816020015163ffffffff1660985f896001600160a01b03166001600160a01b031681526020019081526020015f2061376f90919063ffffffff16565b610a8557604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c6040518060400160405280886001600160a01b03168152602001836020015163ffffffff16815250604051610adb9190615217565b60405180910390a15f610aed8261348e565b90505f5b868685818110610b0357610b036151cc565b9050602002810190610b1591906151e0565b610b23906020810190615225565b9050811015610c3157610b99878786818110610b4157610b416151cc565b9050602002810190610b5391906151e0565b610b61906020810190615225565b83818110610b7157610b716151cc565b9050602002016020810190610b8691906147b9565b5f8481526099602052604090209061377a565b507f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83888887818110610bce57610bce6151cc565b9050602002810190610be091906151e0565b610bee906020810190615225565b84818110610bfe57610bfe6151cc565b9050602002016020810190610c1391906147b9565b604051610c2192919061526a565b60405180910390a1600101610af1565b5050506001016109c9565b5050505050565b606083516001600160401b03811115610c5e57610c5e61464c565b604051908082528060200260200182016040528015610c9157816020015b6060815260200190600190039081610c7c5790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b8152600401610ce3929190615290565b5f60405180830381865afa158015610cfd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d2491908101906152b4565b90505f5b8551811015610f26575f868281518110610d4457610d446151cc565b6020026020010151905085516001600160401b03811115610d6757610d6761464c565b604051908082528060200260200182016040528015610d90578160200160208202803683370190505b50848381518110610da357610da36151cc565b60209081029190910101525f5b8651811015610f1c575f878281518110610dcc57610dcc6151cc565b6020908102919091018101516001600160a01b038086165f90815260a1845260408082209284168252919093528220909250610e079061378e565b9050806001600160401b03165f03610e20575050610f14565b5f610e2c858d85610742565b90508863ffffffff16816040015163ffffffff1611158015610e5457505f8160200151600f0b125b15610e7657610e6a815f015182602001516137a1565b6001600160401b031681525b80515f90610e91906001600160401b039081169085166137b5565b9050610ed881898981518110610ea957610ea96151cc565b60200260200101518781518110610ec257610ec26151cc565b60200260200101516137c990919063ffffffff16565b898881518110610eea57610eea6151cc565b60200260200101518681518110610f0357610f036151cc565b602002602001018181525050505050505b600101610db0565b5050600101610d28565b5050949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610f585780610776565b5090919050565b606654600190600290811603610f885760405163840a48d560e01b815260040160405180910390fd5b82610f92816136c5565b610faf5760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280866001600160a01b03168152602001856020016020810190610fdd91906151fe565b63ffffffff16905290505f610ffe610ff860208701876147b9565b836137dd565b905061100d6060860186615225565b905061101c6040870187615225565b90501461103c576040516343714afd60e01b815260040160405180910390fd5b60208083015183516001600160a01b03165f9081526098909252604090912061106e9163ffffffff908116906136ae16565b61108b57604051631fb1705560e21b815260040160405180910390fd5b806110a95760405163ebbff49760e01b815260040160405180910390fd5b5f6110b76040870187615225565b90506001600160401b038111156110d0576110d061464c565b6040519080825280602002602001820160405280156110f9578160200160208202803683370190505b5090505f5b61110b6040880188615225565b90508110156117025780158061119e57506111296040880188615225565b6111346001846153d4565b818110611143576111436151cc565b905060200201602081019061115891906147b9565b6001600160a01b031661116e6040890189615225565b8381811061117e5761117e6151cc565b905060200201602081019061119391906147b9565b6001600160a01b0316115b6111bb57604051639f1c805360e01b815260040160405180910390fd5b6111c86060880188615225565b828181106111d8576111d86151cc565b905060200201355f1080156112185750670de0b6b3a76400006111fe6060890189615225565b8381811061120e5761120e6151cc565b9050602002013511155b61123557604051631353603160e01b815260040160405180910390fd5b6112916112456040890189615225565b83818110611255576112556151cc565b905060200201602081019061126a91906147b9565b60995f6112768861348e565b81526020019081526020015f2061385390919063ffffffff16565b6112ae576040516331bc342760e11b815260040160405180910390fd5b5f806113006112c060208b018b6147b9565b6112c98861348e565b6112d660408d018d615225565b878181106112e6576112e66151cc565b90506020020160208101906112fb91906147b9565b6134f1565b805191935091506001600160401b03165f0361131d5750506116fa565b5f61135861132e60608c018c615225565b8681811061133e5761133e6151cc565b85516001600160401b031692602090910201359050613874565b83519091506113736001600160401b038084169083166137b5565b868681518110611385576113856151cc565b60200260200101818152505081835f018181516113a291906153e7565b6001600160401b03169052508351829085906113bf9083906153e7565b6001600160401b03169052506020840180518391906113df9083906153e7565b6001600160401b031690525060208301515f600f9190910b12156114fa575f61144261140e60608e018e615225565b8881811061141e5761141e6151cc565b90506020020135856020015161143390615406565b6001600160801b031690613874565b9050806001600160401b03168460200181815161145f919061542a565b600f0b9052507f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61149360208e018e6147b9565b8a8e80604001906114a49190615225565b8a8181106114b4576114b46151cc565b90506020020160208101906114c991906147b9565b6114da885f015189602001516137a1565b88604001516040516114f0959493929190615457565b60405180910390a1505b61154c61150a60208d018d6147b9565b6115138a61348e565b61152060408f018f615225565b89818110611530576115306151cc565b905060200201602081019061154591906147b9565b878761388a565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61157a60208d018d6147b9565b8961158860408f018f615225565b89818110611598576115986151cc565b90506020020160208101906115ad91906147b9565b86516040516115c194939291904390615457565b60405180910390a16116126115d960208d018d6147b9565b6115e660408e018e615225565b888181106115f6576115f66151cc565b905060200201602081019061160b91906147b9565b8651613aca565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663ee74937f61164e60208e018e6147b9565b61165b60408f018f615225565b8981811061166b5761166b6151cc565b905060200201602081019061168091906147b9565b875160405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529290911660248301526001600160401b0380861660448401521660648201526084015f604051808303815f87803b1580156116df575f5ffd5b505af11580156116f1573d5f5f3e3d5ffd5b50505050505050505b6001016110fe565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe561173160208801886147b9565b8461173f60408a018a615225565b8561174d60808d018d6154a8565b6040516117609796959493929190615512565b60405180910390a150505050505050565b6001600160a01b0382165f908152609d6020526040812060609182916117969061369a565b90505f816001600160401b038111156117b1576117b161464c565b6040519080825280602002602001820160405280156117f557816020015b604080518082019091525f80825260208201528152602001906001900390816117cf5790505b5090505f826001600160401b038111156118115761181161464c565b60405190808252806020026020018201604052801561185a57816020015b604080516060810182525f80825260208083018290529282015282525f1990920191018161182f5790505b5090505f5b838110156118dd576001600160a01b0388165f908152609d6020526040812061188c9061090790846136a3565b9050808483815181106118a1576118a16151cc565b60200260200101819052506118b789828a610742565b8383815181106118c9576118c96151cc565b60209081029190910101525060010161185f565b509093509150505b9250929050565b60605f61077660995f6118fe8661348e565b81526020019081526020015f20613b4c565b60605f83516001600160401b0381111561192c5761192c61464c565b604051908082528060200260200182016040528015611955578160200160208202803683370190505b5090505f5b845181101561096157611986858281518110611978576119786151cc565b602002602001015185612aee565b828281518110611998576119986151cc565b6001600160401b039092166020928302919091019091015260010161195a565b6066545f906001908116036119e05760405163840a48d560e01b815260040160405180910390fd5b838214611a00576040516343714afd60e01b815260040160405180910390fd5b5f5b84811015611a6957611a6187878784818110611a2057611a206151cc565b9050602002016020810190611a3591906147b9565b868685818110611a4757611a476151cc565b9050602002016020810190611a5c91906155a8565b613b58565b600101611a02565b50505050505050565b83611a7c816136c5565b611a995760405163932d94f760e01b815260040160405180910390fd5b604080518082019091526001600160a01b038616815263ffffffff851660208201525f611ac58261348e565b9050611b06826020015163ffffffff1660985f8a6001600160a01b03166001600160a01b031681526020019081526020015f206136ae90919063ffffffff16565b611b2357604051631fb1705560e21b815260040160405180910390fd5b5f5b84811015611bc657611b42868683818110610b7157610b716151cc565b611b5f5760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b83878784818110611b9357611b936151cc565b9050602002016020810190611ba891906147b9565b604051611bb692919061526a565b60405180910390a1600101611b25565b5050505050505050565b60605f82516001600160401b03811115611bec57611bec61464c565b604051908082528060200260200182016040528015611c15578160200160208202803683370190505b5090505f5b835181101561096157611c4685858381518110611c3957611c396151cc565b6020026020010151612aee565b828281518110611c5857611c586151cc565b6001600160401b0390921660209283029190910190910152600101611c1a565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611d7357611cb1826136c5565b611cce576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611d32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5691906151ad565b611d735760405163ccea9e6f60e01b815260040160405180910390fd5b61084e8282613c5c565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611ddf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e0391906151ad565b611e2057604051631d77d47760e21b815260040160405180910390fd5b611e2a5f1961365d565b565b5f61077683609a5f6112768661348e565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b0390911690600f81810b600160801b909204900b03825b81811015611f67576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120611ecf9083613dfd565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff16918101829052919250431015611f4a575050611f67565b611f588582602001516137a1565b94505050806001019050611e97565b506001600160a01b038086165f90815260a1602090815260408083209388168352929052208290611f979061378e565b611fa191906153e7565b95945050505050565b606654600290600490811603611fd35760405163840a48d560e01b815260040160405180910390fd5b611fe8611fe360208401846147b9565b6136c5565b806120015750612001611fe360408401602085016147b9565b61201e576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b61202d6040840184615225565b90508110156122ef575f604051806040016040528085602001602081019061205591906147b9565b6001600160a01b031681526020016120706040870187615225565b85818110612080576120806151cc565b905060200201602081019061209591906151fe565b63ffffffff1681525090506120e2816020015163ffffffff1660985f8760200160208101906120c491906147b9565b6001600160a01b0316815260208101919091526040015f20906136ae565b6120ff57604051631fb1705560e21b815260040160405180910390fd5b609e5f61210f60208701876147b9565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6121388361348e565b815260208101919091526040015f205460ff16612168576040516325131d4f60e01b815260040160405180910390fd5b6121a26121748261348e565b609c5f61218460208901896147b9565b6001600160a01b0316815260208101919091526040015f2090613e6c565b506121da6121b360208601866147b9565b609a5f6121bf8561348e565b81526020019081526020015f20613e7790919063ffffffff16565b506121e860208501856147b9565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe826040516122209190615217565b60405180910390a2604080518082019091525f8152602081016122637f0000000000000000000000000000000000000000000000000000000000000000436155c9565b63ffffffff169052609e5f61227b60208801886147b9565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6122a48461348e565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101612020565b5061230361038360408401602085016147b9565b6001600160a01b0316639d8e0c2361231e60208501856147b9565b61232b6040860186615225565b6040518463ffffffff1660e01b81526004016123499392919061561e565b5f604051808303815f87803b158015612360575f5ffd5b505af1925050508015612371575060015b1561084e575050565b606061099a609a5f6118fe8561348e565b612393613e8b565b611e2a5f613ee5565b6001600160a01b0381165f908152609c60205260408120606091906123c09061369a565b90505f816001600160401b038111156123db576123db61464c565b60405190808252806020026020018201604052801561241f57816020015b604080518082019091525f80825260208201528152602001906001900390816123f95790505b5090505f5b82811015610961576001600160a01b0385165f908152609c602052604090206124519061090790836136a3565b828281518110612463576124636151cc565b6020908102919091010152600101612424565b60605f84516001600160401b038111156124925761249261464c565b6040519080825280602002602001820160405280156124db57816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816124b05790505b5090505f5b85518110156125325761250d8682815181106124fe576124fe6151cc565b60200260200101518686610742565b82828151811061251f5761251f6151cc565b60209081029190910101526001016124e0565b50949350505050565b60605f83516001600160401b038111156125575761255761464c565b604051908082528060200260200182016040528015612580578160200160208202803683370190505b5090505f5b8451811015612532576001600160a01b0386165f90815260a16020526040812086516125f5928792918990869081106125c0576125c06151cc565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20613f3690919063ffffffff16565b828281518110612607576126076151cc565b6001600160401b0390921660209283029190910190910152600101612585565b6066545f9060019081160361264f5760405163840a48d560e01b815260040160405180910390fd5b612658836136c5565b612675576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f61268186613058565b91509150816126a35760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610c3c578381815181106126c4576126c46151cc565b602002602001015160400151518482815181106126e3576126e36151cc565b602002602001015160200151511461270e576040516343714afd60e01b815260040160405180910390fd5b5f848281518110612721576127216151cc565b602090810291909101810151518082015181516001600160a01b03165f908152609890935260409092209092506127619163ffffffff908116906136ae16565b61277e57604051631fb1705560e21b815260040160405180910390fd5b5f61278987836137dd565b90505f5b86848151811061279f5761279f6151cc565b60200260200101516020015151811015612ae3575f8785815181106127c6576127c66151cc565b60200260200101516020015182815181106127e3576127e36151cc565b602002602001015190506127fa898261ffff613b58565b5f5f6128098b61076b8861348e565b915091508060200151600f0b5f1461283457604051630d8fcbe360e41b815260040160405180910390fd5b5f61284187858489613f4a565b9050612886825f01518c8a8151811061285c5761285c6151cc565b6020026020010151604001518781518110612879576128796151cc565b6020026020010151613f80565b600f0b602083018190525f036128af57604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b12156129f3578015612975576129306128d08861348e565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61295a7f0000000000000000000000000000000000000000000000000000000000000000436155c9565b6129659060016155c9565b63ffffffff166040830152612a60565b612987836020015183602001516137a1565b6001600160401b031660208401528a518b90899081106129a9576129a96151cc565b60200260200101516040015185815181106129c6576129c66151cc565b6020908102919091018101516001600160401b031683525f9083015263ffffffff43166040830152612a60565b5f8260200151600f0b1315612a6057612a14836020015183602001516137a1565b6001600160401b039081166020850181905284519091161015612a4a57604051636c9be0bf60e01b815260040160405180910390fd5b612a5489436155c9565b63ffffffff1660408301525b612a758c612a6d8961348e565b86868661388a565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd8c612aa36109078a61348e565b86612ab5865f015187602001516137a1565b8660400151604051612acb959493929190615457565b60405180910390a150506001909201915061278d9050565b5050506001016126a9565b6001600160a01b038083165f90815260a16020908152604080832093851683529290529081206107769061378e565b82612b27816136c5565b612b445760405163932d94f760e01b815260040160405180910390fd5b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138484604051612b7f929190615642565b60405180910390a250505050565b606654600290600490811603612bb65760405163840a48d560e01b815260040160405180910390fd5b82612bc0816136c5565b612bdd5760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015612c41573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c6591906151ad565b612c825760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b612c916020850185615225565b9050811015612e5957604080518082019091525f9080612cb460208801886147b9565b6001600160a01b03168152602001868060200190612cd29190615225565b85818110612ce257612ce26151cc565b9050602002016020810190612cf791906151fe565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612d339291908116906136ae16565b612d5057604051631fb1705560e21b815260040160405180910390fd5b612d5a86826137dd565b15612d7857604051636c6c6e2760e11b815260040160405180910390fd5b612da1612d848261348e565b6001600160a01b0388165f908152609c602052604090209061376f565b50612dcd86609a5f612db28561348e565b81526020019081526020015f2061377a90919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e82604051612e079190615217565b60405180910390a26001600160a01b0386165f908152609e60205260408120600191612e328461348e565b815260208101919091526040015f20805460ff191691151591909117905550600101612c84565b50612e6a61038360208501856147b9565b6001600160a01b031663adcf73f785612e866020870187615225565b612e9360408901896154a8565b6040518663ffffffff1660e01b8152600401612eb3959493929190615655565b5f604051808303815f87803b158015612eca575f5ffd5b505af1158015611bc6573d5f5f3e3d5ffd5b5f61099a609a5f612eec8561348e565b81526020019081526020015f2061369a565b83612f08816136c5565b612f255760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f93845260989052939091209192612f6492916136ae16565b612f8157604051631fb1705560e21b815260040160405180910390fd5b5f612f8b8261348e565b90505f5b84811015611bc657612fd4868683818110612fac57612fac6151cc565b9050602002016020810190612fc191906147b9565b5f84815260996020526040902090613e77565b612ff1576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee83878784818110613025576130256151cc565b905060200201602081019061303a91906147b9565b60405161304892919061526a565b60405180910390a1600101612f8f565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052650100000000008304821694840194909452600160481b9091041660608201819052849391929190158015906130d95750826060015163ffffffff164310155b156130e8575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061099a9061369a565b6001600160a01b0382165f908152609f602052604081206060919061313b90826118fe8661348e565b949350505050565b5f54610100900460ff161580801561316157505f54600160ff909116105b8061317a5750303b15801561317a57505f5460ff166001145b6131e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015613203575f805461ff0019166101001790555b61320c8261365d565b61321583613ee5565b801561325b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050565b8161326a816136c5565b6132875760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf85836132df81610f30565b604080516001600160a01b03938416815292909116602083015201613252565b613307613e8b565b6001600160a01b03811661336c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016131d9565b61337581613ee5565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133f89190615698565b6001600160a01b0316336001600160a01b0316146134295760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146134505760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f815f0151826020015163ffffffff166040516020016134d992919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261099a906156b3565b6040805180820182525f80825260208083018290528351606081018552828152808201839052808501839052845180860186526001600160a01b03898116855260a18452868520908816855290925293822092939281906135519061378e565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff169181018290529192504310156135f3579092509050613655565b613604815f015182602001516137a1565b6001600160401b0316815260208101515f600f9190910b121561364257613633826020015182602001516137a1565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f61099a825490565b5f6107768383613f97565b5f8181526001830160205260408120541515610776565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af115801561374b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099a91906151ad565b5f6107768383613fbd565b5f610776836001600160a01b038416613fbd565b5f61099a82670de0b6b3a7640000614009565b5f610776826001600160401b03851661542a565b5f61077683670de0b6b3a76400008461404d565b5f6107768383670de0b6b3a764000061404d565b6001600160a01b0382165f908152609e602052604081208190816138008561348e565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff169282019290925291508061313b57506020015163ffffffff164311159392505050565b6001600160a01b0381165f9081526001830160205260408120541515610776565b5f6107768383670de0b6b3a76400006001614132565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b0390811691161461395057602082810180516001600160a01b038881165f81815260a286526040808220938a1680835293875290819020805467ffffffffffffffff19166001600160401b0395861617905593518451918252948101919091529216908201527facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc559060600160405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b15613a32576001600160a01b0385165f908152609f602090815260408083208784529091529020613a0a908461377a565b506001600160a01b0385165f908152609d60205260409020613a2c908561376f565b50610c3c565b80516001600160401b03165f03610c3c576001600160a01b0385165f908152609f602090815260408083208784529091529020613a6f9084613e77565b506001600160a01b0385165f908152609f602090815260408083208784529091529020613a9b9061369a565b5f03610c3c576001600160a01b0385165f908152609d60205260409020613ac29085613e6c565b505050505050565b6001600160a01b038084165f90815260a160209081526040808320938616835292905220613af990438361418b565b604080516001600160a01b038086168252841660208201526001600160401b038316918101919091527f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c90606001613252565b60605f6107768361419f565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f81118015613ba257508261ffff1682105b15610c3c576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613bd6906141f8565b90505f5f613be58884896134f1565b91509150806040015163ffffffff16431015613c0357505050610c3c565b613c10888489858561388a565b6001600160a01b038089165f90815260a360209081526040808320938b16835292905220613c3d9061424a565b50613c47856156d6565b9450613c52846156ee565b9350505050613b90565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352650100000000008104831693820193909352600160481b909204166060820181905215801590613cd85750806060015163ffffffff164310155b15613cf257604081015163ffffffff168152600160208201525b63ffffffff82166040820152613d287f0000000000000000000000000000000000000000000000000000000000000000436155c9565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff0000000000191665010000000000978916979097026cffffffff000000000000000000191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db9101613252565b5f5f613e1f613e0b846142c7565b8554613e1a9190600f0b615703565b614334565b8454909150600160801b9004600f90810b9082900b12613e5257604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f610776838361439d565b5f610776836001600160a01b03841661439d565b6033546001600160a01b03163314611e2a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016131d9565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6107768383670de0b6b3a7640000614480565b5f613f5b8460995f6112768961348e565b8015613f645750815b8015611fa157505090516001600160401b031615159392505050565b5f6107766001600160401b0380851690841661572a565b5f825f018281548110613fac57613fac6151cc565b905f5260205f200154905092915050565b5f81815260018301602052604081205461400257508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561099a565b505f61099a565b81545f9080156140455761402f846140226001846153d4565b5f91825260209091200190565b54600160201b90046001600160e01b031661313b565b509092915050565b5f80805f19858709858702925082811083820303915050805f036140845783828161407a5761407a615757565b0492505050610776565b8084116140cb5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016131d9565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f5f61413f86868661404d565b905060018360028111156141555761415561576b565b14801561417157505f848061416c5761416c615757565b868809115b15611fa15761418160018261577f565b9695505050505050565b61325b83836001600160401b0384166144c8565b6060815f018054806020026020016040519081016040528092919081815260200182805480156141ec57602002820191905f5260205f20905b8154815260200190600101908083116141d8575b50505050509050919050565b5f6142128254600f81810b600160801b909204900b131590565b1561423057604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6142648254600f81810b600160801b909204900b131590565b1561428257604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b5f6001600160ff1b038211156143305760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016131d9565b5090565b80600f81900b81146143985760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016131d9565b919050565b5f8181526001830160205260408120548015614477575f6143bf6001836153d4565b85549091505f906143d2906001906153d4565b9050818114614431575f865f0182815481106143f0576143f06151cc565b905f5260205f200154905080875f018481548110614410576144106151cc565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061444257614442615792565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061099a565b5f91505061099a565b82545f9081614491868683856145cb565b905080156144be576144a8866140226001846153d4565b54600160201b90046001600160e01b0316610771565b5091949350505050565b8254801561457e575f6144e0856140226001856153d4565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090851610156145325760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff80861691160361457c5782614553866140226001866153d4565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f5b81831015610961575f6145e0848461461e565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561460a57809250614618565b61461581600161577f565b93505b506145cd565b5f61462c60028484186157a6565b6107769084841661577f565b6001600160a01b0381168114613375575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156146825761468261464c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156146b0576146b061464c565b604052919050565b803563ffffffff81168114614398575f5ffd5b5f604082840312156146db575f5ffd5b604080519081016001600160401b03811182821017156146fd576146fd61464c565b604052905080823561470e81614638565b815261471c602084016146b8565b60208201525092915050565b5f5f5f6080848603121561473a575f5ffd5b833561474581614638565b925061475485602086016146cb565b9150606084013561476481614638565b809150509250925092565b81516001600160401b03168152602080830151600f0b9082015260408083015163ffffffff16908201526060810161099a565b5f602082840312156147b2575f5ffd5b5035919050565b5f602082840312156147c9575f5ffd5b813561077681614638565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b8281101561482d576148178683516147d4565b6040959095019460209190910190600101614804565b5093949350505050565b602081525f61077660208301846147f2565b5f60408284031215614859575f5ffd5b61077683836146cb565b5f5f83601f840112614873575f5ffd5b5081356001600160401b03811115614889575f5ffd5b6020830191508360208260051b85010111156118e5575f5ffd5b5f5f5f604084860312156148b5575f5ffd5b83356148c081614638565b925060208401356001600160401b038111156148da575f5ffd5b6148e686828701614863565b9497909650939450505050565b5f6001600160401b0382111561490b5761490b61464c565b5060051b60200190565b5f82601f830112614924575f5ffd5b8135614937614932826148f3565b614688565b8082825260208201915060208360051b860101925085831115614958575f5ffd5b602085015b8381101561497e57803561497081614638565b83526020928301920161495d565b5095945050505050565b5f5f5f5f60a0858703121561499b575f5ffd5b6149a586866146cb565b935060408501356001600160401b038111156149bf575f5ffd5b6149cb87828801614915565b93505060608501356001600160401b038111156149e6575f5ffd5b6149f287828801614915565b925050614a01608086016146b8565b905092959194509250565b5f8151808452602084019350602083015f5b8281101561482d578151865260209586019590910190600101614a1e565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614a9357603f19878603018452614a7e858351614a0c565b94506020938401939190910190600101614a62565b50929695505050505050565b5f5f60408385031215614ab0575f5ffd5b8235614abb81614638565b915060208301356001600160401b03811115614ad5575f5ffd5b830160a08186031215614ae6575f5ffd5b809150509250929050565b5f5f60408385031215614b02575f5ffd5b8235614b0d81614638565b91506020830135614ae681614638565b5f8151808452602084019350602083015f5b8281101561482d57614b6886835180516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060959095019460209190910190600101614b2f565b604081525f614b9060408301856147f2565b8281036020840152611fa18185614b1d565b5f8151808452602084019350602083015f5b8281101561482d5781516001600160a01b0316865260209586019590910190600101614bb4565b602081525f6107766020830184614ba2565b5f5f60408385031215614bfe575f5ffd5b82356001600160401b03811115614c13575f5ffd5b614c1f85828601614915565b9250506020830135614ae681614638565b602080825282518282018190525f918401906040840190835b81811015614c705783516001600160401b0316835260209384019390920191600101614c49565b509095945050505050565b5f5f5f5f5f60608688031215614c8f575f5ffd5b8535614c9a81614638565b945060208601356001600160401b03811115614cb4575f5ffd5b614cc088828901614863565b90955093505060408601356001600160401b03811115614cde575f5ffd5b614cea88828901614863565b969995985093965092949392505050565b5f5f5f5f60608587031215614d0e575f5ffd5b8435614d1981614638565b9350614d27602086016146b8565b925060408501356001600160401b03811115614d41575f5ffd5b614d4d87828801614863565b95989497509550505050565b5f5f60408385031215614d6a575f5ffd5b8235614d7581614638565b915060208301356001600160401b03811115614d8f575f5ffd5b614d9b85828601614915565b9150509250929050565b5f5f60408385031215614db6575f5ffd5b8235614dc181614638565b9150614dcf602084016146b8565b90509250929050565b5f60208284031215614de8575f5ffd5b813560ff81168114610776575f5ffd5b5f5f60608385031215614e09575f5ffd5b8235614e1481614638565b9150614dcf84602085016146cb565b5f60608284031215614e33575f5ffd5b50919050565b5f60208284031215614e49575f5ffd5b81356001600160401b03811115614e5e575f5ffd5b61313b84828501614e23565b5f5f5f60808486031215614e7c575f5ffd5b83356001600160401b03811115614e91575f5ffd5b614e9d86828701614915565b93505061475485602086016146cb565b602081525f6107766020830184614b1d565b5f5f5f60608486031215614ed1575f5ffd5b8335614edc81614638565b925060208401356001600160401b03811115614ef6575f5ffd5b614f0286828701614915565b925050614f11604085016146b8565b90509250925092565b5f5f60408385031215614f2b575f5ffd5b8235614f3681614638565b915060208301356001600160401b03811115614f50575f5ffd5b8301601f81018513614f60575f5ffd5b8035614f6e614932826148f3565b8082825260208201915060208360051b850101925087831115614f8f575f5ffd5b602084015b838110156150b45780356001600160401b03811115614fb1575f5ffd5b85016080818b03601f19011215614fc6575f5ffd5b614fce614660565b614fdb8b602084016146cb565b815260608201356001600160401b03811115614ff5575f5ffd5b6150048c602083860101614915565b60208301525060808201356001600160401b03811115615022575f5ffd5b6020818401019250508a601f830112615039575f5ffd5b8135615047614932826148f3565b8082825260208201915060208360051b86010192508d831115615068575f5ffd5b6020850194505b8285101561509e5784356001600160401b038116811461508d575f5ffd5b82526020948501949091019061506f565b6040840152505084525060209283019201614f94565b50809450505050509250929050565b5f5f5f604084860312156150d5575f5ffd5b83356150e081614638565b925060208401356001600160401b038111156150fa575f5ffd5b8401601f8101861361510a575f5ffd5b80356001600160401b0381111561511f575f5ffd5b866020828401011115615130575f5ffd5b939660209190910195509293505050565b5f5f60408385031215615152575f5ffd5b823561515d81614638565b915060208301356001600160401b03811115615177575f5ffd5b614d9b85828601614e23565b5f5f60408385031215615194575f5ffd5b823561519f81614638565b946020939093013593505050565b5f602082840312156151bd575f5ffd5b81518015158114610776575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235603e198336030181126151f4575f5ffd5b9190910192915050565b5f6020828403121561520e575f5ffd5b610776826146b8565b6040810161099a82846147d4565b5f5f8335601e1984360301811261523a575f5ffd5b8301803591506001600160401b03821115615253575f5ffd5b6020019150600581901b36038213156118e5575f5ffd5b6060810161527882856147d4565b6001600160a01b039290921660409190910152919050565b604081525f6152a26040830185614ba2565b8281036020840152611fa18185614ba2565b5f602082840312156152c4575f5ffd5b81516001600160401b038111156152d9575f5ffd5b8201601f810184136152e9575f5ffd5b80516152f7614932826148f3565b8082825260208201915060208360051b850101925086831115615318575f5ffd5b602084015b838110156153b55780516001600160401b0381111561533a575f5ffd5b8501603f8101891361534a575f5ffd5b602081015161535b614932826148f3565b808282526020820191506020808460051b8601010192508b83111561537e575f5ffd5b6040840193505b828410156153a0578351825260209384019390910190615385565b8652505060209384019391909101905061531d565b509695505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561099a5761099a6153c0565b6001600160401b03828116828216039081111561099a5761099a6153c0565b5f81600f0b60016001607f1b03198103615422576154226153c0565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b03198212171561099a5761099a6153c0565b6001600160a01b038616815260c0810161547460208301876147d4565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b5f5f8335601e198436030181126154bd575f5ffd5b8301803591506001600160401b038211156154d6575f5ffd5b6020019150368190038213156118e5575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b03881681525f60c08201615530602084018a6147d4565b60c060608401528690528660e083015f5b8881101561557157823561555481614638565b6001600160a01b0316825260209283019290910190600101615541565b5083810360808501526155848188614a0c565b91505082810360a084015261559a8185876154ea565b9a9950505050505050505050565b5f602082840312156155b8575f5ffd5b813561ffff81168114610776575f5ffd5b63ffffffff818116838216019081111561099a5761099a6153c0565b8183526020830192505f815f5b8481101561482d5763ffffffff615608836146b8565b16865260209586019591909101906001016155f2565b6001600160a01b03841681526040602082018190525f90611fa190830184866155e5565b602081525f61313b6020830184866154ea565b6001600160a01b03861681526060602082018190525f9061567990830186886155e5565b828103604084015261568c8185876154ea565b98975050505050505050565b5f602082840312156156a8575f5ffd5b815161077681614638565b80516020808301519190811015614e33575f1960209190910360031b1b16919050565b5f600182016156e7576156e76153c0565b5060010190565b5f816156fc576156fc6153c0565b505f190190565b8082018281125f831280158216821582161715615722576157226153c0565b505092915050565b600f82810b9082900b0360016001607f1b0319811260016001607f1b038213171561099a5761099a6153c0565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b8082018082111561099a5761099a6153c0565b634e487b7160e01b5f52603160045260245ffd5b5f826157c057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220049ddc48108b86f3be70590462d517d57c47bba9450f474f41b568a93ac1337d64736f6c634300081b0033", } // AllocationManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/AllocationManagerStorage/binding.go b/pkg/bindings/AllocationManagerStorage/binding.go index 25f34c4c4..7e8e815c8 100644 --- a/pkg/bindings/AllocationManagerStorage/binding.go +++ b/pkg/bindings/AllocationManagerStorage/binding.go @@ -80,7 +80,7 @@ type OperatorSet struct { // AllocationManagerStorageMetaData contains all meta data concerning the AllocationManagerStorage contract. var AllocationManagerStorageMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"ALLOCATION_CONFIGURATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEALLOCATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"encumberedMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"isSet\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operatorSets\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxStrategiesExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"ALLOCATION_CONFIGURATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEALLOCATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"encumberedMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"isSet\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operatorSets\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", } // AllocationManagerStorageABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/DelegationManager/binding.go b/pkg/bindings/DelegationManager/binding.go index 42e0db8dc..77f82d369 100644 --- a/pkg/bindings/DelegationManager/binding.go +++ b/pkg/bindings/DelegationManager/binding.go @@ -55,8 +55,8 @@ type ISignatureUtilsSignatureWithExpiry struct { // DelegationManagerMetaData contains all meta data concerning the DelegationManager contract. var DelegationManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"},{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_MIN_WITHDRAWAL_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"numToComplete\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"totalQueued\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"spent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"pending\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesBurned\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotStaker\",\"inputs\":[]}]", - Bin: "0x610180604052348015610010575f5ffd5b506040516160b13803806160b183398101604081905261002f91610235565b8186868684876001600160a01b03811661005c576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805293841660a05291831660c05290911660e05263ffffffff166101005246610120526100936100b7565b610140526001600160a01b0316610160526100ac610162565b5050505050506102c0565b5f61012051461461015a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b506101405190565b5f54610100900460ff16156101cd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161461021c575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610232575f5ffd5b50565b5f5f5f5f5f5f60c0878903121561024a575f5ffd5b86516102558161021e565b60208801519096506102668161021e565b60408801519095506102778161021e565b60608801519094506102888161021e565b60808801519093506102998161021e565b60a088015190925063ffffffff811681146102b2575f5ffd5b809150509295509295509295565b60805160a05160c05160e05161010051610120516101405161016051615cfc6103b55f395f81816103f2015261346d01525f61407701525f613fb701525f8181610741015281816135f80152613ac701525f818161079101528181610ce701528181610e980152818161177001528181611bf7015281816124e701528181612998015261428a01525f818161041901528181610e1e015281816116d701528181611935015281816132560152613f7701525f818161034f01528181610dec01528181611889015281816125d40152613f5101525f818161059401528181610bdf01528181610fb8015261280a0152615cfc5ff3fe608060405234801561000f575f5ffd5b50600436106102b1575f3560e01c8063778e55f31161017b578063bfae3fd2116100e4578063e4cc3f901161009e578063f0e0e67611610079578063f0e0e67614610812578063f2fde38b14610832578063f698da2514610845578063fabc1cbc1461084d575f5ffd5b8063e4cc3f90146107d9578063ee74937f146107ec578063eea9064b146107ff575f5ffd5b8063bfae3fd214610724578063c448feb814610737578063c978f7ac1461076b578063ca8aa7c71461078c578063cd6dc687146107b3578063da8be864146107c6575f5ffd5b80639435bb43116101355780639435bb431461060257806399f5371b14610615578063a1788484146106a3578063a33a3433146106c2578063b7f06ebe146106d5578063bb45fef2146106f7575f5ffd5b8063778e55f31461055257806378296ec51461057c578063886f11951461058f5780638da5cb5b146105b657806390041347146105c75780639104c319146105e7575f5ffd5b8063595c6a671161021d57806360a0d1ce116101d757806360a0d1ce146104c857806365da1264146104db57806366d5ba93146105035780636d70f7ae146105245780636e17444814610537578063715018a61461054a575f5ffd5b8063595c6a671461044e578063597b36da146104565780635ac86ab7146104695780635c975abb1461048c5780635dd68579146104945780635f48e667146104b5575f5ffd5b80633c651cf21161026e5780633c651cf2146103895780633cdeb5e01461039c5780633e28391d146103ca5780634657e26a146103ed5780634665bcda1461041457806354b7c96c1461043b575f5ffd5b806304a4f979146102b55780630b9f487a146102ef5780630dd8dd0214610302578063136439dd146103225780632aa6d8881461033757806339b70e381461034a575b5f5ffd5b6102dc7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b6040519081526020015b60405180910390f35b6102dc6102fd366004614c1c565b610860565b610315610310366004614cb3565b6108e8565b6040516102e69190614cf1565b610335610330366004614d28565b610bca565b005b610335610345366004614d8f565b610c9f565b6103717f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e6565b610335610397366004614ded565b610de1565b6103716103aa366004614e30565b6001600160a01b039081165f908152609960205260409020600101541690565b6103dd6103d8366004614e30565b610f28565b60405190151581526020016102e6565b6103717f000000000000000000000000000000000000000000000000000000000000000081565b6103717f000000000000000000000000000000000000000000000000000000000000000081565b610335610449366004614e4b565b610f47565b610335610fa3565b6102dc6104643660046150bc565b611052565b6103dd6104773660046150ed565b606654600160ff9092169190911b9081161490565b6066546102dc565b6104a76104a2366004614e30565b611081565b6040516102e692919061524c565b6103356104c33660046152b9565b611438565b6103356104d636600461533e565b6116cc565b6103716104e9366004614e30565b609a6020525f90815260409020546001600160a01b031681565b610516610511366004614e30565b611861565b6040516102e692919061537d565b6103dd610532366004614e30565b611b61565b6102dc610545366004614e4b565b611b99565b610335611c9f565b6102dc610560366004614e4b565b609860209081525f928352604080842090915290825290205481565b61033561058a3660046153a1565b611cb0565b6103717f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b0316610371565b6105da6105d53660046153f1565b611d38565b6040516102e6919061543d565b61037173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b61033561061036600461544f565b611e0e565b610665610623366004614d28565b60a46020525f9081526040902080546001820154600283015460038401546004909401546001600160a01b039384169492841693909116919063ffffffff1685565b604080516001600160a01b03968716815294861660208601529290941691830191909152606082015263ffffffff909116608082015260a0016102e6565b6102dc6106b1366004614e30565b609f6020525f908152604090205481565b6103156106d03660046154eb565b611ec4565b6103dd6106e3366004614d28565b609e6020525f908152604090205460ff1681565b6103dd6107053660046155d2565b609c60209081525f928352604080842090915290825290205460ff1681565b6102dc610732366004614e4b565b611f61565b60405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102e6565b61077e6107793660046153f1565b611f9d565b6040516102e69291906155fc565b6103717f000000000000000000000000000000000000000000000000000000000000000081565b6103356107c13660046155d2565b61222a565b6103156107d4366004614e30565b612345565b6103356107e736600461561b565b612486565b6103356107fa366004615699565b6124dc565b61033561080d3660046154eb565b612679565b6108256108203660046156e7565b6126dc565b6040516102e69190615794565b610335610840366004614e30565b612781565b6102dc6127fa565b61033561085b366004614d28565b612808565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad60208201526001600160a01b03808616928201929092528187166060820152908516608082015260a0810183905260c081018290525f906108de9060e0016040516020818303038152906040528051906020012061291f565b9695505050505050565b6066546060906001906002908116036109145760405163840a48d560e01b815260040160405180910390fd5b5f836001600160401b0381111561092d5761092d614e82565b604051908082528060200260200182016040528015610956578160200160208202803683370190505b50335f908152609a60205260408120549192506001600160a01b03909116905b85811015610bbf57868682818110610990576109906157a6565b90506020028101906109a291906157ba565b6109b09060208101906157d8565b90508787838181106109c4576109c46157a6565b90506020028101906109d691906157ba565b6109e090806157d8565b905014610a00576040516343714afd60e01b815260040160405180910390fd5b33878783818110610a1357610a136157a6565b9050602002810190610a2591906157ba565b610a36906060810190604001614e30565b6001600160a01b031614610a5d576040516330c4716960e21b815260040160405180910390fd5b5f610ac733848a8a86818110610a7557610a756157a6565b9050602002810190610a8791906157ba565b610a9190806157d8565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061294d92505050565b9050610b9933848a8a86818110610ae057610ae06157a6565b9050602002810190610af291906157ba565b610afc90806157d8565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508e92508d9150889050818110610b4157610b416157a6565b9050602002810190610b5391906157ba565b610b619060208101906157d8565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250889250612a94915050565b848381518110610bab57610bab6157a6565b602090810291909101015250600101610976565b509095945050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c50919061581d565b610c6d57604051631d77d47760e21b815260040160405180910390fd5b6066548181168114610c925760405163c61dca5d60e01b815260040160405180910390fd5b610c9b8261306d565b5050565b610ca833610f28565b15610cc657604051633bf2b50360e11b815260040160405180910390fd5b604051632b6241f360e11b815233600482015263ffffffff841660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906356c483e6906044015f604051808303815f87803b158015610d30575f5ffd5b505af1158015610d42573d5f5f3e3d5ffd5b50505050610d5033856130aa565b610d5a333361310c565b6040516001600160a01b038516815233907fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c19060200160405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051610dd3929190615838565b60405180910390a250505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e405750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b610e5d5760405163045206a560e21b815260040160405180910390fd5b6001600160a01b038481165f908152609a602052604080822054905163152667d960e31b8152908316600482018190528684166024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa158015610edd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f019190615866565b90505f610f0f87878461320f565b9050610f1f8388888888866132f1565b50505050505050565b6001600160a01b039081165f908152609a602052604090205416151590565b81610f518161342f565b610f6e5760405163932d94f760e01b815260040160405180910390fd5b610f7783611b61565b610f94576040516325ec6c1f60e01b815260040160405180910390fd5b610f9e83836130aa565b505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611005573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611029919061581d565b61104657604051631d77d47760e21b815260040160405180910390fd5b6110505f1961306d565b565b5f816040516020016110649190615881565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0381165f90815260a36020526040812060609182916110a6906134d9565b8051909150806001600160401b038111156110c3576110c3614e82565b6040519080825280602002602001820160405280156110fc57816020015b6110e9614ad8565b8152602001906001900390816110e15790505b509350806001600160401b0381111561111757611117614e82565b60405190808252806020026020018201604052801561114a57816020015b60608152602001906001900390816111355790505b506001600160a01b038087165f908152609a60205260408120549295509116905b8281101561142f5760a45f858381518110611188576111886157a6565b60209081029190910181015182528181019290925260409081015f20815160e08101835281546001600160a01b03908116825260018301548116828601526002830154168184015260038201546060820152600482015463ffffffff1660808201526005820180548451818702810187019095528085529194929360a086019390929083018282801561124257602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611224575b505050505081526020016006820180548060200260200160405190810160405280929190818152602001828054801561129857602002820191905f5260205f20905b815481526020019060010190808311611284575b5050505050815250508682815181106112b3576112b36157a6565b60200260200101819052508581815181106112d0576112d06157a6565b602002602001015160a00151516001600160401b038111156112f4576112f4614e82565b60405190808252806020026020018201604052801561131d578160200160208202803683370190505b50858281518110611330576113306157a6565b60200260200101819052505f6113648884898581518110611353576113536157a6565b602002602001015160a0015161294d565b90505f5b87838151811061137a5761137a6157a6565b602002602001015160a0015151811015611425576113e78884815181106113a3576113a36157a6565b602002602001015160c0015182815181106113c0576113c06157a6565b60200260200101518385815181106113da576113da6157a6565b60200260200101516134e5565b8784815181106113f9576113f96157a6565b60200260200101518281518110611412576114126157a6565b6020908102919091010152600101611368565b505060010161116b565b50505050915091565b6066546002906004908116036114615760405163840a48d560e01b815260040160405180910390fd5b6114696134f0565b335f90815260a3602052604081209061148182613549565b90508084116114905783611492565b805b93505f846001600160401b038111156114ad576114ad614e82565b6040519080825280602002602001820160405280156114e657816020015b6114d3614ad8565b8152602001906001900390816114cb5790505b5090505f5b81518110156116355760a45f6115018684613552565b815260208082019290925260409081015f20815160e08101835281546001600160a01b03908116825260018301548116828601526002830154168184015260038201546060820152600482015463ffffffff1660808201526005820180548451818702810187019095528085529194929360a08601939092908301828280156115b157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611593575b505050505081526020016006820180548060200260200160405190810160405280929190818152602001828054801561160757602002820191905f5260205f20905b8154815260200190600101908083116115f3575b505050505081525050828281518110611622576116226157a6565b60209081029190910101526001016114eb565b505f5b81518110156116b6576116ae828281518110611656576116566157a6565b60200260200101518b8b84818110611670576116706157a6565b905060200281019061168291906157d8565b8b8b86818110611694576116946157a6565b90506020020160208101906116a99190615893565b61355d565b600101611638565b505050506116c4600160c955565b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461171557604051633213a66160e21b815260040160405180910390fd5b61171e83610f28565b15610f9e576001600160a01b038381165f908152609a602052604080822054905163152667d960e31b81529083166004820181905273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa1580156117b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d99190615866565b6001600160a01b0386165f90815260a26020908152604080832073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac084528252808320815192830190915254815291925061183f866118376001600160401b038087169089166139d7565b8491906139eb565b9050610f1f848873beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac084613a11565b6040516394f649dd60e01b81526001600160a01b03828116600483015260609182915f9182917f000000000000000000000000000000000000000000000000000000000000000016906394f649dd906024015f60405180830381865afa1580156118cd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118f49190810190615909565b60405163fe243a1760e01b81526001600160a01b03888116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac060248301529294509092505f917f0000000000000000000000000000000000000000000000000000000000000000169063fe243a1790604401602060405180830381865afa15801561197a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199e91906159c4565b9050805f036119b257509094909350915050565b5f835160016119c191906159ef565b6001600160401b038111156119d8576119d8614e82565b604051908082528060200260200182016040528015611a01578160200160208202803683370190505b5090505f84516001611a1391906159ef565b6001600160401b03811115611a2a57611a2a614e82565b604051908082528060200260200182016040528015611a53578160200160208202803683370190505b50905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082865181518110611a7e57611a7e6157a6565b60200260200101906001600160a01b031690816001600160a01b0316815250508281865181518110611ab257611ab26157a6565b60209081029190910101525f5b8551811015611b5357858181518110611ada57611ada6157a6565b6020026020010151838281518110611af457611af46157a6565b60200260200101906001600160a01b031690816001600160a01b031681525050848181518110611b2657611b266157a6565b6020026020010151828281518110611b4057611b406157a6565b6020908102919091010152600101611abf565b509097909650945050505050565b5f6001600160a01b03821615801590611b9357506001600160a01b038083165f818152609a6020526040902054909116145b92915050565b6040805160018082528183019092525f918291906020808301908036833701905050905082815f81518110611bd057611bd06157a6565b6001600160a01b03928316602091820292909201015260405163547afb8760e01b81525f917f0000000000000000000000000000000000000000000000000000000000000000169063547afb8790611c2e9088908690600401615a02565b5f60405180830381865afa158015611c48573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c6f9190810190615a25565b5f81518110611c8057611c806157a6565b60200260200101519050611c968585835f613a8b565b95945050505050565b611ca7613b3c565b6110505f613b96565b82611cba8161342f565b611cd75760405163932d94f760e01b815260040160405180910390fd5b611ce084611b61565b611cfd576040516325ec6c1f60e01b815260040160405180910390fd5b836001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610dd3929190615838565b60605f82516001600160401b03811115611d5457611d54614e82565b604051908082528060200260200182016040528015611d7d578160200160208202803683370190505b5090505f5b8351811015611e06576001600160a01b0385165f9081526098602052604081208551909190869084908110611db957611db96157a6565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054828281518110611df357611df36157a6565b6020908102919091010152600101611d82565b509392505050565b606654600290600490811603611e375760405163840a48d560e01b815260040160405180910390fd5b611e3f6134f0565b855f5b81811015611eb857611eb0898983818110611e5f57611e5f6157a6565b9050602002810190611e719190615ab4565b611e7a90615ac8565b888884818110611e8c57611e8c6157a6565b9050602002810190611e9e91906157d8565b888886818110611694576116946157a6565b600101611e42565b5050610f1f600160c955565b6060611ecf33610f28565b611eec5760405163a5c7c44560e01b815260040160405180910390fd5b611ef533611b61565b15611f13576040516311ca333560e31b815260040160405180910390fd5b611f1c84611b61565b611f39576040516325ec6c1f60e01b815260040160405180910390fd5b611f4233613be7565b9050611f5033858585613e46565b611f5a338561310c565b9392505050565b6001600160a01b038083165f90815260a260209081526040808320938516835292815282822083519182019093529154825290611f5a90613f0b565b60608082516001600160401b03811115611fb957611fb9614e82565b604051908082528060200260200182016040528015611fe2578160200160208202803683370190505b50915082516001600160401b03811115611ffe57611ffe614e82565b604051908082528060200260200182016040528015612027578160200160208202803683370190505b506001600160a01b038086165f908152609a602052604081205492935091169061205286838761294d565b90505f5b855181101561221f575f612082878381518110612075576120756157a6565b6020026020010151613f2a565b9050806001600160a01b031663fe243a17898985815181106120a6576120a66157a6565b60200260200101516040518363ffffffff1660e01b81526004016120e09291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa1580156120fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061211f91906159c4565b858381518110612131576121316157a6565b6020026020010181815250505f60a25f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f898581518110612174576121746157a6565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f8201548152505090506121f88684815181106121c6576121c66157a6565b60200260200101518585815181106121e0576121e06157a6565b6020026020010151836139eb9092919063ffffffff16565b87848151811061220a5761220a6157a6565b60209081029190910101525050600101612056565b5050505b9250929050565b5f54610100900460ff161580801561224857505f54600160ff909116105b806122615750303b15801561226157505f5460ff166001145b6122c95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156122ea575f805461ff0019166101001790555b6122f38261306d565b6122fc83613b96565b8015610f9e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b606061235082610f28565b61236d5760405163a5c7c44560e01b815260040160405180910390fd5b61237682611b61565b15612394576040516311ca333560e31b815260040160405180910390fd5b6001600160a01b0382166123bb576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b038083165f818152609a6020526040902054909116903314806123e957506123e98161342f565b8061240f57506001600160a01b038181165f908152609960205260409020600101541633145b61242c57604051631e499a2360e11b815260040160405180910390fd5b336001600160a01b0384161461247d57806001600160a01b0316836001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b611f5a83613be7565b6066546002906004908116036124af5760405163840a48d560e01b815260040160405180910390fd5b6124b76134f0565b6124cb6124c386615ac8565b85858561355d565b6124d5600160c955565b5050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612525576040516323d871a560e01b815260040160405180910390fd5b6001600160a01b038085165f908152609860209081526040808320938716835292905290812054612563906001600160401b03808616908516613f9c565b90505f61257286868686613a8b565b61257c90836159ef565b905061258a865f8785613a11565b6001600160a01b03851673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146116c457604051633b9e9f0160e21b81526001600160a01b038681166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063ee7a7c04906044015f604051808303815f87803b158015612615575f5ffd5b505af1158015612627573d5f5f3e3d5ffd5b5050604080516001600160a01b038981168252602082018690528a1693507feff6aab2bc3f7c648896e1522eae71d6c22e3b0e218206b3f40af0e4d204716b92500160405180910390a2505050505050565b61268233610f28565b156126a057604051633bf2b50360e11b815260040160405180910390fd5b6126a983611b61565b6126c6576040516325ec6c1f60e01b815260040160405180910390fd5b6126d233848484613e46565b610f9e338461310c565b60605f83516001600160401b038111156126f8576126f8614e82565b60405190808252806020026020018201604052801561272b57816020015b60608152602001906001900390816127165790505b5090505f5b8451811015611e065761275c85828151811061274e5761274e6157a6565b602002602001015185611d38565b82828151811061276e5761276e6157a6565b6020908102919091010152600101612730565b612789613b3c565b6001600160a01b0381166127ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016122c0565b6127f781613b96565b50565b5f612803613fb4565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612864573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128889190615ad3565b6001600160a01b0316336001600160a01b0316146128b95760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146128e05760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020015b60405180910390a25050565b5f612928613fb4565b60405161190160f01b6020820152602281019190915260428101839052606201611064565b60605f82516001600160401b0381111561296957612969614e82565b604051908082528060200260200182016040528015612992578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663547afb8786866040518363ffffffff1660e01b81526004016129e4929190615a02565b5f60405180830381865afa1580156129fe573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612a259190810190615a25565b90505f5b8451811015610bbf57612a6f87868381518110612a4857612a486157a6565b6020026020010151848481518110612a6257612a626157a6565b602002602001015161320f565b838281518110612a8157612a816157a6565b6020908102919091010152600101612a29565b5f6001600160a01b038616612abc576040516339b190bb60e11b815260040160405180910390fd5b83515f03612add5760405163796cc52560e01b815260040160405180910390fd5b5f84516001600160401b03811115612af757612af7614e82565b604051908082528060200260200182016040528015612b20578160200160208202803683370190505b5090505f85516001600160401b03811115612b3d57612b3d614e82565b604051908082528060200260200182016040528015612b66578160200160208202803683370190505b5090505f5b8651811015612ea0575f612b8a888381518110612075576120756157a6565b90505f60a25f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8a8581518110612bc357612bc36157a6565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050816001600160a01b031663fe243a178c8b8681518110612c2257612c226157a6565b60200260200101516040518363ffffffff1660e01b8152600401612c5c9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015612c77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c9b91906159c4565b888481518110612cad57612cad6157a6565b60200260200101511115612cd45760405163f020e5b960e01b815260040160405180910390fd5b612d03888481518110612ce957612ce96157a6565b60200260200101518885815181106121e0576121e06157a6565b848481518110612d1557612d156157a6565b602002602001018181525050612d5d848481518110612d3657612d366157a6565b6020026020010151888581518110612d5057612d506157a6565b6020026020010151614099565b858481518110612d6f57612d6f6157a6565b60209081029190910101526001600160a01b038a1615612e0457612dc68a8a8581518110612d9f57612d9f6157a6565b6020026020010151878681518110612db957612db96157a6565b60200260200101516140b2565b612e048a8c8b8681518110612ddd57612ddd6157a6565b6020026020010151878781518110612df757612df76157a6565b6020026020010151613a11565b816001600160a01b031663724af4238c8b8681518110612e2657612e266157a6565b60200260200101518b8781518110612e4057612e406157a6565b60200260200101516040518463ffffffff1660e01b8152600401612e6693929190615aee565b5f604051808303815f87803b158015612e7d575f5ffd5b505af1158015612e8f573d5f5f3e3d5ffd5b505050505050806001019050612b6b565b506001600160a01b0388165f908152609f60205260408120805491829190612ec783615b12565b91905055505f6040518060e001604052808b6001600160a01b031681526020018a6001600160a01b031681526020018b6001600160a01b031681526020018381526020014363ffffffff1681526020018981526020018581525090505f612f2d82611052565b5f818152609e602090815260408083208054600160ff19909116811790915560a4835292819020865181546001600160a01b03199081166001600160a01b039283161783558885015195830180548216968316969096179095559187015160028201805490951692169190911790925560608501516003830155608085015160048301805463ffffffff191663ffffffff90921691909117905560a085015180519394508593612fe39260058501920190614b31565b5060c08201518051612fff916006840191602090910190614b94565b5050506001600160a01b038b165f90815260a3602052604090206130239082614140565b507f26b2aae26516e8719ef50ea2f6831a2efbd4e37dccdf0f6936b27bc08e793e3081838660405161305793929190615b2a565b60405180910390a19a9950505050505050505050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6001600160a01b038281165f8181526099602090815260409182902060010180546001600160a01b0319169486169485179055905192835290917f773b54c04d756fcc5e678111f7d730de3be98192000799eee3d63716055a87c69101612913565b6066545f906001908116036131345760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b038381165f818152609a602052604080822080546001600160a01b0319169487169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a35f5f61319185611861565b915091505f6131a186868561294d565b90505f5b8351811015610f1f5761320786888684815181106131c5576131c56157a6565b60200260200101515f8786815181106131e0576131e06157a6565b60200260200101518787815181106131fa576131fa6157a6565b60200260200101516132f1565b6001016131a5565b5f73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016132e15760405163a3d75e0960e01b81526001600160a01b0385811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a3d75e0990602401602060405180830381865afa15801561329d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132c19190615866565b90506132d96001600160401b038481169083166139d7565b915050611f5a565b506001600160401b031692915050565b805f0361331157604051630a33bc6960e21b815260040160405180910390fd5b6001600160a01b038086165f90815260a2602090815260408083209388168352929052206133418185858561414b565b6040805160208101909152815481527f8be932bac54561f27260f95463d9b8ab37e06b2842e5ee2404157cc13df6eb8f908790879061337f90613f0b565b60405161338e93929190615aee565b60405180910390a161339f86610f28565b15610f1f576001600160a01b038088165f908152609860209081526040808320938916835292905290812080548592906133da9084906159ef565b92505081905550866001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c87878660405161341e93929190615aee565b60405180910390a250505050505050565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156134b5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b93919061581d565b60605f611f5a836141c0565b5f611f5a83836139d7565b600260c954036135425760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016122c0565b600260c955565b5f611b93825490565b5f611f5a8383614219565b60a0840151518214613582576040516343714afd60e01b815260040160405180910390fd5b83604001516001600160a01b0316336001600160a01b0316146135b8576040516316110d3560e21b815260040160405180910390fd5b5f6135c285611052565b5f818152609e602052604090205490915060ff166135f3576040516387c9d21960e01b815260040160405180910390fd5b60605f7f000000000000000000000000000000000000000000000000000000000000000087608001516136269190615b54565b90504363ffffffff168163ffffffff161115613655576040516378f67ae160e11b815260040160405180910390fd5b61366c875f015188602001518960a001518461423f565b87516001600160a01b039081165f908152609a60205260408120548a5160a08c015194965092169350916136a29190849061294d565b90505f5b8860a00151518110156138f5575f6136cd8a60a001518381518110612075576120756157a6565b90505f6137038b60c0015184815181106136e9576136e96157a6565b60200260200101518785815181106113da576113da6157a6565b905087156137d357816001600160a01b0316632eae418c8c5f01518d60a001518681518110613734576137346157a6565b60200260200101518d8d8881811061374e5761374e6157a6565b90506020020160208101906137639190614e30565b60405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529091166044820152606481018490526084015f604051808303815f87803b1580156137b8575f5ffd5b505af11580156137ca573d5f5f3e3d5ffd5b505050506138eb565b5f5f836001600160a01b031663c4623ea18e5f01518f60a0015188815181106137fe576137fe6157a6565b60200260200101518f8f8a818110613818576138186157a6565b905060200201602081019061382d9190614e30565b60405160e085901b6001600160e01b03191681526001600160a01b039384166004820152918316602483015290911660448201526064810186905260840160408051808303815f875af1158015613886573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138aa9190615b70565b915091506138e8878e5f01518f60a0015188815181106138cc576138cc6157a6565b602002602001015185858b8b815181106131fa576131fa6157a6565b50505b50506001016136a6565b5087516001600160a01b03165f90815260a360205260409020613918908561436d565b505f84815260a46020526040812080546001600160a01b031990811682556001820180548216905560028201805490911690556003810182905560048101805463ffffffff191690559061396f6005830182614bcd565b61397c600683015f614bcd565b50505f848152609e602052604090819020805460ff19169055517f1f40400889274ed07b24845e5054a87a0cab969eb1277aafe61ae352e7c32a00906139c59086815260200190565b60405180910390a15050505050505050565b5f611f5a8383670de0b6b3a7640000614378565b5f613a0982613a036139fc87613f0b565b86906139d7565b906139d7565b949350505050565b6001600160a01b038085165f90815260986020908152604080832093861683529290529081208054839290613a47908490615b92565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610dd393929190615aee565b6001600160a01b038085165f90815260a56020908152604080832093871683529290529081208190613abc9061445d565b90505f613b16613aec7f000000000000000000000000000000000000000000000000000000000000000043615ba5565b6001600160a01b03808a165f90815260a560209081526040808320938c1683529290522090614477565b90505f613b238284615b92565b9050613b30818787614493565b98975050505050505050565b6033546001600160a01b031633146110505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016122c0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606654606090600190600290811603613c135760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b038084165f818152609a602052604080822080546001600160a01b0319811690915590519316928392917ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467691a35f5f613c7286611861565b9150915081515f03613c8657505050613e40565b81516001600160401b03811115613c9f57613c9f614e82565b604051908082528060200260200182016040528015613cc8578160200160208202803683370190505b5094505f613cd787858561294d565b90505f5b8351811015613e3a576040805160018082528183019092525f916020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833750506040805160018082528183019092529293505f92915060208083019080368337019050509050868481518110613d5b57613d5b6157a6565b6020026020010151835f81518110613d7557613d756157a6565b60200260200101906001600160a01b031690816001600160a01b031681525050858481518110613da757613da76157a6565b6020026020010151825f81518110613dc157613dc16157a6565b602002602001018181525050848481518110613ddf57613ddf6157a6565b6020026020010151815f81518110613df957613df96157a6565b602002602001018181525050613e128b89858585612a94565b8a8581518110613e2457613e246157a6565b6020908102919091010152505050600101613cdb565b50505050505b50919050565b6001600160a01b038084165f908152609960205260409020600101541680613e6e5750613f05565b6001600160a01b0381165f908152609c6020908152604080832085845290915290205460ff1615613eb257604051630d4c4c9160e21b815260040160405180910390fd5b6001600160a01b0381165f908152609c602090815260408083208584528252909120805460ff191660011790558301516124d5908290613ef9908890889084908890610860565b855160208701516144b1565b50505050565b80515f9015613f1b578151611b93565b670de0b6b3a764000092915050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014613f75577f0000000000000000000000000000000000000000000000000000000000000000611b93565b7f000000000000000000000000000000000000000000000000000000000000000092915050565b5f613faa8483856001614503565b613a099085615b92565b5f7f000000000000000000000000000000000000000000000000000000000000000046146140745750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f815f036140a857505f611b93565b611f5a8383614552565b6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610f9e576001600160a01b038084165f90815260a56020908152604080832093861683529290529081206141059061445d565b9050613f054361411584846159ef565b6001600160a01b038088165f90815260a560209081526040808320938a168352929052209190614566565b5f611f5a8383614571565b825f0361416b57614164670de0b6b3a764000082614552565b8455613f05565b6040805160208101909152845481525f906141879085846139eb565b90505f61419484836159ef565b90505f6141b5846141af6141a8888a6159ef565b8590614552565b90614552565b875550505050505050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561420d57602002820191905f5260205f20905b8154815260200190600101908083116141f9575b50505050509050919050565b5f825f01828154811061422e5761422e6157a6565b905f5260205f200154905092915050565b60605f83516001600160401b0381111561425b5761425b614e82565b604051908082528060200260200182016040528015614284578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394d7d00c8787876040518463ffffffff1660e01b81526004016142d893929190615bc1565b5f60405180830381865afa1580156142f2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526143199190810190615a25565b90505f5b85518110156143615761433c88878381518110612a4857612a486157a6565b83828151811061434e5761434e6157a6565b602090810291909101015260010161431d565b50909695505050505050565b5f611f5a83836145bd565b5f80805f19858709858702925082811083820303915050805f036143af578382816143a5576143a5615bfa565b0492505050611f5a565b8084116143f65760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016122c0565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f61446882826146a0565b6001600160e01b031692915050565b5f6144838383836146e5565b6001600160e01b03169392505050565b5f613a096144a18385615c0e565b85906001600160401b03166139d7565b428110156144d257604051630819bdcd60e01b815260040160405180910390fd5b6144e66001600160a01b038516848461472e565b613f0557604051638baa579f60e01b815260040160405180910390fd5b5f5f614510868686614378565b9050600183600281111561452657614526615c2d565b14801561454257505f848061453d5761453d615bfa565b868809115b15611c96576108de6001826159ef565b5f611f5a83670de0b6b3a764000084614378565b610f9e838383614782565b5f8181526001830160205260408120546145b657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611b93565b505f611b93565b5f8181526001830160205260408120548015614697575f6145df600183615b92565b85549091505f906145f290600190615b92565b9050818114614651575f865f018281548110614610576146106157a6565b905f5260205f200154905080875f018481548110614630576146306157a6565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061466257614662615c41565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611b93565b5f915050611b93565b81545f9080156146dd576146c6846146b9600184615b92565b5f91825260209091200190565b5464010000000090046001600160e01b0316613a09565b509092915050565b82545f90816146f686868385614888565b905080156147245761470d866146b9600184615b92565b5464010000000090046001600160e01b03166108de565b5091949350505050565b5f5f5f61473b85856148db565b90925090505f81600481111561475357614753615c2d565b1480156147715750856001600160a01b0316826001600160a01b0316145b806108de57506108de86868661491a565b8254801561483a575f61479a856146b9600185615b92565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b0316602084015291925090851610156147ed5760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff808616911603614838578261480e866146b9600186615b92565b80546001600160e01b03929092166401000000000263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216640100000000029190921617910155565b5f5b81831015611e06575f61489d8484614a01565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156148c7578092506148d5565b6148d28160016159ef565b93505b5061488a565b5f5f825160410361490f576020830151604084015160608501515f1a61490387828585614a1b565b94509450505050612223565b505f90506002612223565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401614942929190615c55565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516149809190615c91565b5f60405180830381855afa9150503d805f81146149b8576040519150601f19603f3d011682016040523d82523d5f602084013e6149bd565b606091505b50915091508180156149d157506020815110155b80156108de57508051630b135d3f60e11b906149f690830160209081019084016159c4565b149695505050505050565b5f614a0f6002848418615ca7565b611f5a908484166159ef565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614a5057505f90506003614acf565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614aa1573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116614ac9575f60019250925050614acf565b91505f90505b94509492505050565b6040518060e001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f63ffffffff16815260200160608152602001606081525090565b828054828255905f5260205f20908101928215614b84579160200282015b82811115614b8457825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614b4f565b50614b90929150614be4565b5090565b828054828255905f5260205f20908101928215614b84579160200282015b82811115614b84578251825591602001919060010190614bb2565b5080545f8255905f5260205f20908101906127f791905b5b80821115614b90575f8155600101614be5565b6001600160a01b03811681146127f7575f5ffd5b8035614c1781614bf8565b919050565b5f5f5f5f5f60a08688031215614c30575f5ffd5b8535614c3b81614bf8565b94506020860135614c4b81614bf8565b93506040860135614c5b81614bf8565b94979396509394606081013594506080013592915050565b5f5f83601f840112614c83575f5ffd5b5081356001600160401b03811115614c99575f5ffd5b6020830191508360208260051b8501011115612223575f5ffd5b5f5f60208385031215614cc4575f5ffd5b82356001600160401b03811115614cd9575f5ffd5b614ce585828601614c73565b90969095509350505050565b602080825282518282018190525f918401906040840190835b81811015610bbf578351835260209384019390920191600101614d0a565b5f60208284031215614d38575f5ffd5b5035919050565b803563ffffffff81168114614c17575f5ffd5b5f5f83601f840112614d62575f5ffd5b5081356001600160401b03811115614d78575f5ffd5b602083019150836020828501011115612223575f5ffd5b5f5f5f5f60608587031215614da2575f5ffd5b8435614dad81614bf8565b9350614dbb60208601614d3f565b925060408501356001600160401b03811115614dd5575f5ffd5b614de187828801614d52565b95989497509550505050565b5f5f5f5f60808587031215614e00575f5ffd5b8435614e0b81614bf8565b93506020850135614e1b81614bf8565b93969395505050506040820135916060013590565b5f60208284031215614e40575f5ffd5b8135611f5a81614bf8565b5f5f60408385031215614e5c575f5ffd5b8235614e6781614bf8565b91506020830135614e7781614bf8565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715614eb857614eb8614e82565b60405290565b604080519081016001600160401b0381118282101715614eb857614eb8614e82565b604051601f8201601f191681016001600160401b0381118282101715614f0857614f08614e82565b604052919050565b5f6001600160401b03821115614f2857614f28614e82565b5060051b60200190565b5f82601f830112614f41575f5ffd5b8135614f54614f4f82614f10565b614ee0565b8082825260208201915060208360051b860101925085831115614f75575f5ffd5b602085015b83811015614f9b578035614f8d81614bf8565b835260209283019201614f7a565b5095945050505050565b5f82601f830112614fb4575f5ffd5b8135614fc2614f4f82614f10565b8082825260208201915060208360051b860101925085831115614fe3575f5ffd5b602085015b83811015614f9b578035835260209283019201614fe8565b5f60e08284031215615010575f5ffd5b615018614e96565b905061502382614c0c565b815261503160208301614c0c565b602082015261504260408301614c0c565b60408201526060828101359082015261505d60808301614d3f565b608082015260a08201356001600160401b0381111561507a575f5ffd5b61508684828501614f32565b60a08301525060c08201356001600160401b038111156150a4575f5ffd5b6150b084828501614fa5565b60c08301525092915050565b5f602082840312156150cc575f5ffd5b81356001600160401b038111156150e1575f5ffd5b613a0984828501615000565b5f602082840312156150fd575f5ffd5b813560ff81168114611f5a575f5ffd5b5f8151808452602084019350602083015f5b828110156151465781516001600160a01b031686526020958601959091019060010161511f565b5093949350505050565b5f8151808452602084019350602083015f5b82811015615146578151865260209586019590910190600101615162565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201515f916151cb9085018263ffffffff169052565b5060a082015160e060a08501526151e560e085018261510d565b905060c083015184820360c0860152611c968282615150565b5f82825180855260208501945060208160051b830101602085015f5b8381101561436157601f19858403018852615236838351615150565b602098890198909350919091019060010161521a565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156152a357605f1987860301845261528e858351615180565b94506020938401939190910190600101615272565b505050508281036020840152611c9681856151fe565b5f5f5f5f5f606086880312156152cd575f5ffd5b85356001600160401b038111156152e2575f5ffd5b6152ee88828901614c73565b90965094505060208601356001600160401b0381111561530c575f5ffd5b61531888828901614c73565b96999598509660400135949350505050565b6001600160401b03811681146127f7575f5ffd5b5f5f5f60608486031215615350575f5ffd5b833561535b81614bf8565b92506020840135915060408401356153728161532a565b809150509250925092565b604081525f61538f604083018561510d565b8281036020840152611c968185615150565b5f5f5f604084860312156153b3575f5ffd5b83356153be81614bf8565b925060208401356001600160401b038111156153d8575f5ffd5b6153e486828701614d52565b9497909650939450505050565b5f5f60408385031215615402575f5ffd5b823561540d81614bf8565b915060208301356001600160401b03811115615427575f5ffd5b61543385828601614f32565b9150509250929050565b602081525f611f5a6020830184615150565b5f5f5f5f5f5f60608789031215615464575f5ffd5b86356001600160401b03811115615479575f5ffd5b61548589828a01614c73565b90975095505060208701356001600160401b038111156154a3575f5ffd5b6154af89828a01614c73565b90955093505060408701356001600160401b038111156154cd575f5ffd5b6154d989828a01614c73565b979a9699509497509295939492505050565b5f5f5f606084860312156154fd575f5ffd5b833561550881614bf8565b925060208401356001600160401b03811115615522575f5ffd5b840160408187031215615533575f5ffd5b61553b614ebe565b81356001600160401b03811115615550575f5ffd5b8201601f81018813615560575f5ffd5b80356001600160401b0381111561557957615579614e82565b61558c601f8201601f1916602001614ee0565b8181528960208385010111156155a0575f5ffd5b816020840160208301375f60209282018301528352928301359282019290925293969395505050506040919091013590565b5f5f604083850312156155e3575f5ffd5b82356155ee81614bf8565b946020939093013593505050565b604081525f61538f6040830185615150565b80151581146127f7575f5ffd5b5f5f5f5f6060858703121561562e575f5ffd5b84356001600160401b03811115615643575f5ffd5b850160e08188031215615654575f5ffd5b935060208501356001600160401b0381111561566e575f5ffd5b61567a87828801614c73565b909450925050604085013561568e8161560e565b939692955090935050565b5f5f5f5f608085870312156156ac575f5ffd5b84356156b781614bf8565b935060208501356156c781614bf8565b925060408501356156d78161532a565b9150606085013561568e8161532a565b5f5f604083850312156156f8575f5ffd5b82356001600160401b0381111561570d575f5ffd5b8301601f8101851361571d575f5ffd5b803561572b614f4f82614f10565b8082825260208201915060208360051b85010192508783111561574c575f5ffd5b6020840193505b8284101561577757833561576681614bf8565b825260209384019390910190615753565b945050505060208301356001600160401b03811115615427575f5ffd5b602081525f611f5a60208301846151fe565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126157ce575f5ffd5b9190910192915050565b5f5f8335601e198436030181126157ed575f5ffd5b8301803591506001600160401b03821115615806575f5ffd5b6020019150600581901b3603821315612223575f5ffd5b5f6020828403121561582d575f5ffd5b8151611f5a8161560e565b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f60208284031215615876575f5ffd5b8151611f5a8161532a565b602081525f611f5a6020830184615180565b5f602082840312156158a3575f5ffd5b8135611f5a8161560e565b5f82601f8301126158bd575f5ffd5b81516158cb614f4f82614f10565b8082825260208201915060208360051b8601019250858311156158ec575f5ffd5b602085015b83811015614f9b5780518352602092830192016158f1565b5f5f6040838503121561591a575f5ffd5b82516001600160401b0381111561592f575f5ffd5b8301601f8101851361593f575f5ffd5b805161594d614f4f82614f10565b8082825260208201915060208360051b85010192508783111561596e575f5ffd5b6020840193505b8284101561599957835161598881614bf8565b825260209384019390910190615975565b8095505050505060208301516001600160401b038111156159b8575f5ffd5b615433858286016158ae565b5f602082840312156159d4575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611b9357611b936159db565b6001600160a01b03831681526040602082018190525f90613a099083018461510d565b5f60208284031215615a35575f5ffd5b81516001600160401b03811115615a4a575f5ffd5b8201601f81018413615a5a575f5ffd5b8051615a68614f4f82614f10565b8082825260208201915060208360051b850101925086831115615a89575f5ffd5b6020840193505b828410156108de578351615aa38161532a565b825260209384019390910190615a90565b5f823560de198336030181126157ce575f5ffd5b5f611b933683615000565b5f60208284031215615ae3575f5ffd5b8151611f5a81614bf8565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60018201615b2357615b236159db565b5060010190565b838152606060208201525f615b426060830185615180565b82810360408401526108de8185615150565b63ffffffff8181168382160190811115611b9357611b936159db565b5f5f60408385031215615b81575f5ffd5b505080516020909101519092909150565b81810381811115611b9357611b936159db565b63ffffffff8281168282160390811115611b9357611b936159db565b6001600160a01b03841681526060602082018190525f90615be49083018561510d565b905063ffffffff83166040830152949350505050565b634e487b7160e01b5f52601260045260245ffd5b6001600160401b038281168282160390811115611b9357611b936159db565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f82518060208501845e5f920191825250919050565b5f82615cc157634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b302bc35114e1921cf8bb16bbe96de3516e750fa9b91287e8e3ac447f0d9fea764736f6c634300081b0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"},{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_MIN_WITHDRAWAL_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"convertToDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"totalQueued\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"spent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"pending\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesBurned\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotStaker\",\"inputs\":[]}]", + Bin: "0x610180604052348015610010575f5ffd5b5060405161601138038061601183398101604081905261002f91610235565b8186868684876001600160a01b03811661005c576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805293841660a05291831660c05290911660e05263ffffffff166101005246610120526100936100b7565b610140526001600160a01b0316610160526100ac610162565b5050505050506102c0565b5f61012051461461015a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b506101405190565b5f54610100900460ff16156101cd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161461021c575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610232575f5ffd5b50565b5f5f5f5f5f5f60c0878903121561024a575f5ffd5b86516102558161021e565b60208801519096506102668161021e565b60408801519095506102778161021e565b60608801519094506102888161021e565b60808801519093506102998161021e565b60a088015190925063ffffffff811681146102b2575f5ffd5b809150509295509295509295565b60805160a05160c05160e05161010051610120516101405161016051615c556103bc5f395f8181610412015261345d01525f61418001525f6140c001525f8181610741015281816114f2015281816136f4015261391201525f818161079101528181610e4701528181610ff80152818161172601528181611bad015281816124b001528181612962015261352001525f818161043901528181610f7e0152818161168d015281816118eb01528181613246015261408001525f818161036f01528181610f4c0152818161183f0152818161259d015261405a01525f81816105a101528181610bdf0152818161111801526127d40152615c555ff3fe608060405234801561000f575f5ffd5b50600436106102b1575f3560e01c8063778e55f31161017b578063bfae3fd2116100e4578063e4cc3f901161009e578063f0e0e67611610079578063f0e0e67614610812578063f2fde38b14610832578063f698da2514610845578063fabc1cbc1461084d575f5ffd5b8063e4cc3f90146107d9578063ee74937f146107ec578063eea9064b146107ff575f5ffd5b8063bfae3fd214610724578063c448feb814610737578063c978f7ac1461076b578063ca8aa7c71461078c578063cd6dc687146107b3578063da8be864146107c6575f5ffd5b80639435bb43116101355780639435bb431461060257806399f5371b14610615578063a1788484146106a3578063a33a3433146106c2578063b7f06ebe146106d5578063bb45fef2146106f7575f5ffd5b8063778e55f31461055f57806378296ec514610589578063886f11951461059c5780638da5cb5b146105c357806390041347146105d45780639104c319146105e7575f5ffd5b806354b7c96c1161021d57806360a0d1ce116101d757806360a0d1ce146104d557806365da1264146104e857806366d5ba93146105105780636d70f7ae146105315780636e17444814610544578063715018a614610557575f5ffd5b806354b7c96c1461045b578063595c6a671461046e578063597b36da146104765780635ac86ab7146104895780635c975abb146104ac5780635dd68579146104b4575f5ffd5b806339b70e381161026e57806339b70e381461036a5780633c651cf2146103a95780633cdeb5e0146103bc5780633e28391d146103ea5780634657e26a1461040d5780634665bcda14610434575f5ffd5b806304a4f979146102b55780630b9f487a146102ef5780630dd8dd0214610302578063136439dd1461032257806325df922e146103375780632aa6d88814610357575b5f5ffd5b6102dc7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b6040519081526020015b60405180910390f35b6102dc6102fd366004614b72565b610860565b610315610310366004614c09565b6108e8565b6040516102e69190614c47565b610335610330366004614c7e565b610bca565b005b61034a610345366004614e13565b610c9f565b6040516102e69190614ec1565b610335610365366004614f23565b610dff565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e6565b6103356103b7366004614f81565b610f41565b6103916103ca366004614fc4565b6001600160a01b039081165f908152609960205260409020600101541690565b6103fd6103f8366004614fc4565b611088565b60405190151581526020016102e6565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b610335610469366004614fdf565b6110a7565b610335611103565b6102dc6104843660046150d2565b6111b2565b6103fd610497366004615103565b606654600160ff9092169190911b9081161490565b6066546102dc565b6104c76104c2366004614fc4565b6111e1565b6040516102e6929190615228565b6103356104e33660046152a9565b611682565b6103916104f6366004614fc4565b609a6020525f90815260409020546001600160a01b031681565b61052361051e366004614fc4565b611817565b6040516102e69291906152e8565b6103fd61053f366004614fc4565b611b17565b6102dc610552366004614fdf565b611b4f565b610335611c55565b6102dc61056d366004614fdf565b609860209081525f928352604080842090915290825290205481565b61033561059736600461530c565b611c66565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b0316610391565b61034a6105e236600461535c565b611cee565b61039173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103356106103660046153a8565b611dc4565b610665610623366004614c7e565b60a46020525f9081526040902080546001820154600283015460038401546004909401546001600160a01b039384169492841693909116919063ffffffff1685565b604080516001600160a01b03968716815294861660208601529290941691830191909152606082015263ffffffff909116608082015260a0016102e6565b6102dc6106b1366004614fc4565b609f6020525f908152604090205481565b6103156106d0366004615444565b611e94565b6103fd6106e3366004614c7e565b609e6020525f908152604090205460ff1681565b6103fd61070536600461552b565b609c60209081525f928352604080842090915290825290205460ff1681565b6102dc610732366004614fdf565b611f2a565b60405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102e6565b61077e61077936600461535c565b611f66565b6040516102e6929190615555565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6103356107c136600461552b565b6121f3565b6103156107d4366004614fc4565b61230e565b6103356107e7366004615574565b61244f565b6103356107fa3660046155f2565b6124a5565b61033561080d366004615444565b612643565b610825610820366004615640565b6126a6565b6040516102e691906156ed565b610335610840366004614fc4565b61274b565b6102dc6127c4565b61033561085b366004614c7e565b6127d2565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad60208201526001600160a01b03808616928201929092528187166060820152908516608082015260a0810183905260c081018290525f906108de9060e001604051602081830303815290604052805190602001206128e9565b9695505050505050565b6066546060906001906002908116036109145760405163840a48d560e01b815260040160405180910390fd5b5f836001600160401b0381111561092d5761092d614c95565b604051908082528060200260200182016040528015610956578160200160208202803683370190505b50335f908152609a60205260408120549192506001600160a01b03909116905b85811015610bbf57868682818110610990576109906156ff565b90506020028101906109a29190615713565b6109b0906020810190615731565b90508787838181106109c4576109c46156ff565b90506020028101906109d69190615713565b6109e09080615731565b905014610a00576040516343714afd60e01b815260040160405180910390fd5b33878783818110610a1357610a136156ff565b9050602002810190610a259190615713565b610a36906060810190604001614fc4565b6001600160a01b031614610a5d576040516330c4716960e21b815260040160405180910390fd5b5f610ac733848a8a86818110610a7557610a756156ff565b9050602002810190610a879190615713565b610a919080615731565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061291792505050565b9050610b9933848a8a86818110610ae057610ae06156ff565b9050602002810190610af29190615713565b610afc9080615731565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508e92508d9150889050818110610b4157610b416156ff565b9050602002810190610b539190615713565b610b61906020810190615731565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250889250612a5e915050565b848381518110610bab57610bab6156ff565b602090810291909101015250600101610976565b509095945050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190615776565b610c6d57604051631d77d47760e21b815260040160405180910390fd5b6066548181168114610c925760405163c61dca5d60e01b815260040160405180910390fd5b610c9b82613037565b5050565b6001600160a01b038084165f908152609a60205260408120546060921690610cc8868387612917565b90505f85516001600160401b03811115610ce457610ce4614c95565b604051908082528060200260200182016040528015610d0d578160200160208202803683370190505b5090505f5b8651811015610df2576001600160a01b0388165f90815260a260205260408120885182908a9085908110610d4857610d486156ff565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050610dcc878381518110610d9a57610d9a6156ff565b6020026020010151858481518110610db457610db46156ff565b6020026020010151836130749092919063ffffffff16565b838381518110610dde57610dde6156ff565b602090810291909101015250600101610d12565b50925050505b9392505050565b610e0833611088565b15610e2657604051633bf2b50360e11b815260040160405180910390fd5b604051632b6241f360e11b815233600482015263ffffffff841660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906356c483e6906044015f604051808303815f87803b158015610e90575f5ffd5b505af1158015610ea2573d5f5f3e3d5ffd5b50505050610eb0338561309a565b610eba33336130fc565b6040516001600160a01b038516815233907fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c19060200160405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051610f33929190615791565b60405180910390a250505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610fa05750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b610fbd5760405163045206a560e21b815260040160405180910390fd5b6001600160a01b038481165f908152609a602052604080822054905163152667d960e31b8152908316600482018190528684166024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa15801561103d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106191906157bf565b90505f61106f8787846131ff565b905061107f8388888888866132e1565b50505050505050565b6001600160a01b039081165f908152609a602052604090205416151590565b816110b18161341f565b6110ce5760405163932d94f760e01b815260040160405180910390fd5b6110d783611b17565b6110f4576040516325ec6c1f60e01b815260040160405180910390fd5b6110fe838361309a565b505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611165573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111899190615776565b6111a657604051631d77d47760e21b815260040160405180910390fd5b6111b05f19613037565b565b5f816040516020016111c491906157da565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0381165f90815260a3602052604081206060918291611206906134c9565b8051909150806001600160401b0381111561122357611223614c95565b6040519080825280602002602001820160405280156112b057816020015b61129d6040518060e001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f63ffffffff16815260200160608152602001606081525090565b8152602001906001900390816112415790505b509350806001600160401b038111156112cb576112cb614c95565b6040519080825280602002602001820160405280156112fe57816020015b60608152602001906001900390816112e95790505b506001600160a01b038087165f908152609a60205260408120549295509116905b828110156116795760a45f85838151811061133c5761133c6156ff565b60209081029190910181015182528181019290925260409081015f20815160e08101835281546001600160a01b03908116825260018301548116828601526002830154168184015260038201546060820152600482015463ffffffff1660808201526005820180548451818702810187019095528085529194929360a08601939092908301828280156113f657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116113d8575b505050505081526020016006820180548060200260200160405190810160405280929190818152602001828054801561144c57602002820191905f5260205f20905b815481526020019060010190808311611438575b505050505081525050868281518110611467576114676156ff565b6020026020010181905250858181518110611484576114846156ff565b602002602001015160a00151516001600160401b038111156114a8576114a8614c95565b6040519080825280602002602001820160405280156114d1578160200160208202803683370190505b508582815181106114e4576114e46156ff565b60200260200101819052505f7f0000000000000000000000000000000000000000000000000000000000000000878381518110611523576115236156ff565b6020026020010151608001516115399190615800565b905060604363ffffffff168263ffffffff1610156115815761157a89858a8681518110611568576115686156ff565b602002602001015160a00151856134d5565b90506115ac565b6115a989858a8681518110611598576115986156ff565b602002602001015160a00151612917565b90505b5f5b8884815181106115c0576115c06156ff565b602002602001015160a001515181101561166b5761162d8985815181106115e9576115e96156ff565b602002602001015160c001518281518110611606576116066156ff565b6020026020010151838381518110611620576116206156ff565b6020026020010151613603565b88858151811061163f5761163f6156ff565b60200260200101518281518110611658576116586156ff565b60209081029190910101526001016115ae565b50505080600101905061131f565b50505050915091565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116cb57604051633213a66160e21b815260040160405180910390fd5b6116d483611088565b156110fe576001600160a01b038381165f908152609a602052604080822054905163152667d960e31b81529083166004820181905273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa15801561176b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178f91906157bf565b6001600160a01b0386165f90815260a26020908152604080832073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08452825280832081519283019091525481529192506117f5866117ed6001600160401b0380871690891661360a565b84919061361e565b905061107f848873beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08461363c565b6040516394f649dd60e01b81526001600160a01b03828116600483015260609182915f9182917f000000000000000000000000000000000000000000000000000000000000000016906394f649dd906024015f60405180830381865afa158015611883573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118aa9190810190615877565b60405163fe243a1760e01b81526001600160a01b03888116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac060248301529294509092505f917f0000000000000000000000000000000000000000000000000000000000000000169063fe243a1790604401602060405180830381865afa158015611930573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119549190615932565b9050805f0361196857509094909350915050565b5f835160016119779190615949565b6001600160401b0381111561198e5761198e614c95565b6040519080825280602002602001820160405280156119b7578160200160208202803683370190505b5090505f845160016119c99190615949565b6001600160401b038111156119e0576119e0614c95565b604051908082528060200260200182016040528015611a09578160200160208202803683370190505b50905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082865181518110611a3457611a346156ff565b60200260200101906001600160a01b031690816001600160a01b0316815250508281865181518110611a6857611a686156ff565b60209081029190910101525f5b8551811015611b0957858181518110611a9057611a906156ff565b6020026020010151838281518110611aaa57611aaa6156ff565b60200260200101906001600160a01b031690816001600160a01b031681525050848181518110611adc57611adc6156ff565b6020026020010151828281518110611af657611af66156ff565b6020908102919091010152600101611a75565b509097909650945050505050565b5f6001600160a01b03821615801590611b4957506001600160a01b038083165f818152609a6020526040902054909116145b92915050565b6040805160018082528183019092525f918291906020808301908036833701905050905082815f81518110611b8657611b866156ff565b6001600160a01b03928316602091820292909201015260405163547afb8760e01b81525f917f0000000000000000000000000000000000000000000000000000000000000000169063547afb8790611be4908890869060040161595c565b5f60405180830381865afa158015611bfe573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c25919081019061597f565b5f81518110611c3657611c366156ff565b60200260200101519050611c4c8585835f6136b6565b95945050505050565b611c5d613773565b6111b05f6137cd565b82611c708161341f565b611c8d5760405163932d94f760e01b815260040160405180910390fd5b611c9684611b17565b611cb3576040516325ec6c1f60e01b815260040160405180910390fd5b836001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f33929190615791565b60605f82516001600160401b03811115611d0a57611d0a614c95565b604051908082528060200260200182016040528015611d33578160200160208202803683370190505b5090505f5b8351811015611dbc576001600160a01b0385165f9081526098602052604081208551909190869084908110611d6f57611d6f6156ff565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054828281518110611da957611da96156ff565b6020908102919091010152600101611d38565b509392505050565b606654600290600490811603611ded5760405163840a48d560e01b815260040160405180910390fd5b611df561381e565b855f5b81811015611e8857611e80898983818110611e1557611e156156ff565b9050602002810190611e279190615a0e565b611e3090615a22565b888884818110611e4257611e426156ff565b9050602002810190611e549190615731565b888886818110611e6657611e666156ff565b9050602002016020810190611e7b9190615a2d565b613877565b600101611df8565b505061107f600160c955565b6060611e9f33611088565b611ebc5760405163a5c7c44560e01b815260040160405180910390fd5b611ec533611b17565b15611ee3576040516311ca333560e31b815260040160405180910390fd5b611eec84611b17565b611f09576040516325ec6c1f60e01b815260040160405180910390fd5b611f1233613cf0565b9050611f2033858585613f4f565b610df833856130fc565b6001600160a01b038083165f90815260a260209081526040808320938516835292815282822083519182019093529154825290610df890614014565b60608082516001600160401b03811115611f8257611f82614c95565b604051908082528060200260200182016040528015611fab578160200160208202803683370190505b50915082516001600160401b03811115611fc757611fc7614c95565b604051908082528060200260200182016040528015611ff0578160200160208202803683370190505b506001600160a01b038086165f908152609a602052604081205492935091169061201b868387612917565b90505f5b85518110156121e8575f61204b87838151811061203e5761203e6156ff565b6020026020010151614033565b9050806001600160a01b031663fe243a178989858151811061206f5761206f6156ff565b60200260200101516040518363ffffffff1660e01b81526004016120a99291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa1580156120c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e89190615932565b8583815181106120fa576120fa6156ff565b6020026020010181815250505f60a25f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f89858151811061213d5761213d6156ff565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f8201548152505090506121c186848151811061218f5761218f6156ff565b60200260200101518585815181106121a9576121a96156ff565b60200260200101518361361e9092919063ffffffff16565b8784815181106121d3576121d36156ff565b6020908102919091010152505060010161201f565b5050505b9250929050565b5f54610100900460ff161580801561221157505f54600160ff909116105b8061222a5750303b15801561222a57505f5460ff166001145b6122925760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156122b3575f805461ff0019166101001790555b6122bc82613037565b6122c5836137cd565b80156110fe575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b606061231982611088565b6123365760405163a5c7c44560e01b815260040160405180910390fd5b61233f82611b17565b1561235d576040516311ca333560e31b815260040160405180910390fd5b6001600160a01b038216612384576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b038083165f818152609a6020526040902054909116903314806123b257506123b28161341f565b806123d857506001600160a01b038181165f908152609960205260409020600101541633145b6123f557604051631e499a2360e11b815260040160405180910390fd5b336001600160a01b0384161461244657806001600160a01b0316836001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b610df883613cf0565b6066546002906004908116036124785760405163840a48d560e01b815260040160405180910390fd5b61248061381e565b61249461248c86615a22565b858585613877565b61249e600160c955565b5050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146124ee576040516323d871a560e01b815260040160405180910390fd5b6001600160a01b038085165f90815260986020908152604080832093871683529290529081205461252c906001600160401b038086169085166140a5565b90505f61253b868686866136b6565b6125459083615949565b9050612553865f878561363c565b6001600160a01b03851673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461263b57604051633b9e9f0160e21b81526001600160a01b038681166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063ee7a7c04906044015f604051808303815f87803b1580156125de575f5ffd5b505af11580156125f0573d5f5f3e3d5ffd5b5050604080516001600160a01b038981168252602082018690528a1693507feff6aab2bc3f7c648896e1522eae71d6c22e3b0e218206b3f40af0e4d204716b92500160405180910390a25b505050505050565b61264c33611088565b1561266a57604051633bf2b50360e11b815260040160405180910390fd5b61267383611b17565b612690576040516325ec6c1f60e01b815260040160405180910390fd5b61269c33848484613f4f565b6110fe33846130fc565b60605f83516001600160401b038111156126c2576126c2614c95565b6040519080825280602002602001820160405280156126f557816020015b60608152602001906001900390816126e05790505b5090505f5b8451811015611dbc57612726858281518110612718576127186156ff565b602002602001015185611cee565b828281518110612738576127386156ff565b60209081029190910101526001016126fa565b612753613773565b6001600160a01b0381166127b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401612289565b6127c1816137cd565b50565b5f6127cd6140bd565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128529190615a48565b6001600160a01b0316336001600160a01b0316146128835760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146128aa5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020015b60405180910390a25050565b5f6128f26140bd565b60405161190160f01b60208201526022810191909152604281018390526062016111c4565b60605f82516001600160401b0381111561293357612933614c95565b60405190808252806020026020018201604052801561295c578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663547afb8786866040518363ffffffff1660e01b81526004016129ae92919061595c565b5f60405180830381865afa1580156129c8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129ef919081019061597f565b90505f5b8451811015610bbf57612a3987868381518110612a1257612a126156ff565b6020026020010151848481518110612a2c57612a2c6156ff565b60200260200101516131ff565b838281518110612a4b57612a4b6156ff565b60209081029190910101526001016129f3565b5f6001600160a01b038616612a86576040516339b190bb60e11b815260040160405180910390fd5b83515f03612aa75760405163796cc52560e01b815260040160405180910390fd5b5f84516001600160401b03811115612ac157612ac1614c95565b604051908082528060200260200182016040528015612aea578160200160208202803683370190505b5090505f85516001600160401b03811115612b0757612b07614c95565b604051908082528060200260200182016040528015612b30578160200160208202803683370190505b5090505f5b8651811015612e6a575f612b5488838151811061203e5761203e6156ff565b90505f60a25f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8a8581518110612b8d57612b8d6156ff565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050816001600160a01b031663fe243a178c8b8681518110612bec57612bec6156ff565b60200260200101516040518363ffffffff1660e01b8152600401612c269291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015612c41573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c659190615932565b888481518110612c7757612c776156ff565b60200260200101511115612c9e5760405163f020e5b960e01b815260040160405180910390fd5b612ccd888481518110612cb357612cb36156ff565b60200260200101518885815181106121a9576121a96156ff565b848481518110612cdf57612cdf6156ff565b602002602001018181525050612d27848481518110612d0057612d006156ff565b6020026020010151888581518110612d1a57612d1a6156ff565b60200260200101516141a2565b858481518110612d3957612d396156ff565b60209081029190910101526001600160a01b038a1615612dce57612d908a8a8581518110612d6957612d696156ff565b6020026020010151878681518110612d8357612d836156ff565b60200260200101516141bb565b612dce8a8c8b8681518110612da757612da76156ff565b6020026020010151878781518110612dc157612dc16156ff565b602002602001015161363c565b816001600160a01b031663724af4238c8b8681518110612df057612df06156ff565b60200260200101518b8781518110612e0a57612e0a6156ff565b60200260200101516040518463ffffffff1660e01b8152600401612e3093929190615a63565b5f604051808303815f87803b158015612e47575f5ffd5b505af1158015612e59573d5f5f3e3d5ffd5b505050505050806001019050612b35565b506001600160a01b0388165f908152609f60205260408120805491829190612e9183615a87565b91905055505f6040518060e001604052808b6001600160a01b031681526020018a6001600160a01b031681526020018b6001600160a01b031681526020018381526020014363ffffffff1681526020018981526020018581525090505f612ef7826111b2565b5f818152609e602090815260408083208054600160ff19909116811790915560a4835292819020865181546001600160a01b03199081166001600160a01b039283161783558885015195830180548216968316969096179095559187015160028201805490951692169190911790925560608501516003830155608085015160048301805463ffffffff191663ffffffff90921691909117905560a085015180519394508593612fad9260058501920190614a87565b5060c08201518051612fc9916006840191602090910190614aea565b5050506001600160a01b038b165f90815260a360205260409020612fed9082614249565b507f26b2aae26516e8719ef50ea2f6831a2efbd4e37dccdf0f6936b27bc08e793e3081838660405161302193929190615a9f565b60405180910390a19a9950505050505050505050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f6130928261308c61308587614014565b8690614254565b90614254565b949350505050565b6001600160a01b038281165f8181526099602090815260409182902060010180546001600160a01b0319169486169485179055905192835290917f773b54c04d756fcc5e678111f7d730de3be98192000799eee3d63716055a87c691016128dd565b6066545f906001908116036131245760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b038381165f818152609a602052604080822080546001600160a01b0319169487169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a35f5f61318185611817565b915091505f613191868685612917565b90505f5b835181101561107f576131f786888684815181106131b5576131b56156ff565b60200260200101515f8786815181106131d0576131d06156ff565b60200260200101518787815181106131ea576131ea6156ff565b60200260200101516132e1565b600101613195565b5f73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016132d15760405163a3d75e0960e01b81526001600160a01b0385811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a3d75e0990602401602060405180830381865afa15801561328d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b191906157bf565b90506132c96001600160401b0384811690831661360a565b915050610df8565b506001600160401b031692915050565b805f0361330157604051630a33bc6960e21b815260040160405180910390fd5b6001600160a01b038086165f90815260a26020908152604080832093881683529290522061333181858585614268565b6040805160208101909152815481527f8be932bac54561f27260f95463d9b8ab37e06b2842e5ee2404157cc13df6eb8f908790879061336f90614014565b60405161337e93929190615a63565b60405180910390a161338f86611088565b1561107f576001600160a01b038088165f908152609860209081526040808320938916835292905290812080548592906133ca908490615949565b92505081905550866001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c87878660405161340e93929190615a63565b60405180910390a250505050505050565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156134a5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b499190615776565b60605f610df8836142d7565b60605f83516001600160401b038111156134f1576134f1614c95565b60405190808252806020026020018201604052801561351a578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394d7d00c8787876040518463ffffffff1660e01b815260040161356e93929190615ac9565b5f60405180830381865afa158015613588573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526135af919081019061597f565b90505f5b85518110156135f7576135d288878381518110612a1257612a126156ff565b8382815181106135e4576135e46156ff565b60209081029190910101526001016135b3565b50909695505050505050565b5f610df883835b5f610df88383670de0b6b3a7640000614330565b5f6130928261363661362f87614014565b869061360a565b9061360a565b6001600160a01b038085165f90815260986020908152604080832093861683529290529081208054839290613672908490615b02565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f3393929190615a63565b6001600160a01b038085165f90815260a560209081526040808320938716835292905290812081906136e790614415565b90505f61374d60016137197f000000000000000000000000000000000000000000000000000000000000000043615b15565b6137239190615b15565b6001600160a01b03808a165f90815260a560209081526040808320938c168352929052209061442f565b90505f61375a8284615b02565b905061376781878761444b565b98975050505050505050565b6033546001600160a01b031633146111b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612289565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600260c954036138705760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401612289565b600260c955565b60a084015151821461389c576040516343714afd60e01b815260040160405180910390fd5b83604001516001600160a01b0316336001600160a01b0316146138d2576040516316110d3560e21b815260040160405180910390fd5b5f6138dc856111b2565b5f818152609e602052604090205490915060ff1661390d576040516387c9d21960e01b815260040160405180910390fd5b60605f7f000000000000000000000000000000000000000000000000000000000000000087608001516139409190615800565b90504363ffffffff168163ffffffff161061396e576040516378f67ae160e11b815260040160405180910390fd5b613985875f015188602001518960a00151846134d5565b87516001600160a01b039081165f908152609a60205260408120548a5160a08c015194965092169350916139bb91908490612917565b90505f5b8860a0015151811015613c0e575f6139e68a60a00151838151811061203e5761203e6156ff565b90505f613a1c8b60c001518481518110613a0257613a026156ff565b6020026020010151878581518110611620576116206156ff565b90508715613aec57816001600160a01b0316632eae418c8c5f01518d60a001518681518110613a4d57613a4d6156ff565b60200260200101518d8d88818110613a6757613a676156ff565b9050602002016020810190613a7c9190614fc4565b60405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529091166044820152606481018490526084015f604051808303815f87803b158015613ad1575f5ffd5b505af1158015613ae3573d5f5f3e3d5ffd5b50505050613c04565b5f5f836001600160a01b031663c4623ea18e5f01518f60a001518881518110613b1757613b176156ff565b60200260200101518f8f8a818110613b3157613b316156ff565b9050602002016020810190613b469190614fc4565b60405160e085901b6001600160e01b03191681526001600160a01b039384166004820152918316602483015290911660448201526064810186905260840160408051808303815f875af1158015613b9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bc39190615b31565b91509150613c01878e5f01518f60a001518881518110613be557613be56156ff565b602002602001015185858b8b815181106131ea576131ea6156ff565b50505b50506001016139bf565b5087516001600160a01b03165f90815260a360205260409020613c319085614469565b505f84815260a46020526040812080546001600160a01b031990811682556001820180548216905560028201805490911690556003810182905560048101805463ffffffff1916905590613c886005830182614b23565b613c95600683015f614b23565b50505f848152609e602052604090819020805460ff19169055517f1f40400889274ed07b24845e5054a87a0cab969eb1277aafe61ae352e7c32a0090613cde9086815260200190565b60405180910390a15050505050505050565b606654606090600190600290811603613d1c5760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b038084165f818152609a602052604080822080546001600160a01b0319811690915590519316928392917ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467691a35f5f613d7b86611817565b9150915081515f03613d8f57505050613f49565b81516001600160401b03811115613da857613da8614c95565b604051908082528060200260200182016040528015613dd1578160200160208202803683370190505b5094505f613de0878585612917565b90505f5b8351811015613f43576040805160018082528183019092525f916020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833750506040805160018082528183019092529293505f92915060208083019080368337019050509050868481518110613e6457613e646156ff565b6020026020010151835f81518110613e7e57613e7e6156ff565b60200260200101906001600160a01b031690816001600160a01b031681525050858481518110613eb057613eb06156ff565b6020026020010151825f81518110613eca57613eca6156ff565b602002602001018181525050848481518110613ee857613ee86156ff565b6020026020010151815f81518110613f0257613f026156ff565b602002602001018181525050613f1b8b89858585612a5e565b8a8581518110613f2d57613f2d6156ff565b6020908102919091010152505050600101613de4565b50505050505b50919050565b6001600160a01b038084165f908152609960205260409020600101541680613f77575061400e565b6001600160a01b0381165f908152609c6020908152604080832085845290915290205460ff1615613fbb57604051630d4c4c9160e21b815260040160405180910390fd5b6001600160a01b0381165f908152609c602090815260408083208584528252909120805460ff1916600117905583015161249e908290614002908890889084908890610860565b85516020870151614474565b50505050565b80515f9015614024578151611b49565b670de0b6b3a764000092915050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461407e577f0000000000000000000000000000000000000000000000000000000000000000611b49565b7f000000000000000000000000000000000000000000000000000000000000000092915050565b5f6140b384838560016144c6565b6130929085615b02565b5f7f0000000000000000000000000000000000000000000000000000000000000000461461417d5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f815f036141b157505f611b49565b610df88383614254565b6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146110fe576001600160a01b038084165f90815260a560209081526040808320938616835292905290812061420e90614415565b905061400e4361421e8484615949565b6001600160a01b038088165f90815260a560209081526040808320938a168352929052209190614515565b5f610df88383614520565b5f610df883670de0b6b3a764000084614330565b825f0361428857614281670de0b6b3a764000082614254565b845561400e565b6040805160208101909152845481525f906142a490858461361e565b90505f6142b18483615949565b90505f6142cc8461308c6142c5888a615949565b8590614254565b875550505050505050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561432457602002820191905f5260205f20905b815481526020019060010190808311614310575b50505050509050919050565b5f80805f19858709858702925082811083820303915050805f036143675783828161435d5761435d615b53565b0492505050610df8565b8084116143ae5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612289565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f614420828261456c565b6001600160e01b031692915050565b5f61443b8383836145b1565b6001600160e01b03169392505050565b5f6130926144598385615b67565b85906001600160401b031661360a565b5f610df883836145fa565b4281101561449557604051630819bdcd60e01b815260040160405180910390fd5b6144a96001600160a01b03851684846146dd565b61400e57604051638baa579f60e01b815260040160405180910390fd5b5f5f6144d3868686614330565b905060018360028111156144e9576144e9615b86565b14801561450557505f848061450057614500615b53565b868809115b15611c4c576108de600182615949565b6110fe838383614731565b5f81815260018301602052604081205461456557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611b49565b505f611b49565b81545f9080156145a95761459284614585600184615b02565b5f91825260209091200190565b5464010000000090046001600160e01b0316613092565b509092915050565b82545f90816145c286868385614837565b905080156145f0576145d986614585600184615b02565b5464010000000090046001600160e01b03166108de565b5091949350505050565b5f81815260018301602052604081205480156146d4575f61461c600183615b02565b85549091505f9061462f90600190615b02565b905081811461468e575f865f01828154811061464d5761464d6156ff565b905f5260205f200154905080875f01848154811061466d5761466d6156ff565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061469f5761469f615b9a565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611b49565b5f915050611b49565b5f5f5f6146ea858561488a565b90925090505f81600481111561470257614702615b86565b1480156147205750856001600160a01b0316826001600160a01b0316145b806108de57506108de8686866148c9565b825480156147e9575f61474985614585600185615b02565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b03166020840152919250908516101561479c5760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff8086169116036147e757826147bd86614585600186615b02565b80546001600160e01b03929092166401000000000263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216640100000000029190921617910155565b5f5b81831015611dbc575f61484c84846149b0565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561487657809250614884565b614881816001615949565b93505b50614839565b5f5f82516041036148be576020830151604084015160608501515f1a6148b2878285856149ca565b945094505050506121ec565b505f905060026121ec565b5f5f5f856001600160a01b0316631626ba7e60e01b86866040516024016148f1929190615bae565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161492f9190615bea565b5f60405180830381855afa9150503d805f8114614967576040519150601f19603f3d011682016040523d82523d5f602084013e61496c565b606091505b509150915081801561498057506020815110155b80156108de57508051630b135d3f60e11b906149a59083016020908101908401615932565b149695505050505050565b5f6149be6002848418615c00565b610df890848416615949565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156149ff57505f90506003614a7e565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614a50573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116614a78575f60019250925050614a7e565b91505f90505b94509492505050565b828054828255905f5260205f20908101928215614ada579160200282015b82811115614ada57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614aa5565b50614ae6929150614b3a565b5090565b828054828255905f5260205f20908101928215614ada579160200282015b82811115614ada578251825591602001919060010190614b08565b5080545f8255905f5260205f20908101906127c191905b5b80821115614ae6575f8155600101614b3b565b6001600160a01b03811681146127c1575f5ffd5b8035614b6d81614b4e565b919050565b5f5f5f5f5f60a08688031215614b86575f5ffd5b8535614b9181614b4e565b94506020860135614ba181614b4e565b93506040860135614bb181614b4e565b94979396509394606081013594506080013592915050565b5f5f83601f840112614bd9575f5ffd5b5081356001600160401b03811115614bef575f5ffd5b6020830191508360208260051b85010111156121ec575f5ffd5b5f5f60208385031215614c1a575f5ffd5b82356001600160401b03811115614c2f575f5ffd5b614c3b85828601614bc9565b90969095509350505050565b602080825282518282018190525f918401906040840190835b81811015610bbf578351835260209384019390920191600101614c60565b5f60208284031215614c8e575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715614ccb57614ccb614c95565b60405290565b604080519081016001600160401b0381118282101715614ccb57614ccb614c95565b604051601f8201601f191681016001600160401b0381118282101715614d1b57614d1b614c95565b604052919050565b5f6001600160401b03821115614d3b57614d3b614c95565b5060051b60200190565b5f82601f830112614d54575f5ffd5b8135614d67614d6282614d23565b614cf3565b8082825260208201915060208360051b860101925085831115614d88575f5ffd5b602085015b83811015614dae578035614da081614b4e565b835260209283019201614d8d565b5095945050505050565b5f82601f830112614dc7575f5ffd5b8135614dd5614d6282614d23565b8082825260208201915060208360051b860101925085831115614df6575f5ffd5b602085015b83811015614dae578035835260209283019201614dfb565b5f5f5f60608486031215614e25575f5ffd5b8335614e3081614b4e565b925060208401356001600160401b03811115614e4a575f5ffd5b614e5686828701614d45565b92505060408401356001600160401b03811115614e71575f5ffd5b614e7d86828701614db8565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614eb7578151865260209586019590910190600101614e99565b5093949350505050565b602081525f610df86020830184614e87565b803563ffffffff81168114614b6d575f5ffd5b5f5f83601f840112614ef6575f5ffd5b5081356001600160401b03811115614f0c575f5ffd5b6020830191508360208285010111156121ec575f5ffd5b5f5f5f5f60608587031215614f36575f5ffd5b8435614f4181614b4e565b9350614f4f60208601614ed3565b925060408501356001600160401b03811115614f69575f5ffd5b614f7587828801614ee6565b95989497509550505050565b5f5f5f5f60808587031215614f94575f5ffd5b8435614f9f81614b4e565b93506020850135614faf81614b4e565b93969395505050506040820135916060013590565b5f60208284031215614fd4575f5ffd5b8135610df881614b4e565b5f5f60408385031215614ff0575f5ffd5b8235614ffb81614b4e565b9150602083013561500b81614b4e565b809150509250929050565b5f60e08284031215615026575f5ffd5b61502e614ca9565b905061503982614b62565b815261504760208301614b62565b602082015261505860408301614b62565b60408201526060828101359082015261507360808301614ed3565b608082015260a08201356001600160401b03811115615090575f5ffd5b61509c84828501614d45565b60a08301525060c08201356001600160401b038111156150ba575f5ffd5b6150c684828501614db8565b60c08301525092915050565b5f602082840312156150e2575f5ffd5b81356001600160401b038111156150f7575f5ffd5b61309284828501615016565b5f60208284031215615113575f5ffd5b813560ff81168114610df8575f5ffd5b5f8151808452602084019350602083015f5b82811015614eb75781516001600160a01b0316865260209586019590910190600101615135565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201515f916151a79085018263ffffffff169052565b5060a082015160e060a08501526151c160e0850182615123565b905060c083015184820360c0860152611c4c8282614e87565b5f82825180855260208501945060208160051b830101602085015f5b838110156135f757601f19858403018852615212838351614e87565b60209889019890935091909101906001016151f6565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561527f57605f1987860301845261526a85835161515c565b9450602093840193919091019060010161524e565b505050508281036020840152611c4c81856151da565b6001600160401b03811681146127c1575f5ffd5b5f5f5f606084860312156152bb575f5ffd5b83356152c681614b4e565b92506020840135915060408401356152dd81615295565b809150509250925092565b604081525f6152fa6040830185615123565b8281036020840152611c4c8185614e87565b5f5f5f6040848603121561531e575f5ffd5b833561532981614b4e565b925060208401356001600160401b03811115615343575f5ffd5b61534f86828701614ee6565b9497909650939450505050565b5f5f6040838503121561536d575f5ffd5b823561537881614b4e565b915060208301356001600160401b03811115615392575f5ffd5b61539e85828601614d45565b9150509250929050565b5f5f5f5f5f5f606087890312156153bd575f5ffd5b86356001600160401b038111156153d2575f5ffd5b6153de89828a01614bc9565b90975095505060208701356001600160401b038111156153fc575f5ffd5b61540889828a01614bc9565b90955093505060408701356001600160401b03811115615426575f5ffd5b61543289828a01614bc9565b979a9699509497509295939492505050565b5f5f5f60608486031215615456575f5ffd5b833561546181614b4e565b925060208401356001600160401b0381111561547b575f5ffd5b84016040818703121561548c575f5ffd5b615494614cd1565b81356001600160401b038111156154a9575f5ffd5b8201601f810188136154b9575f5ffd5b80356001600160401b038111156154d2576154d2614c95565b6154e5601f8201601f1916602001614cf3565b8181528960208385010111156154f9575f5ffd5b816020840160208301375f60209282018301528352928301359282019290925293969395505050506040919091013590565b5f5f6040838503121561553c575f5ffd5b823561554781614b4e565b946020939093013593505050565b604081525f6152fa6040830185614e87565b80151581146127c1575f5ffd5b5f5f5f5f60608587031215615587575f5ffd5b84356001600160401b0381111561559c575f5ffd5b850160e081880312156155ad575f5ffd5b935060208501356001600160401b038111156155c7575f5ffd5b6155d387828801614bc9565b90945092505060408501356155e781615567565b939692955090935050565b5f5f5f5f60808587031215615605575f5ffd5b843561561081614b4e565b9350602085013561562081614b4e565b9250604085013561563081615295565b915060608501356155e781615295565b5f5f60408385031215615651575f5ffd5b82356001600160401b03811115615666575f5ffd5b8301601f81018513615676575f5ffd5b8035615684614d6282614d23565b8082825260208201915060208360051b8501019250878311156156a5575f5ffd5b6020840193505b828410156156d05783356156bf81614b4e565b8252602093840193909101906156ac565b945050505060208301356001600160401b03811115615392575f5ffd5b602081525f610df860208301846151da565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615727575f5ffd5b9190910192915050565b5f5f8335601e19843603018112615746575f5ffd5b8301803591506001600160401b0382111561575f575f5ffd5b6020019150600581901b36038213156121ec575f5ffd5b5f60208284031215615786575f5ffd5b8151610df881615567565b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f602082840312156157cf575f5ffd5b8151610df881615295565b602081525f610df8602083018461515c565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff8181168382160190811115611b4957611b496157ec565b5f82601f83011261582b575f5ffd5b8151615839614d6282614d23565b8082825260208201915060208360051b86010192508583111561585a575f5ffd5b602085015b83811015614dae57805183526020928301920161585f565b5f5f60408385031215615888575f5ffd5b82516001600160401b0381111561589d575f5ffd5b8301601f810185136158ad575f5ffd5b80516158bb614d6282614d23565b8082825260208201915060208360051b8501019250878311156158dc575f5ffd5b6020840193505b828410156159075783516158f681614b4e565b8252602093840193909101906158e3565b8095505050505060208301516001600160401b03811115615926575f5ffd5b61539e8582860161581c565b5f60208284031215615942575f5ffd5b5051919050565b80820180821115611b4957611b496157ec565b6001600160a01b03831681526040602082018190525f9061309290830184615123565b5f6020828403121561598f575f5ffd5b81516001600160401b038111156159a4575f5ffd5b8201601f810184136159b4575f5ffd5b80516159c2614d6282614d23565b8082825260208201915060208360051b8501019250868311156159e3575f5ffd5b6020840193505b828410156108de5783516159fd81615295565b8252602093840193909101906159ea565b5f823560de19833603018112615727575f5ffd5b5f611b493683615016565b5f60208284031215615a3d575f5ffd5b8135610df881615567565b5f60208284031215615a58575f5ffd5b8151610df881614b4e565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60018201615a9857615a986157ec565b5060010190565b838152606060208201525f615ab7606083018561515c565b82810360408401526108de8185614e87565b6001600160a01b03841681526060602082018190525f90615aec90830185615123565b905063ffffffff83166040830152949350505050565b81810381811115611b4957611b496157ec565b63ffffffff8281168282160390811115611b4957611b496157ec565b5f5f60408385031215615b42575f5ffd5b505080516020909101519092909150565b634e487b7160e01b5f52601260045260245ffd5b6001600160401b038281168282160390811115611b4957611b496157ec565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f82518060208501845e5f920191825250919050565b5f82615c1a57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b5026cd99da9f0fbef2508808be6d5977145f46d257de170fa0dbf0977792ccc64736f6c634300081b0033", } // DelegationManagerABI is the input ABI used to generate the binding from. @@ -381,6 +381,37 @@ func (_DelegationManager *DelegationManagerCallerSession) CalculateWithdrawalRoo return _DelegationManager.Contract.CalculateWithdrawalRoot(&_DelegationManager.CallOpts, withdrawal) } +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_DelegationManager *DelegationManagerCaller) ConvertToDepositShares(opts *bind.CallOpts, staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _DelegationManager.contract.Call(opts, &out, "convertToDepositShares", staker, strategies, withdrawableShares) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_DelegationManager *DelegationManagerSession) ConvertToDepositShares(staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + return _DelegationManager.Contract.ConvertToDepositShares(&_DelegationManager.CallOpts, staker, strategies, withdrawableShares) +} + +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_DelegationManager *DelegationManagerCallerSession) ConvertToDepositShares(staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + return _DelegationManager.Contract.ConvertToDepositShares(&_DelegationManager.CallOpts, staker, strategies, withdrawableShares) +} + // CumulativeWithdrawalsQueued is a free data retrieval call binding the contract method 0xa1788484. // // Solidity: function cumulativeWithdrawalsQueued(address staker) view returns(uint256 totalQueued) @@ -1256,46 +1287,25 @@ func (_DelegationManager *DelegationManagerTransactorSession) CompleteQueuedWith return _DelegationManager.Contract.CompleteQueuedWithdrawal(&_DelegationManager.TransactOpts, withdrawal, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_DelegationManager *DelegationManagerTransactor) CompleteQueuedWithdrawals(opts *bind.TransactOpts, tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _DelegationManager.contract.Transact(opts, "completeQueuedWithdrawals", tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_DelegationManager *DelegationManagerSession) CompleteQueuedWithdrawals(tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _DelegationManager.Contract.CompleteQueuedWithdrawals(&_DelegationManager.TransactOpts, tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_DelegationManager *DelegationManagerTransactorSession) CompleteQueuedWithdrawals(tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _DelegationManager.Contract.CompleteQueuedWithdrawals(&_DelegationManager.TransactOpts, tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_DelegationManager *DelegationManagerTransactor) CompleteQueuedWithdrawals0(opts *bind.TransactOpts, withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _DelegationManager.contract.Transact(opts, "completeQueuedWithdrawals0", withdrawals, tokens, receiveAsTokens) +func (_DelegationManager *DelegationManagerTransactor) CompleteQueuedWithdrawals(opts *bind.TransactOpts, withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _DelegationManager.contract.Transact(opts, "completeQueuedWithdrawals", withdrawals, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_DelegationManager *DelegationManagerSession) CompleteQueuedWithdrawals0(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _DelegationManager.Contract.CompleteQueuedWithdrawals0(&_DelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) +func (_DelegationManager *DelegationManagerSession) CompleteQueuedWithdrawals(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _DelegationManager.Contract.CompleteQueuedWithdrawals(&_DelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_DelegationManager *DelegationManagerTransactorSession) CompleteQueuedWithdrawals0(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _DelegationManager.Contract.CompleteQueuedWithdrawals0(&_DelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) +func (_DelegationManager *DelegationManagerTransactorSession) CompleteQueuedWithdrawals(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _DelegationManager.Contract.CompleteQueuedWithdrawals(&_DelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) } // DecreaseDelegatedShares is a paid mutator transaction binding the contract method 0x60a0d1ce. diff --git a/pkg/bindings/DelegationManagerStorage/binding.go b/pkg/bindings/DelegationManagerStorage/binding.go index 4c2097129..809ca657d 100644 --- a/pkg/bindings/DelegationManagerStorage/binding.go +++ b/pkg/bindings/DelegationManagerStorage/binding.go @@ -55,7 +55,7 @@ type ISignatureUtilsSignatureWithExpiry struct { // DelegationManagerStorageMetaData contains all meta data concerning the DelegationManagerStorage contract. var DelegationManagerStorageMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"numToComplete\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"totalQueued\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"spent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"pending\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesBurned\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotStaker\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"convertToDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"totalQueued\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"spent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"pending\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesBurned\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotStaker\",\"inputs\":[]}]", } // DelegationManagerStorageABI is the input ABI used to generate the binding from. @@ -359,6 +359,37 @@ func (_DelegationManagerStorage *DelegationManagerStorageCallerSession) Calculat return _DelegationManagerStorage.Contract.CalculateWithdrawalRoot(&_DelegationManagerStorage.CallOpts, withdrawal) } +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_DelegationManagerStorage *DelegationManagerStorageCaller) ConvertToDepositShares(opts *bind.CallOpts, staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _DelegationManagerStorage.contract.Call(opts, &out, "convertToDepositShares", staker, strategies, withdrawableShares) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_DelegationManagerStorage *DelegationManagerStorageSession) ConvertToDepositShares(staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + return _DelegationManagerStorage.Contract.ConvertToDepositShares(&_DelegationManagerStorage.CallOpts, staker, strategies, withdrawableShares) +} + +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_DelegationManagerStorage *DelegationManagerStorageCallerSession) ConvertToDepositShares(staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + return _DelegationManagerStorage.Contract.ConvertToDepositShares(&_DelegationManagerStorage.CallOpts, staker, strategies, withdrawableShares) +} + // CumulativeWithdrawalsQueued is a free data retrieval call binding the contract method 0xa1788484. // // Solidity: function cumulativeWithdrawalsQueued(address staker) view returns(uint256 totalQueued) @@ -1048,46 +1079,25 @@ func (_DelegationManagerStorage *DelegationManagerStorageTransactorSession) Comp return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawal(&_DelegationManagerStorage.TransactOpts, withdrawal, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_DelegationManagerStorage *DelegationManagerStorageTransactor) CompleteQueuedWithdrawals(opts *bind.TransactOpts, tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _DelegationManagerStorage.contract.Transact(opts, "completeQueuedWithdrawals", tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_DelegationManagerStorage *DelegationManagerStorageSession) CompleteQueuedWithdrawals(tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawals(&_DelegationManagerStorage.TransactOpts, tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_DelegationManagerStorage *DelegationManagerStorageTransactorSession) CompleteQueuedWithdrawals(tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawals(&_DelegationManagerStorage.TransactOpts, tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_DelegationManagerStorage *DelegationManagerStorageTransactor) CompleteQueuedWithdrawals0(opts *bind.TransactOpts, withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _DelegationManagerStorage.contract.Transact(opts, "completeQueuedWithdrawals0", withdrawals, tokens, receiveAsTokens) +func (_DelegationManagerStorage *DelegationManagerStorageTransactor) CompleteQueuedWithdrawals(opts *bind.TransactOpts, withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _DelegationManagerStorage.contract.Transact(opts, "completeQueuedWithdrawals", withdrawals, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_DelegationManagerStorage *DelegationManagerStorageSession) CompleteQueuedWithdrawals0(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawals0(&_DelegationManagerStorage.TransactOpts, withdrawals, tokens, receiveAsTokens) +func (_DelegationManagerStorage *DelegationManagerStorageSession) CompleteQueuedWithdrawals(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawals(&_DelegationManagerStorage.TransactOpts, withdrawals, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_DelegationManagerStorage *DelegationManagerStorageTransactorSession) CompleteQueuedWithdrawals0(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawals0(&_DelegationManagerStorage.TransactOpts, withdrawals, tokens, receiveAsTokens) +func (_DelegationManagerStorage *DelegationManagerStorageTransactorSession) CompleteQueuedWithdrawals(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _DelegationManagerStorage.Contract.CompleteQueuedWithdrawals(&_DelegationManagerStorage.TransactOpts, withdrawals, tokens, receiveAsTokens) } // DecreaseDelegatedShares is a paid mutator transaction binding the contract method 0x60a0d1ce. diff --git a/pkg/bindings/EigenPod/binding.go b/pkg/bindings/EigenPod/binding.go index 8d0903441..0b51113cc 100644 --- a/pkg/bindings/EigenPod/binding.go +++ b/pkg/bindings/EigenPod/binding.go @@ -74,7 +74,7 @@ type IEigenPodTypesValidatorInfo struct { // EigenPodMetaData contains all meta data concerning the EigenPod contract. var EigenPodMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_ethPOS\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"},{\"name\":\"_GENESIS_TIME\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"GENESIS_TIME\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ethPOS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amountWei\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"validatorIndex\",\"type\":\"uint40\",\"indexed\":false,\"internalType\":\"uint40\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorIndex\",\"type\":\"uint40\",\"indexed\":true,\"internalType\":\"uint40\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"validatorIndex\",\"type\":\"uint40\",\"indexed\":false,\"internalType\":\"uint40\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorIndex\",\"type\":\"uint40\",\"indexed\":true,\"internalType\":\"uint40\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidValidatorFieldsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", - Bin: "0x60e060405234801561000f575f5ffd5b50604051613c7c380380613c7c83398101604081905261002e91610131565b6001600160a01b03808416608052821660a0526001600160401b03811660c05261005661005e565b505050610186565b5f54610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610118575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461012e575f5ffd5b50565b5f5f5f60608486031215610143575f5ffd5b835161014e8161011a565b602085015190935061015f8161011a565b60408501519092506001600160401b038116811461017b575f5ffd5b809150509250925092565b60805160a05160c051613a7f6101fd5f395f61060401525f81816102a90152818161063f015281816106e7015281816109ab01528181610b7501528181610e4e01528181610ef50152818161112b01528181611479015281816115ad01526127bb01525f81816104c60152610f5e0152613a7f5ff3fe608060405260043610610164575f3560e01c80636fcd0e53116100cd578063c490744211610087578063dda3346c11610062578063dda3346c14610596578063ee94d67c146105b5578063f074ba62146105d4578063f2882461146105f3575f5ffd5b8063c490744214610539578063c4d66de814610558578063d06d558714610577575f5ffd5b80636fcd0e53146104545780637439841f1461048057806374cdd798146104b557806388676cad146104e85780639b4e463414610507578063b522538a1461051a575f5ffd5b80634665bcda1161011e5780634665bcda1461029857806347d28372146102cb57806352396a59146103b657806358753357146103ea57806358eaee79146104095780636c0d2d5a14610435575f5ffd5b8063039157d2146101a25780630b18ff66146101c35780632340e8d3146101ff5780633474aa16146102225780633f65cf191461025357806342ecff2a14610272575f5ffd5b3661019e576040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b5f5ffd5b3480156101ad575f5ffd5b506101c16101bc366004612ff3565b610626565b005b3480156101ce575f5ffd5b506033546101e2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561020a575f5ffd5b5061021460395481565b6040519081526020016101f6565b34801561022d575f5ffd5b506034546001600160401b03165b6040516001600160401b0390911681526020016101f6565b34801561025e575f5ffd5b506101c161026d3660046130ac565b610952565b34801561027d575f5ffd5b50603a5461023b90600160401b90046001600160401b031681565b3480156102a3575f5ffd5b506101e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156102d6575f5ffd5b5061035b6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a081018252603c548152603d5462ffffff811660208301526001600160401b0363010000008204811693830193909352600160581b810460070b6060830152600160981b9004909116608082015290565b6040516101f691905f60a0820190508251825262ffffff60208401511660208301526001600160401b036040840151166040830152606083015160070b60608301526001600160401b03608084015116608083015292915050565b3480156103c1575f5ffd5b5061023b6103d0366004613181565b603b6020525f90815260409020546001600160401b031681565b3480156103f5575f5ffd5b50603e546101e2906001600160a01b031681565b348015610414575f5ffd5b506104286104233660046131de565b610bda565b6040516101f69190613250565b348015610440575f5ffd5b5061021461044f366004613181565b610c3c565b34801561045f575f5ffd5b5061047361046e36600461325e565b610d4a565b6040516101f69190613275565b34801561048b575f5ffd5b5061042861049a36600461325e565b5f90815260366020526040902054600160c01b900460ff1690565b3480156104c0575f5ffd5b506101e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f3575f5ffd5b506101c16105023660046132d8565b610df5565b6101c16105153660046132f3565b610eea565b348015610525575f5ffd5b506104736105343660046131de565b611031565b348015610544575f5ffd5b506101c1610553366004613383565b611120565b348015610563575f5ffd5b506101c16105723660046133ad565b611257565b348015610582575f5ffd5b506101c16105913660046133ad565b6113a1565b3480156105a1575f5ffd5b506101c16105b0366004613498565b611435565b3480156105c0575f5ffd5b50603a5461023b906001600160401b031681565b3480156105df575f5ffd5b506101c16105ee36600461356a565b611594565b3480156105fe575f5ffd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa15801561068c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b091906135d1565b156106ce5760405163840a48d560e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600860048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610734573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075891906135d1565b156107765760405163840a48d560e01b815260040160405180910390fd5b5f6107ba61078485806135ec565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061199192505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156108285761082861321c565b60028111156108395761083961321c565b81525050905080604001516001600160401b0316876001600160401b031611610875576040516337e07ffd60e01b815260040160405180910390fd5b60018160600151600281111561088d5761088d61321c565b146108ab5760405163d49e19a760e01b815260040160405180910390fd5b6108ee6108b886806135ec565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506119b392505050565b61090b5760405163161ce5ed60e31b815260040160405180910390fd5b61091d61091788610c3c565b876119db565b610940863561092c87806135ec565b61093960208a018a613631565b8651611a80565b6109495f611ba7565b50505050505050565b6033546001600160a01b03163314806109755750603e546001600160a01b031633145b6109925760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156109f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1c91906135d1565b15610a3a5760405163840a48d560e01b815260040160405180910390fd5b8584148015610a4857508382145b610a65576040516343714afd60e01b815260040160405180910390fd5b603a546001600160401b03600160401b9091048116908a1611610a9b576040516337e07ffd60e01b815260040160405180910390fd5b610aad610aa78a610c3c565b896119db565b5f805b87811015610b4557610b318a358a8a84818110610acf57610acf613673565b9050602002016020810190610ae49190613687565b898985818110610af657610af6613673565b9050602002810190610b089190613631565b898987818110610b1a57610b1a613673565b9050602002810190610b2c91906135ec565b611d27565b610b3b90836136bf565b9150600101610ab0565b5060335460405163a1ca780b60e01b81526001600160a01b0391821660048201525f6024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b158015610bb8575f5ffd5b505af1158015610bca573d5f5f3e3d5ffd5b5050505050505050505050505050565b5f5f610c1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121dc92505050565b5f90815260366020526040902054600160c01b900460ff169150505b92915050565b5f610c4a611fff600c6136d2565b610c5d6001600160401b038416426136e9565b10610c7b57604051637944e66d60e11b815260040160405180910390fd5b604080516001600160401b03841660208201525f918291720f3df6d732807ef1319fb7b8bb8522d0beac02910160408051601f1981840301815290829052610cc291613713565b5f60405180830381855afa9150503d805f8114610cfa576040519150601f19603f3d011682016040523d82523d5f602084013e610cff565b606091505b5091509150818015610d1157505f8151115b610d2e5760405163558ad0a360e01b815260040160405180910390fd5b80806020019051810190610d42919061371e565b949350505050565b610d71604080516080810182525f8082526020820181905291810182905290606082015290565b5f82815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610ddb57610ddb61321c565b6002811115610dec57610dec61321c565b90525092915050565b6033546001600160a01b0316331480610e185750603e546001600160a01b031633145b610e355760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610e9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebf91906135d1565b15610edd5760405163840a48d560e01b815260040160405180910390fd5b610ee682611ba7565b5050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f3357604051633213a66160e21b815260040160405180910390fd5b346801bc16d674ec80000014610f5c5760405163049696b360e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610f9f61226d565b8888886040518863ffffffff1660e01b8152600401610fc39695949392919061378b565b5f604051808303818588803b158015610fda575f5ffd5b505af1158015610fec573d5f5f3e3d5ffd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e2385856040516110229291906137d9565b60405180910390a15050505050565b611058604080516080810182525f8082526020820181905291810182905290606082015290565b60365f61109985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121dc92505050565b815260208082019290925260409081015f20815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156111055761110561321c565b60028111156111165761111661321c565b9052509392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461116957604051633213a66160e21b815260040160405180910390fd5b5f611178633b9aca0083613800565b9050611191633b9aca006001600160401b0383166136d2565b6034549092506001600160401b0390811690821611156111c4576040516302c6f54760e21b815260040160405180910390fd5b603480548291905f906111e19084906001600160401b0316613813565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161124091815260200190565b60405180910390a261125283836122b1565b505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6112f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611317575f805461ff0019166101001790555b6001600160a01b03821661133e576040516339b190bb60e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0384161790558015610ee6575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6033546001600160a01b031633146113cc5760405163719f370360e11b815260040160405180910390fd5b603e54604080516001600160a01b03928316815291831660208301527ffb8129080a19d34dceac04ba253fc50304dc86c729bd63cdca4a969ad19a5eac910160405180910390a1603e80546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146114605760405163719f370360e11b815260040160405180910390fd5b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156114c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ea91906135d1565b156115085760405163840a48d560e01b815260040160405180910390fd5b825184511461152a576040516343714afd60e01b815260040160405180910390fd5b5f5b845181101561158d576115858385838151811061154b5761154b613673565b602002602001015187848151811061156557611565613673565b60200260200101516001600160a01b03166123c69092919063ffffffff16565b60010161152c565b5050505050565b604051635ac86ab760e01b8152600760048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156115fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161e91906135d1565b1561163c5760405163840a48d560e01b815260040160405180910390fd5b603a54600160401b90046001600160401b03165f81900361167057604051631a544f4960e01b815260040160405180910390fd5b6040805160a081018252603c54808252603d5462ffffff811660208401526001600160401b0363010000008204811694840194909452600160581b810460070b6060840152600160981b90049092166080820152906116cf9087612418565b5f805b8581101561193857368787838181106116ed576116ed613673565b90506020028101906116ff9190613832565b80355f908152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561176f5761176f61321c565b60028111156117805761178061321c565b905250905060018160600151600281111561179d5761179d61321c565b146117a9575050611930565b856001600160401b031681604001516001600160401b0316106117cd575050611930565b5f80806117dd848a8f35886124c9565b60208b01805193965091945092506117f482613850565b62ffffff1690525060808801805184919061181090839061386d565b6001600160401b031690525060608801805183919061183090839061388c565b60070b905250611840818861386d565b85355f908152603660209081526040918290208751815492890151938901516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060880151939a50879390929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b8360028111156118e4576118e461321c565b021790555050845160405164ffffffffff90911691506001600160401b038b16907fa91c59033c3423e18b54d0acecebb4972f9ea95aedf5f4cae3b677b02eaf3a3f905f90a350505050505b6001016116d2565b506001600160401b038084165f908152603b60205260408120805484939192916119649185911661386d565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550610949826125ec565b5f815f815181106119a4576119a4613673565b60200260200101519050919050565b5f816003815181106119c7576119c7613673565b60200260200101515f5f1b14159050919050565b6119e7600360206136d2565b6119f46020830183613631565b905014611a14576040516313717da960e21b815260040160405180910390fd5b611a63611a246020830183613631565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508692505084359050600361281b565b610ee6576040516309bde33960e01b815260040160405180910390fd5b60088414611aa15760405163200591bd60e01b815260040160405180910390fd5b6005611aaf602860016136bf565b611ab991906136bf565b611ac49060206136d2565b8214611ae3576040516313717da960e21b815260040160405180910390fd5b5f611b1f8686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061283292505050565b90505f64ffffffffff8316611b36602860016136bf565b600b901b179050611b8085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508c925086915085905061281b565b611b9d576040516309bde33960e01b815260040160405180910390fd5b5050505050505050565b603a54600160401b90046001600160401b031615611bd75760405162be9bc360e81b815260040160405180910390fd5b603a546001600160401b03428116911603611c05576040516367db5b8b60e01b815260040160405180910390fd5b6034545f906001600160401b0316611c21633b9aca0047613800565b611c2b9190613813565b9050818015611c4157506001600160401b038116155b15611c5f576040516332dea95960e21b815260040160405180910390fd5b5f6040518060a00160405280611c7442610c3c565b815260395462ffffff1660208201526001600160401b0380851660408301525f60608301819052608090920191909152603a805442909216600160401b026fffffffffffffffff0000000000000000199092169190911790559050611cd8816125ec565b805160208083015160405162ffffff90911681526001600160401b034216917f575796133bbed337e5b39aa49a30dc2556a91e0c6c2af4b7b886ae77ebef1076910160405180910390a3505050565b5f5f611d648484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061199192505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff166002811115611dd257611dd261321c565b6002811115611de357611de361321c565b90525090505f81606001516002811115611dff57611dff61321c565b14611e1d576040516335e09e9d60e01b815260040160405180910390fd5b6001600160401b038016611e628686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612ac292505050565b6001600160401b031603611e8957604051631958236d60e21b815260040160405180910390fd5b6001600160401b038016611ece8686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612ae692505050565b6001600160401b031614611ef557604051632eade63760e01b815260040160405180910390fd5b611efd61226d565b611f06906138bb565b611f418686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612afd92505050565b14611f5f57604051633772dd5360e11b815260040160405180910390fd5b5f611f9b8686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612b1192505050565b9050611fab8a87878b8b8e611a80565b60398054905f611fba836138de565b9091555050603a545f90600160401b90046001600160401b031615611ff157603a54600160401b90046001600160401b0316611ffe565b603a546001600160401b03165b6040805160808101825264ffffffffff8d1681526001600160401b03858116602083015283169181019190915290915060608101600190525f858152603660209081526040918290208351815492850151938501516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b031990951691909216179290921792831682178155606084015190929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b8360028111156120d3576120d361321c565b021790555050603d80548492506013906120fe908490600160981b90046001600160401b031661386d565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c104414498a60405161215e919064ffffffffff91909116815260200190565b60405180910390a16040805164ffffffffff8c1681526001600160401b03838116602083015284168183015290517f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df9181900360600190a16121cd633b9aca006001600160401b0384166136d2565b9b9a5050505050505050505050565b5f81516030146121ff57604051634f88323960e11b815260040160405180910390fd5b6040516002906122159084905f906020016138f6565b60408051601f198184030181529082905261222f91613713565b602060405180830381855afa15801561224a573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610c36919061371e565b60408051600160f81b60208201525f602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b804710156123015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016112ed565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461234a576040519150601f19603f3d011682016040523d82523d5f602084013e61234f565b606091505b50509050806112525760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016112ed565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611252908490612b28565b612424600560036136bf565b61242f9060206136d2565b61243c6020830183613631565b90501461245c576040516313717da960e21b815260040160405180910390fd5b606c6124ac61246e6020840184613631565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525087925050853590508461281b565b611252576040516309bde33960e01b815260040160405180910390fd5b83516020850151905f908190816124e1878388612bfb565b9050846001600160401b0316816001600160401b03161461255b57612506858261391a565b6040805164ffffffffff851681526001600160401b038b8116602083015284168183015290519195507f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df919081900360600190a15b6001600160401b0380821660208b0181905290891660408b01525f036125e05760398054905f61258a83613949565b9091555050600260608a015261259f8461395e565b92508164ffffffffff16886001600160401b03167f2a02361ffa66cf2c2da4682c2355a6adcaa9f6c227b6e6563e68480f9587626a60405160405180910390a35b50509450945094915050565b602081015162ffffff161561268c578051603c556020810151603d80546040840151606085015160809095015162ffffff9094166affffffffffffffffffffff199092169190911763010000006001600160401b0392831602176fffffffffffffffffffffffffffffffff60581b1916600160581b9482169490940267ffffffffffffffff60981b191693909317600160981b9390921692909202179055565b60808101516034545f916126a8916001600160401b031661386d565b90505f826060015183604001516126bf919061388c565b60408401516034805492935090915f906126e39084906001600160401b031661386d565b82546101009290920a6001600160401b03818102199093169183160217909155603a8054600160401b810483166001600160801b03199091161790555f915061273390633b9aca009085166136d2565b90505f612748633b9aca00600785900b613983565b603a546040518281529192506001600160401b0316907f525408c201bc1576eb44116f6478f1c2a54775b19a043bcfdc708364f74f8e449060200160405180910390a260335460405163a1ca780b60e01b81526001600160a01b03918216600482015260248101849052604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b1580156127fe575f5ffd5b505af1158015612810573d5f5f3e3d5ffd5b505050505050505050565b5f83612828868585612cd9565b1495945050505050565b5f5f600283516128429190613800565b90505f816001600160401b0381111561285d5761285d6133c8565b604051908082528060200260200182016040528015612886578160200160208202803683370190505b5090505f5b82811015612980576002856128a083836136d2565b815181106128b0576128b0613673565b6020026020010151868360026128c691906136d2565b6128d19060016136bf565b815181106128e1576128e1613673565b6020026020010151604051602001612903929190918252602082015260400190565b60408051601f198184030181529082905261291d91613713565b602060405180830381855afa158015612938573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061295b919061371e565b82828151811061296d5761296d613673565b602090810291909101015260010161288b565b5061298c600283613800565b91505b8115612a9f575f5b82811015612a8c576002826129ac83836136d2565b815181106129bc576129bc613673565b6020026020010151838360026129d291906136d2565b6129dd9060016136bf565b815181106129ed576129ed613673565b6020026020010151604051602001612a0f929190918252602082015260400190565b60408051601f1981840301815290829052612a2991613713565b602060405180830381855afa158015612a44573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612a67919061371e565b828281518110612a7957612a79613673565b6020908102919091010152600101612997565b50612a98600283613800565b915061298f565b805f81518110612ab157612ab1613673565b602002602001015192505050919050565b5f610c3682600581518110612ad957612ad9613673565b6020026020010151612dad565b5f610c3682600681518110612ad957612ad9613673565b5f816001815181106119a4576119a4613673565b5f610c3682600281518110612ad957612ad9613673565b5f612b7c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e149092919063ffffffff16565b905080515f1480612b9c575080806020019051810190612b9c91906135d1565b6112525760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016112ed565b5f612c08602660016136bf565b612c139060206136d2565b612c206040840184613631565b905014612c40576040516313717da960e21b815260040160405180910390fd5b5f612c4c6004856139b2565b64ffffffffff169050612ca5612c656040850185613631565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250899250505060208601358461281b565b612cc2576040516309bde33960e01b815260040160405180910390fd5b612cd0836020013585612e22565b95945050505050565b5f83515f14158015612cf6575060208451612cf491906139db565b155b612d13576040516313717da960e21b815260040160405180910390fd5b604080516020808201909252848152905b85518111612da357612d376002856139db565b5f03612d695781515f528086015160205260208260405f60026107d05a03fa612d5e575f5ffd5b600284049350612d91565b808601515f52815160205260208260405f60026107d05a03fa612d8a575f5ffd5b6002840493505b612d9c6020826136bf565b9050612d24565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b6060610d4284845f85612e4e565b5f80612e2f6004846139ee565b612e3a906040613a17565b64ffffffffff169050610d4284821b612dad565b606082471015612eaf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016112ed565b5f5f866001600160a01b03168587604051612eca9190613713565b5f6040518083038185875af1925050503d805f8114612f04576040519150601f19603f3d011682016040523d82523d5f602084013e612f09565b606091505b5091509150612f1a87838387612f25565b979650505050505050565b60608315612f935782515f03612f8c576001600160a01b0385163b612f8c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016112ed565b5081610d42565b610d428383815115612fa85781518083602001fd5b8060405162461bcd60e51b81526004016112ed9190613a37565b80356001600160401b0381168114612fd8575f5ffd5b919050565b5f60408284031215612fed575f5ffd5b50919050565b5f5f5f60608486031215613005575f5ffd5b61300e84612fc2565b925060208401356001600160401b03811115613028575f5ffd5b61303486828701612fdd565b92505060408401356001600160401b0381111561304f575f5ffd5b61305b86828701612fdd565b9150509250925092565b5f5f83601f840112613075575f5ffd5b5081356001600160401b0381111561308b575f5ffd5b6020830191508360208260051b85010111156130a5575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60a0898b0312156130c3575f5ffd5b6130cc89612fc2565b975060208901356001600160401b038111156130e6575f5ffd5b6130f28b828c01612fdd565b97505060408901356001600160401b0381111561310d575f5ffd5b6131198b828c01613065565b90975095505060608901356001600160401b03811115613137575f5ffd5b6131438b828c01613065565b90955093505060808901356001600160401b03811115613161575f5ffd5b61316d8b828c01613065565b999c989b5096995094979396929594505050565b5f60208284031215613191575f5ffd5b61319a82612fc2565b9392505050565b5f5f83601f8401126131b1575f5ffd5b5081356001600160401b038111156131c7575f5ffd5b6020830191508360208285010111156130a5575f5ffd5b5f5f602083850312156131ef575f5ffd5b82356001600160401b03811115613204575f5ffd5b613210858286016131a1565b90969095509350505050565b634e487b7160e01b5f52602160045260245ffd5b6003811061324c57634e487b7160e01b5f52602160045260245ffd5b9052565b60208101610c368284613230565b5f6020828403121561326e575f5ffd5b5035919050565b5f6080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b03604084015116604083015260608301516132c16060840182613230565b5092915050565b80151581146132d5575f5ffd5b50565b5f602082840312156132e8575f5ffd5b813561319a816132c8565b5f5f5f5f5f60608688031215613307575f5ffd5b85356001600160401b0381111561331c575f5ffd5b613328888289016131a1565b90965094505060208601356001600160401b03811115613346575f5ffd5b613352888289016131a1565b96999598509660400135949350505050565b6001600160a01b03811681146132d5575f5ffd5b8035612fd881613364565b5f5f60408385031215613394575f5ffd5b823561339f81613364565b946020939093013593505050565b5f602082840312156133bd575f5ffd5b813561319a81613364565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613404576134046133c8565b604052919050565b5f6001600160401b03821115613424576134246133c8565b5060051b60200190565b5f82601f83011261343d575f5ffd5b813561345061344b8261340c565b6133dc565b8082825260208201915060208360051b860101925085831115613471575f5ffd5b602085015b8381101561348e578035835260209283019201613476565b5095945050505050565b5f5f5f606084860312156134aa575f5ffd5b83356001600160401b038111156134bf575f5ffd5b8401601f810186136134cf575f5ffd5b80356134dd61344b8261340c565b8082825260208201915060208360051b8501019250888311156134fe575f5ffd5b6020840193505b8284101561352957833561351881613364565b825260209384019390910190613505565b955050505060208401356001600160401b03811115613546575f5ffd5b6135528682870161342e565b92505061356160408501613378565b90509250925092565b5f5f5f6040848603121561357c575f5ffd5b83356001600160401b03811115613591575f5ffd5b61359d86828701612fdd565b93505060208401356001600160401b038111156135b8575f5ffd5b6135c486828701613065565b9497909650939450505050565b5f602082840312156135e1575f5ffd5b815161319a816132c8565b5f5f8335601e19843603018112613601575f5ffd5b8301803591506001600160401b0382111561361a575f5ffd5b6020019150600581901b36038213156130a5575f5ffd5b5f5f8335601e19843603018112613646575f5ffd5b8301803591506001600160401b0382111561365f575f5ffd5b6020019150368190038213156130a5575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613697575f5ffd5b813564ffffffffff8116811461319a575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c3657610c366136ab565b8082028115828204841417610c3657610c366136ab565b81810381811115610c3657610c366136ab565b5f81518060208401855e5f93019283525090919050565b5f61319a82846136fc565b5f6020828403121561372e575f5ffd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b608081525f61379e60808301888a613735565b82810360208401526137b0818861375d565b905082810360408401526137c5818688613735565b915050826060830152979650505050505050565b602081525f610d42602083018486613735565b634e487b7160e01b5f52601260045260245ffd5b5f8261380e5761380e6137ec565b500490565b6001600160401b038281168282160390811115610c3657610c366136ab565b5f8235605e19833603018112613846575f5ffd5b9190910192915050565b5f62ffffff821680613864576138646136ab565b5f190192915050565b6001600160401b038181168382160190811115610c3657610c366136ab565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff1982121715610c3657610c366136ab565b80516020808301519190811015612fed575f1960209190910360031b1b16919050565b5f600182016138ef576138ef6136ab565b5060010190565b5f61390182856136fc565b6001600160801b03199390931683525050601001919050565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff82131715610c3657610c366136ab565b5f81613957576139576136ab565b505f190190565b5f8160070b677fffffffffffffff19810361397b5761397b6136ab565b5f0392915050565b8082025f8212600160ff1b8414161561399e5761399e6136ab565b8181058314821517610c3657610c366136ab565b5f64ffffffffff8316806139c8576139c86137ec565b8064ffffffffff84160491505092915050565b5f826139e9576139e96137ec565b500690565b5f64ffffffffff831680613a0457613a046137ec565b8064ffffffffff84160691505092915050565b64ffffffffff81811683821602908116908181146132c1576132c16136ab565b602081525f61319a602083018461375d56fea264697066735822122041f3d0192828f2df1c23694dfaa1e02f9100c9f916204d3eeef7279199f4fc2364736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b50604051613c7c380380613c7c83398101604081905261002e91610131565b6001600160a01b03808416608052821660a0526001600160401b03811660c05261005661005e565b505050610186565b5f54610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610118575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461012e575f5ffd5b50565b5f5f5f60608486031215610143575f5ffd5b835161014e8161011a565b602085015190935061015f8161011a565b60408501519092506001600160401b038116811461017b575f5ffd5b809150509250925092565b60805160a05160c051613a7f6101fd5f395f61060401525f81816102a90152818161063f015281816106e7015281816109ab01528181610b7501528181610e4e01528181610ef50152818161112b01528181611479015281816115ad01526127bb01525f81816104c60152610f5e0152613a7f5ff3fe608060405260043610610164575f3560e01c80636fcd0e53116100cd578063c490744211610087578063dda3346c11610062578063dda3346c14610596578063ee94d67c146105b5578063f074ba62146105d4578063f2882461146105f3575f5ffd5b8063c490744214610539578063c4d66de814610558578063d06d558714610577575f5ffd5b80636fcd0e53146104545780637439841f1461048057806374cdd798146104b557806388676cad146104e85780639b4e463414610507578063b522538a1461051a575f5ffd5b80634665bcda1161011e5780634665bcda1461029857806347d28372146102cb57806352396a59146103b657806358753357146103ea57806358eaee79146104095780636c0d2d5a14610435575f5ffd5b8063039157d2146101a25780630b18ff66146101c35780632340e8d3146101ff5780633474aa16146102225780633f65cf191461025357806342ecff2a14610272575f5ffd5b3661019e576040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b5f5ffd5b3480156101ad575f5ffd5b506101c16101bc366004612ff3565b610626565b005b3480156101ce575f5ffd5b506033546101e2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561020a575f5ffd5b5061021460395481565b6040519081526020016101f6565b34801561022d575f5ffd5b506034546001600160401b03165b6040516001600160401b0390911681526020016101f6565b34801561025e575f5ffd5b506101c161026d3660046130ac565b610952565b34801561027d575f5ffd5b50603a5461023b90600160401b90046001600160401b031681565b3480156102a3575f5ffd5b506101e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156102d6575f5ffd5b5061035b6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a081018252603c548152603d5462ffffff811660208301526001600160401b0363010000008204811693830193909352600160581b810460070b6060830152600160981b9004909116608082015290565b6040516101f691905f60a0820190508251825262ffffff60208401511660208301526001600160401b036040840151166040830152606083015160070b60608301526001600160401b03608084015116608083015292915050565b3480156103c1575f5ffd5b5061023b6103d0366004613181565b603b6020525f90815260409020546001600160401b031681565b3480156103f5575f5ffd5b50603e546101e2906001600160a01b031681565b348015610414575f5ffd5b506104286104233660046131de565b610bda565b6040516101f69190613250565b348015610440575f5ffd5b5061021461044f366004613181565b610c3c565b34801561045f575f5ffd5b5061047361046e36600461325e565b610d4a565b6040516101f69190613275565b34801561048b575f5ffd5b5061042861049a36600461325e565b5f90815260366020526040902054600160c01b900460ff1690565b3480156104c0575f5ffd5b506101e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f3575f5ffd5b506101c16105023660046132d8565b610df5565b6101c16105153660046132f3565b610eea565b348015610525575f5ffd5b506104736105343660046131de565b611031565b348015610544575f5ffd5b506101c1610553366004613383565b611120565b348015610563575f5ffd5b506101c16105723660046133ad565b611257565b348015610582575f5ffd5b506101c16105913660046133ad565b6113a1565b3480156105a1575f5ffd5b506101c16105b0366004613498565b611435565b3480156105c0575f5ffd5b50603a5461023b906001600160401b031681565b3480156105df575f5ffd5b506101c16105ee36600461356a565b611594565b3480156105fe575f5ffd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa15801561068c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b091906135d1565b156106ce5760405163840a48d560e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600860048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610734573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075891906135d1565b156107765760405163840a48d560e01b815260040160405180910390fd5b5f6107ba61078485806135ec565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061199192505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156108285761082861321c565b60028111156108395761083961321c565b81525050905080604001516001600160401b0316876001600160401b031611610875576040516337e07ffd60e01b815260040160405180910390fd5b60018160600151600281111561088d5761088d61321c565b146108ab5760405163d49e19a760e01b815260040160405180910390fd5b6108ee6108b886806135ec565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506119b392505050565b61090b5760405163161ce5ed60e31b815260040160405180910390fd5b61091d61091788610c3c565b876119db565b610940863561092c87806135ec565b61093960208a018a613631565b8651611a80565b6109495f611ba7565b50505050505050565b6033546001600160a01b03163314806109755750603e546001600160a01b031633145b6109925760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156109f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1c91906135d1565b15610a3a5760405163840a48d560e01b815260040160405180910390fd5b8584148015610a4857508382145b610a65576040516343714afd60e01b815260040160405180910390fd5b603a546001600160401b03600160401b9091048116908a1611610a9b576040516337e07ffd60e01b815260040160405180910390fd5b610aad610aa78a610c3c565b896119db565b5f805b87811015610b4557610b318a358a8a84818110610acf57610acf613673565b9050602002016020810190610ae49190613687565b898985818110610af657610af6613673565b9050602002810190610b089190613631565b898987818110610b1a57610b1a613673565b9050602002810190610b2c91906135ec565b611d27565b610b3b90836136bf565b9150600101610ab0565b5060335460405163a1ca780b60e01b81526001600160a01b0391821660048201525f6024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b158015610bb8575f5ffd5b505af1158015610bca573d5f5f3e3d5ffd5b5050505050505050505050505050565b5f5f610c1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121dc92505050565b5f90815260366020526040902054600160c01b900460ff169150505b92915050565b5f610c4a611fff600c6136d2565b610c5d6001600160401b038416426136e9565b10610c7b57604051637944e66d60e11b815260040160405180910390fd5b604080516001600160401b03841660208201525f918291720f3df6d732807ef1319fb7b8bb8522d0beac02910160408051601f1981840301815290829052610cc291613713565b5f60405180830381855afa9150503d805f8114610cfa576040519150601f19603f3d011682016040523d82523d5f602084013e610cff565b606091505b5091509150818015610d1157505f8151115b610d2e5760405163558ad0a360e01b815260040160405180910390fd5b80806020019051810190610d42919061371e565b949350505050565b610d71604080516080810182525f8082526020820181905291810182905290606082015290565b5f82815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610ddb57610ddb61321c565b6002811115610dec57610dec61321c565b90525092915050565b6033546001600160a01b0316331480610e185750603e546001600160a01b031633145b610e355760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610e9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebf91906135d1565b15610edd5760405163840a48d560e01b815260040160405180910390fd5b610ee682611ba7565b5050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f3357604051633213a66160e21b815260040160405180910390fd5b346801bc16d674ec80000014610f5c5760405163049696b360e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610f9f61226d565b8888886040518863ffffffff1660e01b8152600401610fc39695949392919061378b565b5f604051808303818588803b158015610fda575f5ffd5b505af1158015610fec573d5f5f3e3d5ffd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e2385856040516110229291906137d9565b60405180910390a15050505050565b611058604080516080810182525f8082526020820181905291810182905290606082015290565b60365f61109985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121dc92505050565b815260208082019290925260409081015f20815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156111055761110561321c565b60028111156111165761111661321c565b9052509392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461116957604051633213a66160e21b815260040160405180910390fd5b5f611178633b9aca0083613800565b9050611191633b9aca006001600160401b0383166136d2565b6034549092506001600160401b0390811690821611156111c4576040516302c6f54760e21b815260040160405180910390fd5b603480548291905f906111e19084906001600160401b0316613813565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161124091815260200190565b60405180910390a261125283836122b1565b505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6112f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611317575f805461ff0019166101001790555b6001600160a01b03821661133e576040516339b190bb60e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0384161790558015610ee6575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6033546001600160a01b031633146113cc5760405163719f370360e11b815260040160405180910390fd5b603e54604080516001600160a01b03928316815291831660208301527ffb8129080a19d34dceac04ba253fc50304dc86c729bd63cdca4a969ad19a5eac910160405180910390a1603e80546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146114605760405163719f370360e11b815260040160405180910390fd5b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156114c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ea91906135d1565b156115085760405163840a48d560e01b815260040160405180910390fd5b825184511461152a576040516343714afd60e01b815260040160405180910390fd5b5f5b845181101561158d576115858385838151811061154b5761154b613673565b602002602001015187848151811061156557611565613673565b60200260200101516001600160a01b03166123c69092919063ffffffff16565b60010161152c565b5050505050565b604051635ac86ab760e01b8152600760048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156115fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161e91906135d1565b1561163c5760405163840a48d560e01b815260040160405180910390fd5b603a54600160401b90046001600160401b03165f81900361167057604051631a544f4960e01b815260040160405180910390fd5b6040805160a081018252603c54808252603d5462ffffff811660208401526001600160401b0363010000008204811694840194909452600160581b810460070b6060840152600160981b90049092166080820152906116cf9087612418565b5f805b8581101561193857368787838181106116ed576116ed613673565b90506020028101906116ff9190613832565b80355f908152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561176f5761176f61321c565b60028111156117805761178061321c565b905250905060018160600151600281111561179d5761179d61321c565b146117a9575050611930565b856001600160401b031681604001516001600160401b0316106117cd575050611930565b5f80806117dd848a8f35886124c9565b60208b01805193965091945092506117f482613850565b62ffffff1690525060808801805184919061181090839061386d565b6001600160401b031690525060608801805183919061183090839061388c565b60070b905250611840818861386d565b85355f908152603660209081526040918290208751815492890151938901516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060880151939a50879390929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b8360028111156118e4576118e461321c565b021790555050845160405164ffffffffff90911691506001600160401b038b16907fa91c59033c3423e18b54d0acecebb4972f9ea95aedf5f4cae3b677b02eaf3a3f905f90a350505050505b6001016116d2565b506001600160401b038084165f908152603b60205260408120805484939192916119649185911661386d565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550610949826125ec565b5f815f815181106119a4576119a4613673565b60200260200101519050919050565b5f816003815181106119c7576119c7613673565b60200260200101515f5f1b14159050919050565b6119e7600360206136d2565b6119f46020830183613631565b905014611a14576040516313717da960e21b815260040160405180910390fd5b611a63611a246020830183613631565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508692505084359050600361281b565b610ee6576040516309bde33960e01b815260040160405180910390fd5b60088414611aa15760405163200591bd60e01b815260040160405180910390fd5b6005611aaf602860016136bf565b611ab991906136bf565b611ac49060206136d2565b8214611ae3576040516313717da960e21b815260040160405180910390fd5b5f611b1f8686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061283292505050565b90505f64ffffffffff8316611b36602860016136bf565b600b901b179050611b8085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508c925086915085905061281b565b611b9d576040516309bde33960e01b815260040160405180910390fd5b5050505050505050565b603a54600160401b90046001600160401b031615611bd75760405162be9bc360e81b815260040160405180910390fd5b603a546001600160401b03428116911603611c05576040516367db5b8b60e01b815260040160405180910390fd5b6034545f906001600160401b0316611c21633b9aca0047613800565b611c2b9190613813565b9050818015611c4157506001600160401b038116155b15611c5f576040516332dea95960e21b815260040160405180910390fd5b5f6040518060a00160405280611c7442610c3c565b815260395462ffffff1660208201526001600160401b0380851660408301525f60608301819052608090920191909152603a805442909216600160401b026fffffffffffffffff0000000000000000199092169190911790559050611cd8816125ec565b805160208083015160405162ffffff90911681526001600160401b034216917f575796133bbed337e5b39aa49a30dc2556a91e0c6c2af4b7b886ae77ebef1076910160405180910390a3505050565b5f5f611d648484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061199192505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff166002811115611dd257611dd261321c565b6002811115611de357611de361321c565b90525090505f81606001516002811115611dff57611dff61321c565b14611e1d576040516335e09e9d60e01b815260040160405180910390fd5b6001600160401b038016611e628686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612ac292505050565b6001600160401b031603611e8957604051631958236d60e21b815260040160405180910390fd5b6001600160401b038016611ece8686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612ae692505050565b6001600160401b031614611ef557604051632eade63760e01b815260040160405180910390fd5b611efd61226d565b611f06906138bb565b611f418686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612afd92505050565b14611f5f57604051633772dd5360e11b815260040160405180910390fd5b5f611f9b8686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250612b1192505050565b9050611fab8a87878b8b8e611a80565b60398054905f611fba836138de565b9091555050603a545f90600160401b90046001600160401b031615611ff157603a54600160401b90046001600160401b0316611ffe565b603a546001600160401b03165b6040805160808101825264ffffffffff8d1681526001600160401b03858116602083015283169181019190915290915060608101600190525f858152603660209081526040918290208351815492850151938501516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b031990951691909216179290921792831682178155606084015190929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b8360028111156120d3576120d361321c565b021790555050603d80548492506013906120fe908490600160981b90046001600160401b031661386d565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c104414498a60405161215e919064ffffffffff91909116815260200190565b60405180910390a16040805164ffffffffff8c1681526001600160401b03838116602083015284168183015290517f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df9181900360600190a16121cd633b9aca006001600160401b0384166136d2565b9b9a5050505050505050505050565b5f81516030146121ff57604051634f88323960e11b815260040160405180910390fd5b6040516002906122159084905f906020016138f6565b60408051601f198184030181529082905261222f91613713565b602060405180830381855afa15801561224a573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610c36919061371e565b60408051600160f81b60208201525f602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b804710156123015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016112ed565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461234a576040519150601f19603f3d011682016040523d82523d5f602084013e61234f565b606091505b50509050806112525760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016112ed565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611252908490612b28565b612424600560036136bf565b61242f9060206136d2565b61243c6020830183613631565b90501461245c576040516313717da960e21b815260040160405180910390fd5b606c6124ac61246e6020840184613631565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525087925050853590508461281b565b611252576040516309bde33960e01b815260040160405180910390fd5b83516020850151905f908190816124e1878388612bfb565b9050846001600160401b0316816001600160401b03161461255b57612506858261391a565b6040805164ffffffffff851681526001600160401b038b8116602083015284168183015290519195507f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df919081900360600190a15b6001600160401b0380821660208b0181905290891660408b01525f036125e05760398054905f61258a83613949565b9091555050600260608a015261259f8461395e565b92508164ffffffffff16886001600160401b03167f2a02361ffa66cf2c2da4682c2355a6adcaa9f6c227b6e6563e68480f9587626a60405160405180910390a35b50509450945094915050565b602081015162ffffff161561268c578051603c556020810151603d80546040840151606085015160809095015162ffffff9094166affffffffffffffffffffff199092169190911763010000006001600160401b0392831602176fffffffffffffffffffffffffffffffff60581b1916600160581b9482169490940267ffffffffffffffff60981b191693909317600160981b9390921692909202179055565b60808101516034545f916126a8916001600160401b031661386d565b90505f826060015183604001516126bf919061388c565b60408401516034805492935090915f906126e39084906001600160401b031661386d565b82546101009290920a6001600160401b03818102199093169183160217909155603a8054600160401b810483166001600160801b03199091161790555f915061273390633b9aca009085166136d2565b90505f612748633b9aca00600785900b613983565b603a546040518281529192506001600160401b0316907f525408c201bc1576eb44116f6478f1c2a54775b19a043bcfdc708364f74f8e449060200160405180910390a260335460405163a1ca780b60e01b81526001600160a01b03918216600482015260248101849052604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b1580156127fe575f5ffd5b505af1158015612810573d5f5f3e3d5ffd5b505050505050505050565b5f83612828868585612cd9565b1495945050505050565b5f5f600283516128429190613800565b90505f816001600160401b0381111561285d5761285d6133c8565b604051908082528060200260200182016040528015612886578160200160208202803683370190505b5090505f5b82811015612980576002856128a083836136d2565b815181106128b0576128b0613673565b6020026020010151868360026128c691906136d2565b6128d19060016136bf565b815181106128e1576128e1613673565b6020026020010151604051602001612903929190918252602082015260400190565b60408051601f198184030181529082905261291d91613713565b602060405180830381855afa158015612938573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061295b919061371e565b82828151811061296d5761296d613673565b602090810291909101015260010161288b565b5061298c600283613800565b91505b8115612a9f575f5b82811015612a8c576002826129ac83836136d2565b815181106129bc576129bc613673565b6020026020010151838360026129d291906136d2565b6129dd9060016136bf565b815181106129ed576129ed613673565b6020026020010151604051602001612a0f929190918252602082015260400190565b60408051601f1981840301815290829052612a2991613713565b602060405180830381855afa158015612a44573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612a67919061371e565b828281518110612a7957612a79613673565b6020908102919091010152600101612997565b50612a98600283613800565b915061298f565b805f81518110612ab157612ab1613673565b602002602001015192505050919050565b5f610c3682600581518110612ad957612ad9613673565b6020026020010151612dad565b5f610c3682600681518110612ad957612ad9613673565b5f816001815181106119a4576119a4613673565b5f610c3682600281518110612ad957612ad9613673565b5f612b7c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e149092919063ffffffff16565b905080515f1480612b9c575080806020019051810190612b9c91906135d1565b6112525760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016112ed565b5f612c08602660016136bf565b612c139060206136d2565b612c206040840184613631565b905014612c40576040516313717da960e21b815260040160405180910390fd5b5f612c4c6004856139b2565b64ffffffffff169050612ca5612c656040850185613631565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250899250505060208601358461281b565b612cc2576040516309bde33960e01b815260040160405180910390fd5b612cd0836020013585612e22565b95945050505050565b5f83515f14158015612cf6575060208451612cf491906139db565b155b612d13576040516313717da960e21b815260040160405180910390fd5b604080516020808201909252848152905b85518111612da357612d376002856139db565b5f03612d695781515f528086015160205260208260405f60026107d05a03fa612d5e575f5ffd5b600284049350612d91565b808601515f52815160205260208260405f60026107d05a03fa612d8a575f5ffd5b6002840493505b612d9c6020826136bf565b9050612d24565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b6060610d4284845f85612e4e565b5f80612e2f6004846139ee565b612e3a906040613a17565b64ffffffffff169050610d4284821b612dad565b606082471015612eaf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016112ed565b5f5f866001600160a01b03168587604051612eca9190613713565b5f6040518083038185875af1925050503d805f8114612f04576040519150601f19603f3d011682016040523d82523d5f602084013e612f09565b606091505b5091509150612f1a87838387612f25565b979650505050505050565b60608315612f935782515f03612f8c576001600160a01b0385163b612f8c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016112ed565b5081610d42565b610d428383815115612fa85781518083602001fd5b8060405162461bcd60e51b81526004016112ed9190613a37565b80356001600160401b0381168114612fd8575f5ffd5b919050565b5f60408284031215612fed575f5ffd5b50919050565b5f5f5f60608486031215613005575f5ffd5b61300e84612fc2565b925060208401356001600160401b03811115613028575f5ffd5b61303486828701612fdd565b92505060408401356001600160401b0381111561304f575f5ffd5b61305b86828701612fdd565b9150509250925092565b5f5f83601f840112613075575f5ffd5b5081356001600160401b0381111561308b575f5ffd5b6020830191508360208260051b85010111156130a5575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60a0898b0312156130c3575f5ffd5b6130cc89612fc2565b975060208901356001600160401b038111156130e6575f5ffd5b6130f28b828c01612fdd565b97505060408901356001600160401b0381111561310d575f5ffd5b6131198b828c01613065565b90975095505060608901356001600160401b03811115613137575f5ffd5b6131438b828c01613065565b90955093505060808901356001600160401b03811115613161575f5ffd5b61316d8b828c01613065565b999c989b5096995094979396929594505050565b5f60208284031215613191575f5ffd5b61319a82612fc2565b9392505050565b5f5f83601f8401126131b1575f5ffd5b5081356001600160401b038111156131c7575f5ffd5b6020830191508360208285010111156130a5575f5ffd5b5f5f602083850312156131ef575f5ffd5b82356001600160401b03811115613204575f5ffd5b613210858286016131a1565b90969095509350505050565b634e487b7160e01b5f52602160045260245ffd5b6003811061324c57634e487b7160e01b5f52602160045260245ffd5b9052565b60208101610c368284613230565b5f6020828403121561326e575f5ffd5b5035919050565b5f6080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b03604084015116604083015260608301516132c16060840182613230565b5092915050565b80151581146132d5575f5ffd5b50565b5f602082840312156132e8575f5ffd5b813561319a816132c8565b5f5f5f5f5f60608688031215613307575f5ffd5b85356001600160401b0381111561331c575f5ffd5b613328888289016131a1565b90965094505060208601356001600160401b03811115613346575f5ffd5b613352888289016131a1565b96999598509660400135949350505050565b6001600160a01b03811681146132d5575f5ffd5b8035612fd881613364565b5f5f60408385031215613394575f5ffd5b823561339f81613364565b946020939093013593505050565b5f602082840312156133bd575f5ffd5b813561319a81613364565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613404576134046133c8565b604052919050565b5f6001600160401b03821115613424576134246133c8565b5060051b60200190565b5f82601f83011261343d575f5ffd5b813561345061344b8261340c565b6133dc565b8082825260208201915060208360051b860101925085831115613471575f5ffd5b602085015b8381101561348e578035835260209283019201613476565b5095945050505050565b5f5f5f606084860312156134aa575f5ffd5b83356001600160401b038111156134bf575f5ffd5b8401601f810186136134cf575f5ffd5b80356134dd61344b8261340c565b8082825260208201915060208360051b8501019250888311156134fe575f5ffd5b6020840193505b8284101561352957833561351881613364565b825260209384019390910190613505565b955050505060208401356001600160401b03811115613546575f5ffd5b6135528682870161342e565b92505061356160408501613378565b90509250925092565b5f5f5f6040848603121561357c575f5ffd5b83356001600160401b03811115613591575f5ffd5b61359d86828701612fdd565b93505060208401356001600160401b038111156135b8575f5ffd5b6135c486828701613065565b9497909650939450505050565b5f602082840312156135e1575f5ffd5b815161319a816132c8565b5f5f8335601e19843603018112613601575f5ffd5b8301803591506001600160401b0382111561361a575f5ffd5b6020019150600581901b36038213156130a5575f5ffd5b5f5f8335601e19843603018112613646575f5ffd5b8301803591506001600160401b0382111561365f575f5ffd5b6020019150368190038213156130a5575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613697575f5ffd5b813564ffffffffff8116811461319a575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c3657610c366136ab565b8082028115828204841417610c3657610c366136ab565b81810381811115610c3657610c366136ab565b5f81518060208401855e5f93019283525090919050565b5f61319a82846136fc565b5f6020828403121561372e575f5ffd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b608081525f61379e60808301888a613735565b82810360208401526137b0818861375d565b905082810360408401526137c5818688613735565b915050826060830152979650505050505050565b602081525f610d42602083018486613735565b634e487b7160e01b5f52601260045260245ffd5b5f8261380e5761380e6137ec565b500490565b6001600160401b038281168282160390811115610c3657610c366136ab565b5f8235605e19833603018112613846575f5ffd5b9190910192915050565b5f62ffffff821680613864576138646136ab565b5f190192915050565b6001600160401b038181168382160190811115610c3657610c366136ab565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff1982121715610c3657610c366136ab565b80516020808301519190811015612fed575f1960209190910360031b1b16919050565b5f600182016138ef576138ef6136ab565b5060010190565b5f61390182856136fc565b6001600160801b03199390931683525050601001919050565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff82131715610c3657610c366136ab565b5f81613957576139576136ab565b505f190190565b5f8160070b677fffffffffffffff19810361397b5761397b6136ab565b5f0392915050565b8082025f8212600160ff1b8414161561399e5761399e6136ab565b8181058314821517610c3657610c366136ab565b5f64ffffffffff8316806139c8576139c86137ec565b8064ffffffffff84160491505092915050565b5f826139e9576139e96137ec565b500690565b5f64ffffffffff831680613a0457613a046137ec565b8064ffffffffff84160691505092915050565b64ffffffffff81811683821602908116908181146132c1576132c16136ab565b602081525f61319a602083018461375d56fea26469706673582212203f70fbee091f2506f1984b00292cb661d560c4d4a6a15062cc68e1444f76796864736f6c634300081b0033", } // EigenPodABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/EigenPodManager/binding.go b/pkg/bindings/EigenPodManager/binding.go index 402e506d5..b89af8040 100644 --- a/pkg/bindings/EigenPodManager/binding.go +++ b/pkg/bindings/EigenPodManager/binding.go @@ -32,7 +32,7 @@ var ( // EigenPodManagerMetaData contains all meta data concerning the EigenPodManager contract. var EigenPodManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_ethPOS\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"},{\"name\":\"_eigenPodBeacon\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"},{\"name\":\"_delegationManager\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainSlashingFactor\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createPod\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodBeacon\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ethPOS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPod\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPod\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"hasPod\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_initPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"numPods\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerToPod\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPod\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwnerDepositShares\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recordBeaconChainETHBalanceUpdate\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"prevRestakedBalanceWei\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"balanceDeltaWei\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"depositSharesToRemove\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"stakerDepositShares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"depositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawSharesAsTokens\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BeaconChainETHDeposited\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconChainETHWithdrawalCompleted\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"delegatedAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconChainSlashingFactorDecreased\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"prevBeaconChainSlashingFactor\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newBeaconChainSlashingFactor\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewTotalShares\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newTotalShares\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PodDeployed\",\"inputs\":[{\"name\":\"eigenPod\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PodSharesUpdated\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sharesDelta\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EigenPodAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidStrategy\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LegacyWithdrawalsNotCompleted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyDelegationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesNegative\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesNotMultipleOfGwei\",\"inputs\":[]}]", - Bin: "0x610100604052348015610010575f5ffd5b5060405161297838038061297883398101604081905261002f9161015c565b838383836001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05290821660c0521660e052610080610089565b505050506101b8565b5f54610100900460ff16156100f45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610143575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610159575f5ffd5b50565b5f5f5f5f6080858703121561016f575f5ffd5b845161017a81610145565b602086015190945061018b81610145565b604086015190935061019c81610145565b60608601519092506101ad81610145565b939692955090935050565b60805160a05160c05160e0516127476102315f395f81816104ec015281816106840152818161098a01528181610d0101528181610dae0152610f5b01525f81816101cb01528181610e74015261144501525f6102de01525f8181610325015281816105b9015281816108d4015261118401526127475ff3fe608060405260043610610195575f3560e01c80639b4e4634116100e7578063cd6dc68711610087578063f2fde38b11610062578063f2fde38b1461050e578063f6848d241461052d578063fabc1cbc14610566578063fe243a1714610585575f5ffd5b8063cd6dc68714610491578063d48e8894146104b0578063ea4d3c9b146104db575f5ffd5b8063a38406a3116100c2578063a38406a3146103f1578063a3d75e0914610410578063a6a509be14610448578063c4623ea11461045d575f5ffd5b80639b4e46341461038b5780639ba062751461039e578063a1ca780b146103d2575f5ffd5b8063715018a61161015257806384d810621161012d57806384d8106214610300578063886f1195146103145780638da5cb5b146103475780639104c31914610364575f5ffd5b8063715018a61461029a578063724af423146102ae57806374cdd798146102cd575f5ffd5b8063136439dd14610199578063292b7b2b146101ba5780632eae418c1461020a578063595c6a67146102295780635ac86ab71461023d5780635c975abb1461027c575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b3366004611a06565b6105a4565b005b3480156101c5575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610215575f5ffd5b506101b8610224366004611a31565b610679565b348015610234575f5ffd5b506101b86108bf565b348015610248575f5ffd5b5061026c610257366004611a7f565b606654600160ff9092169190911b9081161490565b6040519015158152602001610201565b348015610287575f5ffd5b506066545b604051908152602001610201565b3480156102a5575f5ffd5b506101b861096e565b3480156102b9575f5ffd5b506101b86102c8366004611a9f565b61097f565b3480156102d8575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b34801561030b575f5ffd5b506101ed610aa5565b34801561031f575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b348015610352575f5ffd5b506033546001600160a01b03166101ed565b34801561036f575f5ffd5b506101ed73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6101b8610399366004611b1b565b610b15565b3480156103a9575f5ffd5b506101ed6103b8366004611b8e565b60986020525f90815260409020546001600160a01b031681565b3480156103dd575f5ffd5b506101b86103ec366004611ba9565b610bd2565b3480156103fc575f5ffd5b506101ed61040b366004611b8e565b610e1a565b34801561041b575f5ffd5b5061042f61042a366004611b8e565b610eeb565b60405167ffffffffffffffff9091168152602001610201565b348015610453575f5ffd5b5061028c60995481565b348015610468575f5ffd5b5061047c610477366004611a31565b610f4e565b60408051928352602083019190915201610201565b34801561049c575f5ffd5b506101b86104ab366004611bdb565b610fed565b3480156104bb575f5ffd5b5061028c6104ca366004611b8e565b609b6020525f908152604090205481565b3480156104e6575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b348015610519575f5ffd5b506101b8610528366004611b8e565b611109565b348015610538575f5ffd5b5061026c610547366004611b8e565b6001600160a01b039081165f9081526098602052604090205416151590565b348015610571575f5ffd5b506101b8610580366004611a06565b611182565b348015610590575f5ffd5b5061028c61059f366004611c05565b611298565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610606573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062a9190611c3c565b61064757604051631d77d47760e21b815260040160405180910390fd5b606654818116811461066c5760405163c61dca5d60e01b815260040160405180910390fd5b61067582611318565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106c25760405163f739589b60e01b815260040160405180910390fd5b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146106ff57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b038416610726576040516339b190bb60e11b815260040160405180910390fd5b5f81136107465760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b6020526040812054908290821215610840575f61077283611c6f565b90505f818511156107905750806107898186611c89565b9250610796565b505f9150835b5f6107a18286611c9c565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906107f19085815260200190565b60405180910390a2886001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe0770988260405161083491815260200190565b60405180910390a25050505b80156108b7576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015f604051808303815f87803b1580156108a0575f5ffd5b505af11580156108b2573d5f5f3e3d5ffd5b505050505b505050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610921573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109459190611c3c565b61096257604051631d77d47760e21b815260040160405180910390fd5b61096c5f19611318565b565b610976611355565b61096c5f6113af565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c85760405163f739589b60e01b815260040160405180910390fd5b6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610a0557604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b6020526040812054610a28908390611cc3565b90505f811215610a4b5760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f818152609b602052604090819020839055517fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe07709890610a979084815260200190565b60405180910390a250505050565b6066545f908190600190811603610acf5760405163840a48d560e01b815260040160405180910390fd5b335f908152609860205260409020546001600160a01b031615610b055760405163031a852160e21b815260040160405180910390fd5b5f610b0e611400565b9250505090565b6066545f90600190811603610b3d5760405163840a48d560e01b815260040160405180910390fd5b335f908152609860205260409020546001600160a01b031680610b6557610b62611400565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610b9b908b908b908b908b908b90600401611d11565b5f604051808303818588803b158015610bb2575f5ffd5b505af1158015610bc4573d5f5f3e3d5ffd5b505050505050505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610c0d576040516312e16d7160e11b815260040160405180910390fd5b610c1561155b565b6001600160a01b038416610c3c576040516339b190bb60e11b815260040160405180910390fd5b610c4a633b9aca0083611d5e565b15610c68576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610ca157604051634b692bcf60e01b815260040160405180910390fd5b5f8312610d61575f5f610cb487866115b4565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610d44575f5ffd5b505af1158015610d56573d5f5f3e3d5ffd5b505050505050610e09565b5f610d758686610d7087611c6f565b6116f1565b60405163305068e760e11b81526001600160a01b0388811660048301526024820185905267ffffffffffffffff831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce906064015f604051808303815f87803b158015610df1575f5ffd5b505af1158015610e03573d5f5f3e3d5ffd5b50505050505b50610e14600160c955565b50505050565b6001600160a01b038082165f9081526098602052604081205490911680610ee557610ee2836001600160a01b03165f1b60405180610940016040528061090e8152602001611e0461090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f1981840301815290829052610ec79291602001611d94565b604051602081830303815290604052805190602001206117ea565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff8116151580835261010090910467ffffffffffffffff169282019290925290610f4157670de0b6b3a7640000610f47565b80602001515b9392505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f995760405163f739589b60e01b815260040160405180910390fd5b6001600160a01b03851673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610fd657604051632711b74d60e11b815260040160405180910390fd5b610fe086846115b4565b9150915094509492505050565b5f54610100900460ff161580801561100b57505f54600160ff909116105b806110245750303b15801561102457505f5460ff166001145b61108c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156110ad575f805461ff0019166101001790555b6110b6836113af565b6110bf82611318565b8015611104575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b611111611355565b6001600160a01b0381166111765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611083565b61117f816113af565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112029190611db0565b6001600160a01b0316336001600160a01b0316146112335760405163794821ff60e01b815260040160405180910390fd5b6066548019821981161461125a5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146112d657604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b602052604081205412611310576001600160a01b0383165f908152609b6020526040902054610ee2565b505f92915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6033546001600160a01b0316331461096c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611083565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f60995f815461140f90611dcb565b9091555060408051610940810190915261090e8082525f916114ac9183913391611e046020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f19818403018152908290526114989291602001611d94565b6040516020818303038152906040526117f6565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de8906024015f604051808303815f87803b1580156114ed575f5ffd5b505af11580156114ff573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b600260c954036115ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611083565b600260c955565b5f806001600160a01b0384166115dd576040516339b190bb60e11b815260040160405180910390fd5b5f8312156115fe5760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205484916116228383611c9c565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906116729086815260200190565b60405180910390a2866001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098826040516116b591815260200190565b60405180910390a25f81136116d2575f5f945094505050506116ea565b5f82126116df57816116e1565b5f5b86945094505050505b9250929050565b5f806116fd8385611c89565b90505f61170986610eeb565b90505f61172167ffffffffffffffff831684886118f8565b90505f61172e8284611de3565b6040805180820182526001815267ffffffffffffffff85811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f610ee28383306119dd565b5f834710156118475760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401611083565b81515f036118975760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401611083565b8282516020840186f590506001600160a01b038116610f475760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401611083565b5f80805f19858709858702925082811083820303915050805f0361192f5783828161192557611925611d4a565b0492505050610f47565b8084116119765760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401611083565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b5f60208284031215611a16575f5ffd5b5035919050565b6001600160a01b038116811461117f575f5ffd5b5f5f5f5f60808587031215611a44575f5ffd5b8435611a4f81611a1d565b93506020850135611a5f81611a1d565b92506040850135611a6f81611a1d565b9396929550929360600135925050565b5f60208284031215611a8f575f5ffd5b813560ff81168114610f47575f5ffd5b5f5f5f60608486031215611ab1575f5ffd5b8335611abc81611a1d565b92506020840135611acc81611a1d565b929592945050506040919091013590565b5f5f83601f840112611aed575f5ffd5b50813567ffffffffffffffff811115611b04575f5ffd5b6020830191508360208285010111156116ea575f5ffd5b5f5f5f5f5f60608688031215611b2f575f5ffd5b853567ffffffffffffffff811115611b45575f5ffd5b611b5188828901611add565b909650945050602086013567ffffffffffffffff811115611b70575f5ffd5b611b7c88828901611add565b96999598509660400135949350505050565b5f60208284031215611b9e575f5ffd5b8135610f4781611a1d565b5f5f5f60608486031215611bbb575f5ffd5b8335611bc681611a1d565b95602085013595506040909401359392505050565b5f5f60408385031215611bec575f5ffd5b8235611bf781611a1d565b946020939093013593505050565b5f5f60408385031215611c16575f5ffd5b8235611c2181611a1d565b91506020830135611c3181611a1d565b809150509250929050565b5f60208284031215611c4c575f5ffd5b81518015158114610f47575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611c8357611c83611c5b565b505f0390565b81810381811115610ee557610ee5611c5b565b8082018281125f831280158216821582161715611cbb57611cbb611c5b565b505092915050565b8181035f831280158383131683831282161715611ce257611ce2611c5b565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f611d24606083018789611ce9565b8281036020840152611d37818688611ce9565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82611d7857634e487b7160e01b5f52601260045260245ffd5b500790565b5f81518060208401855e5f93019283525090919050565b5f611da8611da28386611d7d565b84611d7d565b949350505050565b5f60208284031215611dc0575f5ffd5b8151610f4781611a1d565b5f60018201611ddc57611ddc611c5b565b5060010190565b67ffffffffffffffff8281168282160390811115610ee557610ee5611c5b56fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122010d5d18f1422f6f797da75c7e367b5c88ab280a2bfcd963f618a2f69d1cfeebf64736f6c634300081b0033", + Bin: "0x610100604052348015610010575f5ffd5b5060405161297838038061297883398101604081905261002f9161015c565b838383836001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05290821660c0521660e052610080610089565b505050506101b8565b5f54610100900460ff16156100f45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610143575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610159575f5ffd5b50565b5f5f5f5f6080858703121561016f575f5ffd5b845161017a81610145565b602086015190945061018b81610145565b604086015190935061019c81610145565b60608601519092506101ad81610145565b939692955090935050565b60805160a05160c05160e0516127476102315f395f81816104ec015281816106840152818161098a01528181610d0101528181610dae0152610f5b01525f81816101cb01528181610e74015261144501525f6102de01525f8181610325015281816105b9015281816108d4015261118401526127475ff3fe608060405260043610610195575f3560e01c80639b4e4634116100e7578063cd6dc68711610087578063f2fde38b11610062578063f2fde38b1461050e578063f6848d241461052d578063fabc1cbc14610566578063fe243a1714610585575f5ffd5b8063cd6dc68714610491578063d48e8894146104b0578063ea4d3c9b146104db575f5ffd5b8063a38406a3116100c2578063a38406a3146103f1578063a3d75e0914610410578063a6a509be14610448578063c4623ea11461045d575f5ffd5b80639b4e46341461038b5780639ba062751461039e578063a1ca780b146103d2575f5ffd5b8063715018a61161015257806384d810621161012d57806384d8106214610300578063886f1195146103145780638da5cb5b146103475780639104c31914610364575f5ffd5b8063715018a61461029a578063724af423146102ae57806374cdd798146102cd575f5ffd5b8063136439dd14610199578063292b7b2b146101ba5780632eae418c1461020a578063595c6a67146102295780635ac86ab71461023d5780635c975abb1461027c575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b3366004611a06565b6105a4565b005b3480156101c5575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610215575f5ffd5b506101b8610224366004611a31565b610679565b348015610234575f5ffd5b506101b86108bf565b348015610248575f5ffd5b5061026c610257366004611a7f565b606654600160ff9092169190911b9081161490565b6040519015158152602001610201565b348015610287575f5ffd5b506066545b604051908152602001610201565b3480156102a5575f5ffd5b506101b861096e565b3480156102b9575f5ffd5b506101b86102c8366004611a9f565b61097f565b3480156102d8575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b34801561030b575f5ffd5b506101ed610aa5565b34801561031f575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b348015610352575f5ffd5b506033546001600160a01b03166101ed565b34801561036f575f5ffd5b506101ed73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6101b8610399366004611b1b565b610b15565b3480156103a9575f5ffd5b506101ed6103b8366004611b8e565b60986020525f90815260409020546001600160a01b031681565b3480156103dd575f5ffd5b506101b86103ec366004611ba9565b610bd2565b3480156103fc575f5ffd5b506101ed61040b366004611b8e565b610e1a565b34801561041b575f5ffd5b5061042f61042a366004611b8e565b610eeb565b60405167ffffffffffffffff9091168152602001610201565b348015610453575f5ffd5b5061028c60995481565b348015610468575f5ffd5b5061047c610477366004611a31565b610f4e565b60408051928352602083019190915201610201565b34801561049c575f5ffd5b506101b86104ab366004611bdb565b610fed565b3480156104bb575f5ffd5b5061028c6104ca366004611b8e565b609b6020525f908152604090205481565b3480156104e6575f5ffd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b348015610519575f5ffd5b506101b8610528366004611b8e565b611109565b348015610538575f5ffd5b5061026c610547366004611b8e565b6001600160a01b039081165f9081526098602052604090205416151590565b348015610571575f5ffd5b506101b8610580366004611a06565b611182565b348015610590575f5ffd5b5061028c61059f366004611c05565b611298565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610606573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062a9190611c3c565b61064757604051631d77d47760e21b815260040160405180910390fd5b606654818116811461066c5760405163c61dca5d60e01b815260040160405180910390fd5b61067582611318565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106c25760405163f739589b60e01b815260040160405180910390fd5b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146106ff57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b038416610726576040516339b190bb60e11b815260040160405180910390fd5b5f81136107465760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b6020526040812054908290821215610840575f61077283611c6f565b90505f818511156107905750806107898186611c89565b9250610796565b505f9150835b5f6107a18286611c9c565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906107f19085815260200190565b60405180910390a2886001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe0770988260405161083491815260200190565b60405180910390a25050505b80156108b7576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015f604051808303815f87803b1580156108a0575f5ffd5b505af11580156108b2573d5f5f3e3d5ffd5b505050505b505050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610921573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109459190611c3c565b61096257604051631d77d47760e21b815260040160405180910390fd5b61096c5f19611318565b565b610976611355565b61096c5f6113af565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c85760405163f739589b60e01b815260040160405180910390fd5b6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610a0557604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b6020526040812054610a28908390611cc3565b90505f811215610a4b5760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f818152609b602052604090819020839055517fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe07709890610a979084815260200190565b60405180910390a250505050565b6066545f908190600190811603610acf5760405163840a48d560e01b815260040160405180910390fd5b335f908152609860205260409020546001600160a01b031615610b055760405163031a852160e21b815260040160405180910390fd5b5f610b0e611400565b9250505090565b6066545f90600190811603610b3d5760405163840a48d560e01b815260040160405180910390fd5b335f908152609860205260409020546001600160a01b031680610b6557610b62611400565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610b9b908b908b908b908b908b90600401611d11565b5f604051808303818588803b158015610bb2575f5ffd5b505af1158015610bc4573d5f5f3e3d5ffd5b505050505050505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610c0d576040516312e16d7160e11b815260040160405180910390fd5b610c1561155b565b6001600160a01b038416610c3c576040516339b190bb60e11b815260040160405180910390fd5b610c4a633b9aca0083611d5e565b15610c68576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610ca157604051634b692bcf60e01b815260040160405180910390fd5b5f8312610d61575f5f610cb487866115b4565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610d44575f5ffd5b505af1158015610d56573d5f5f3e3d5ffd5b505050505050610e09565b5f610d758686610d7087611c6f565b6116f1565b60405163305068e760e11b81526001600160a01b0388811660048301526024820185905267ffffffffffffffff831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce906064015f604051808303815f87803b158015610df1575f5ffd5b505af1158015610e03573d5f5f3e3d5ffd5b50505050505b50610e14600160c955565b50505050565b6001600160a01b038082165f9081526098602052604081205490911680610ee557610ee2836001600160a01b03165f1b60405180610940016040528061090e8152602001611e0461090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f1981840301815290829052610ec79291602001611d94565b604051602081830303815290604052805190602001206117ea565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff8116151580835261010090910467ffffffffffffffff169282019290925290610f4157670de0b6b3a7640000610f47565b80602001515b9392505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f995760405163f739589b60e01b815260040160405180910390fd5b6001600160a01b03851673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610fd657604051632711b74d60e11b815260040160405180910390fd5b610fe086846115b4565b9150915094509492505050565b5f54610100900460ff161580801561100b57505f54600160ff909116105b806110245750303b15801561102457505f5460ff166001145b61108c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156110ad575f805461ff0019166101001790555b6110b6836113af565b6110bf82611318565b8015611104575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b611111611355565b6001600160a01b0381166111765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611083565b61117f816113af565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112029190611db0565b6001600160a01b0316336001600160a01b0316146112335760405163794821ff60e01b815260040160405180910390fd5b6066548019821981161461125a5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146112d657604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b602052604081205412611310576001600160a01b0383165f908152609b6020526040902054610ee2565b505f92915050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6033546001600160a01b0316331461096c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611083565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f60995f815461140f90611dcb565b9091555060408051610940810190915261090e8082525f916114ac9183913391611e046020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f19818403018152908290526114989291602001611d94565b6040516020818303038152906040526117f6565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de8906024015f604051808303815f87803b1580156114ed575f5ffd5b505af11580156114ff573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b600260c954036115ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611083565b600260c955565b5f806001600160a01b0384166115dd576040516339b190bb60e11b815260040160405180910390fd5b5f8312156115fe5760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205484916116228383611c9c565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906116729086815260200190565b60405180910390a2866001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098826040516116b591815260200190565b60405180910390a25f81136116d2575f5f945094505050506116ea565b5f82126116df57816116e1565b5f5b86945094505050505b9250929050565b5f806116fd8385611c89565b90505f61170986610eeb565b90505f61172167ffffffffffffffff831684886118f8565b90505f61172e8284611de3565b6040805180820182526001815267ffffffffffffffff85811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f610ee28383306119dd565b5f834710156118475760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401611083565b81515f036118975760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401611083565b8282516020840186f590506001600160a01b038116610f475760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401611083565b5f80805f19858709858702925082811083820303915050805f0361192f5783828161192557611925611d4a565b0492505050610f47565b8084116119765760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401611083565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b5f60208284031215611a16575f5ffd5b5035919050565b6001600160a01b038116811461117f575f5ffd5b5f5f5f5f60808587031215611a44575f5ffd5b8435611a4f81611a1d565b93506020850135611a5f81611a1d565b92506040850135611a6f81611a1d565b9396929550929360600135925050565b5f60208284031215611a8f575f5ffd5b813560ff81168114610f47575f5ffd5b5f5f5f60608486031215611ab1575f5ffd5b8335611abc81611a1d565b92506020840135611acc81611a1d565b929592945050506040919091013590565b5f5f83601f840112611aed575f5ffd5b50813567ffffffffffffffff811115611b04575f5ffd5b6020830191508360208285010111156116ea575f5ffd5b5f5f5f5f5f60608688031215611b2f575f5ffd5b853567ffffffffffffffff811115611b45575f5ffd5b611b5188828901611add565b909650945050602086013567ffffffffffffffff811115611b70575f5ffd5b611b7c88828901611add565b96999598509660400135949350505050565b5f60208284031215611b9e575f5ffd5b8135610f4781611a1d565b5f5f5f60608486031215611bbb575f5ffd5b8335611bc681611a1d565b95602085013595506040909401359392505050565b5f5f60408385031215611bec575f5ffd5b8235611bf781611a1d565b946020939093013593505050565b5f5f60408385031215611c16575f5ffd5b8235611c2181611a1d565b91506020830135611c3181611a1d565b809150509250929050565b5f60208284031215611c4c575f5ffd5b81518015158114610f47575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611c8357611c83611c5b565b505f0390565b81810381811115610ee557610ee5611c5b565b8082018281125f831280158216821582161715611cbb57611cbb611c5b565b505092915050565b8181035f831280158383131683831282161715611ce257611ce2611c5b565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f611d24606083018789611ce9565b8281036020840152611d37818688611ce9565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82611d7857634e487b7160e01b5f52601260045260245ffd5b500790565b5f81518060208401855e5f93019283525090919050565b5f611da8611da28386611d7d565b84611d7d565b949350505050565b5f60208284031215611dc0575f5ffd5b8151610f4781611a1d565b5f60018201611ddc57611ddc611c5b565b5060010190565b67ffffffffffffffff8281168282160390811115610ee557610ee5611c5b56fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d306d72566a77a2f32f859ab7cf890ac30f900c054f5a9a6688c3ada45ec66c664736f6c634300081b0033", } // EigenPodManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/EigenStrategy/binding.go b/pkg/bindings/EigenStrategy/binding.go index c0d76adcf..da9fb3904 100644 --- a/pkg/bindings/EigenStrategy/binding.go +++ b/pkg/bindings/EigenStrategy/binding.go @@ -32,7 +32,7 @@ var ( // EigenStrategyMetaData contains all meta data concerning the EigenStrategy contract. var EigenStrategyMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"EIGEN\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigen\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"newShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"explanation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_EIGEN\",\"type\":\"address\",\"internalType\":\"contractIEigen\"},{\"name\":\"_bEIGEN\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"shares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlying\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlyingView\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToShares\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToSharesView\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlying\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlyingView\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExchangeRateEmitted\",\"inputs\":[{\"name\":\"rate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyTokenSet\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"decimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BalanceExceedsMaxTotalDeposits\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxPerDepositExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewSharesZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnderlyingToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TotalSharesExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalAmountExceedsTotalDeposits\",\"inputs\":[]}]", - Bin: "0x60c060405234801561000f575f5ffd5b5060405161168d38038061168d83398101604081905261002e9161014f565b8181806001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a05261007361007c565b50505050610187565b5f54610100900460ff16156100e75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610136575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014c575f5ffd5b50565b5f5f60408385031215610160575f5ffd5b825161016b81610138565b602084015190925061017c81610138565b809150509250929050565b60805160a0516114bb6101d25f395f818161018b0152818161043e01528181610871015261090e01525f81816102540152818161034b0152818161066a0152610a3c01526114bb5ff3fe608060405234801561000f575f5ffd5b506004361061013d575f3560e01c8063886f1195116100b4578063ce7c2ac211610079578063ce7c2ac2146102c4578063d9caed12146102d7578063e3dae51c146102ea578063f3e73875146102fd578063fabc1cbc14610310578063fdc371ce14610323575f5ffd5b8063886f11951461024f5780638c871019146102765780638f6a624014610289578063ab5921e11461029c578063c4d66de8146102b1575f5ffd5b8063485cc95511610105578063485cc955146101d7578063553ca5f8146101ea578063595c6a67146101fd5780635ac86ab7146102055780635c975abb146102345780637a8b26371461023c575f5ffd5b8063136439dd146101415780632495a5991461015657806339b70e38146101865780633a98ef39146101ad57806347e7ef24146101c4575b5f5ffd5b61015461014f3660046111ab565b610336565b005b603254610169906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101697f000000000000000000000000000000000000000000000000000000000000000081565b6101b660335481565b60405190815260200161017d565b6101b66101d23660046111d9565b61040b565b6101546101e5366004611203565b610557565b6101b66101f836600461123a565b610642565b610154610655565b61022461021336600461126a565b6001805460ff9092161b9081161490565b604051901515815260200161017d565b6001546101b6565b6101b661024a3660046111ab565b610704565b6101697f000000000000000000000000000000000000000000000000000000000000000081565b6101b66102843660046111ab565b61074d565b6101b661029736600461123a565b610757565b6102a4610764565b60405161017d9190611285565b6101546102bf36600461123a565b610784565b6101b66102d236600461123a565b61084a565b6101546102e53660046112ba565b6108dc565b6101b66102f83660046111ab565b6109f9565b6101b661030b3660046111ab565b610a30565b61015461031e3660046111ab565b610a3a565b606454610169906001600160a01b031681565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610398573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103bc91906112f8565b6103d957604051631d77d47760e21b815260040160405180910390fd5b60015481811681146103fe5760405163c61dca5d60e01b815260040160405180910390fd5b61040782610b50565b5050565b600180545f9182918116036104335760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461047c576040516348da714f60e01b815260040160405180910390fd5b6104868484610b8d565b6033545f6104966103e88361132b565b90505f6103e86104a4610c46565b6104ae919061132b565b90505f6104bb878361133e565b9050806104c88489611351565b6104d29190611368565b9550855f036104f457604051630c392ed360e11b815260040160405180910390fd5b6104fe868561132b565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561053357604051632f14e8a360e11b815260040160405180910390fd5b61054c826103e8603354610547919061132b565b610cb5565b505050505092915050565b5f54610100900460ff161580801561057557505f54600160ff909116105b8061058e5750303b15801561058e57505f5460ff166001145b6105b35760405162461bcd60e51b81526004016105aa90611387565b60405180910390fd5b5f805460ff1916600117905580156105d4575f805461ff0019166101001790555b606480546001600160a01b0319166001600160a01b0385161790556105f882610d01565b801561063d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b5f61064f61024a8361084a565b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156106b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db91906112f8565b6106f857604051631d77d47760e21b815260040160405180910390fd5b6107025f19610b50565b565b5f5f6103e8603354610716919061132b565b90505f6103e8610724610c46565b61072e919061132b565b90508161073b8583611351565b6107459190611368565b949350505050565b5f61064f826109f9565b5f61064f61030b8361084a565b60606040518060800160405280604d8152602001611439604d9139905090565b5f54610100900460ff16158080156107a257505f54600160ff909116105b806107bb5750303b1580156107bb57505f5460ff166001145b6107d75760405162461bcd60e51b81526004016105aa90611387565b5f805460ff1916600117905580156107f8575f805461ff0019166101001790555b61080182610d01565b8015610407575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156108b8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064f91906113d5565b600180546002908116036109035760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461094c576040516348da714f60e01b815260040160405180910390fd5b610957848484610e4c565b6033548083111561097b57604051630b469df360e41b815260040160405180910390fd5b5f6109886103e88361132b565b90505f6103e8610996610c46565b6109a0919061132b565b90505f826109ae8784611351565b6109b89190611368565b90506109c4868561133e565b6033556109e46109d4828461133e565b6103e8603354610547919061132b565b6109ef888883610e92565b5050505050505050565b5f5f6103e8603354610a0b919061132b565b90505f6103e8610a19610c46565b610a23919061132b565b90508061073b8386611351565b5f61064f82610704565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aba91906113ec565b6001600160a01b0316336001600160a01b031614610aeb5760405163794821ff60e01b815260040160405180910390fd5b60015480198219811614610b125760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6032546001600160a01b0383811691161480610bb657506064546001600160a01b038381169116145b610bd357604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b039081169083160361040757606454604051636f074d1f60e11b8152600481018390526001600160a01b039091169063de0e9a3e906024015f604051808303815f87803b158015610c2c575f5ffd5b505af1158015610c3e573d5f5f3e3d5ffd5b505050505050565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb091906113d5565b905090565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610ce984670de0b6b3a7640000611351565b610cf39190611368565b60405190815260200161083e565b5f54610100900460ff16610d6b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105aa565b603280546001600160a01b0319166001600160a01b038316179055610d8f5f610b50565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e01573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e259190611407565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b0383811691161480610e7557506064546001600160a01b038381169116145b61063d57604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b0390811690831603610f775760325460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044016020604051808303815f875af1158015610ef8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1c91906112f8565b50606454604051630ea598cb60e41b8152600481018390526001600160a01b039091169063ea598cb0906024015f604051808303815f87803b158015610f60575f5ffd5b505af1158015610f72573d5f5f3e3d5ffd5b505050505b604080516001600160a01b03858116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649084015261063d92908516918691859185918591905f9061100f908490849061108e565b905080515f148061102f57508080602001905181019061102f91906112f8565b61063d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105aa565b606061074584845f85855f5f866001600160a01b031685876040516110b39190611422565b5f6040518083038185875af1925050503d805f81146110ed576040519150601f19603f3d011682016040523d82523d5f602084013e6110f2565b606091505b50915091506111038783838761110e565b979650505050505050565b6060831561117c5782515f03611175576001600160a01b0385163b6111755760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105aa565b5081610745565b61074583838151156111915781518083602001fd5b8060405162461bcd60e51b81526004016105aa9190611285565b5f602082840312156111bb575f5ffd5b5035919050565b6001600160a01b03811681146111d6575f5ffd5b50565b5f5f604083850312156111ea575f5ffd5b82356111f5816111c2565b946020939093013593505050565b5f5f60408385031215611214575f5ffd5b823561121f816111c2565b9150602083013561122f816111c2565b809150509250929050565b5f6020828403121561124a575f5ffd5b8135611255816111c2565b9392505050565b60ff811681146111d6575f5ffd5b5f6020828403121561127a575f5ffd5b81356112558161125c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f606084860312156112cc575f5ffd5b83356112d7816111c2565b925060208401356112e7816111c2565b929592945050506040919091013590565b5f60208284031215611308575f5ffd5b81518015158114611255575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561064f5761064f611317565b8181038181111561064f5761064f611317565b808202811582820484141761064f5761064f611317565b5f8261138257634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156113e5575f5ffd5b5051919050565b5f602082840312156113fc575f5ffd5b8151611255816111c2565b5f60208284031215611417575f5ffd5b81516112558161125c565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220ad1a36eec81ba959f0f407a126f2453a4264119afc5f49e26b7b156dab9c4de064736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b5060405161168d38038061168d83398101604081905261002e9161014f565b8181806001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a05261007361007c565b50505050610187565b5f54610100900460ff16156100e75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610136575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014c575f5ffd5b50565b5f5f60408385031215610160575f5ffd5b825161016b81610138565b602084015190925061017c81610138565b809150509250929050565b60805160a0516114bb6101d25f395f818161018b0152818161043e01528181610871015261090e01525f81816102540152818161034b0152818161066a0152610a3c01526114bb5ff3fe608060405234801561000f575f5ffd5b506004361061013d575f3560e01c8063886f1195116100b4578063ce7c2ac211610079578063ce7c2ac2146102c4578063d9caed12146102d7578063e3dae51c146102ea578063f3e73875146102fd578063fabc1cbc14610310578063fdc371ce14610323575f5ffd5b8063886f11951461024f5780638c871019146102765780638f6a624014610289578063ab5921e11461029c578063c4d66de8146102b1575f5ffd5b8063485cc95511610105578063485cc955146101d7578063553ca5f8146101ea578063595c6a67146101fd5780635ac86ab7146102055780635c975abb146102345780637a8b26371461023c575f5ffd5b8063136439dd146101415780632495a5991461015657806339b70e38146101865780633a98ef39146101ad57806347e7ef24146101c4575b5f5ffd5b61015461014f3660046111ab565b610336565b005b603254610169906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101697f000000000000000000000000000000000000000000000000000000000000000081565b6101b660335481565b60405190815260200161017d565b6101b66101d23660046111d9565b61040b565b6101546101e5366004611203565b610557565b6101b66101f836600461123a565b610642565b610154610655565b61022461021336600461126a565b6001805460ff9092161b9081161490565b604051901515815260200161017d565b6001546101b6565b6101b661024a3660046111ab565b610704565b6101697f000000000000000000000000000000000000000000000000000000000000000081565b6101b66102843660046111ab565b61074d565b6101b661029736600461123a565b610757565b6102a4610764565b60405161017d9190611285565b6101546102bf36600461123a565b610784565b6101b66102d236600461123a565b61084a565b6101546102e53660046112ba565b6108dc565b6101b66102f83660046111ab565b6109f9565b6101b661030b3660046111ab565b610a30565b61015461031e3660046111ab565b610a3a565b606454610169906001600160a01b031681565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610398573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103bc91906112f8565b6103d957604051631d77d47760e21b815260040160405180910390fd5b60015481811681146103fe5760405163c61dca5d60e01b815260040160405180910390fd5b61040782610b50565b5050565b600180545f9182918116036104335760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461047c576040516348da714f60e01b815260040160405180910390fd5b6104868484610b8d565b6033545f6104966103e88361132b565b90505f6103e86104a4610c46565b6104ae919061132b565b90505f6104bb878361133e565b9050806104c88489611351565b6104d29190611368565b9550855f036104f457604051630c392ed360e11b815260040160405180910390fd5b6104fe868561132b565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561053357604051632f14e8a360e11b815260040160405180910390fd5b61054c826103e8603354610547919061132b565b610cb5565b505050505092915050565b5f54610100900460ff161580801561057557505f54600160ff909116105b8061058e5750303b15801561058e57505f5460ff166001145b6105b35760405162461bcd60e51b81526004016105aa90611387565b60405180910390fd5b5f805460ff1916600117905580156105d4575f805461ff0019166101001790555b606480546001600160a01b0319166001600160a01b0385161790556105f882610d01565b801561063d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b5f61064f61024a8361084a565b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156106b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db91906112f8565b6106f857604051631d77d47760e21b815260040160405180910390fd5b6107025f19610b50565b565b5f5f6103e8603354610716919061132b565b90505f6103e8610724610c46565b61072e919061132b565b90508161073b8583611351565b6107459190611368565b949350505050565b5f61064f826109f9565b5f61064f61030b8361084a565b60606040518060800160405280604d8152602001611439604d9139905090565b5f54610100900460ff16158080156107a257505f54600160ff909116105b806107bb5750303b1580156107bb57505f5460ff166001145b6107d75760405162461bcd60e51b81526004016105aa90611387565b5f805460ff1916600117905580156107f8575f805461ff0019166101001790555b61080182610d01565b8015610407575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156108b8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064f91906113d5565b600180546002908116036109035760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461094c576040516348da714f60e01b815260040160405180910390fd5b610957848484610e4c565b6033548083111561097b57604051630b469df360e41b815260040160405180910390fd5b5f6109886103e88361132b565b90505f6103e8610996610c46565b6109a0919061132b565b90505f826109ae8784611351565b6109b89190611368565b90506109c4868561133e565b6033556109e46109d4828461133e565b6103e8603354610547919061132b565b6109ef888883610e92565b5050505050505050565b5f5f6103e8603354610a0b919061132b565b90505f6103e8610a19610c46565b610a23919061132b565b90508061073b8386611351565b5f61064f82610704565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aba91906113ec565b6001600160a01b0316336001600160a01b031614610aeb5760405163794821ff60e01b815260040160405180910390fd5b60015480198219811614610b125760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6032546001600160a01b0383811691161480610bb657506064546001600160a01b038381169116145b610bd357604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b039081169083160361040757606454604051636f074d1f60e11b8152600481018390526001600160a01b039091169063de0e9a3e906024015f604051808303815f87803b158015610c2c575f5ffd5b505af1158015610c3e573d5f5f3e3d5ffd5b505050505050565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb091906113d5565b905090565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610ce984670de0b6b3a7640000611351565b610cf39190611368565b60405190815260200161083e565b5f54610100900460ff16610d6b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105aa565b603280546001600160a01b0319166001600160a01b038316179055610d8f5f610b50565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e01573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e259190611407565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b0383811691161480610e7557506064546001600160a01b038381169116145b61063d57604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b0390811690831603610f775760325460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044016020604051808303815f875af1158015610ef8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1c91906112f8565b50606454604051630ea598cb60e41b8152600481018390526001600160a01b039091169063ea598cb0906024015f604051808303815f87803b158015610f60575f5ffd5b505af1158015610f72573d5f5f3e3d5ffd5b505050505b604080516001600160a01b03858116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649084015261063d92908516918691859185918591905f9061100f908490849061108e565b905080515f148061102f57508080602001905181019061102f91906112f8565b61063d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105aa565b606061074584845f85855f5f866001600160a01b031685876040516110b39190611422565b5f6040518083038185875af1925050503d805f81146110ed576040519150601f19603f3d011682016040523d82523d5f602084013e6110f2565b606091505b50915091506111038783838761110e565b979650505050505050565b6060831561117c5782515f03611175576001600160a01b0385163b6111755760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105aa565b5081610745565b61074583838151156111915781518083602001fd5b8060405162461bcd60e51b81526004016105aa9190611285565b5f602082840312156111bb575f5ffd5b5035919050565b6001600160a01b03811681146111d6575f5ffd5b50565b5f5f604083850312156111ea575f5ffd5b82356111f5816111c2565b946020939093013593505050565b5f5f60408385031215611214575f5ffd5b823561121f816111c2565b9150602083013561122f816111c2565b809150509250929050565b5f6020828403121561124a575f5ffd5b8135611255816111c2565b9392505050565b60ff811681146111d6575f5ffd5b5f6020828403121561127a575f5ffd5b81356112558161125c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f606084860312156112cc575f5ffd5b83356112d7816111c2565b925060208401356112e7816111c2565b929592945050506040919091013590565b5f60208284031215611308575f5ffd5b81518015158114611255575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561064f5761064f611317565b8181038181111561064f5761064f611317565b808202811582820484141761064f5761064f611317565b5f8261138257634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156113e5575f5ffd5b5051919050565b5f602082840312156113fc575f5ffd5b8151611255816111c2565b5f60208284031215611417575f5ffd5b81516112558161125c565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220488ee976bc1d4a22687731f95bd86abdb700f39094a8563946f9fd71468ca38d64736f6c634300081b0033", } // EigenStrategyABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/IAllocationManager/binding.go b/pkg/bindings/IAllocationManager/binding.go index 0f60069ca..c57b95278 100644 --- a/pkg/bindings/IAllocationManager/binding.go +++ b/pkg/bindings/IAllocationManager/binding.go @@ -80,7 +80,7 @@ type OperatorSet struct { // IAllocationManagerMetaData contains all meta data concerning the IAllocationManager contract. var IAllocationManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"isSet\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operatorSets\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxStrategiesExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"isSet\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operatorSets\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", } // IAllocationManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/IDelegationManager/binding.go b/pkg/bindings/IDelegationManager/binding.go index 03a8e1e95..79eca105d 100644 --- a/pkg/bindings/IDelegationManager/binding.go +++ b/pkg/bindings/IDelegationManager/binding.go @@ -55,7 +55,7 @@ type ISignatureUtilsSignatureWithExpiry struct { // IDelegationManagerMetaData contains all meta data concerning the IDelegationManager contract. var IDelegationManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"numToComplete\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesBurned\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotStaker\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"convertToDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesBurned\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotStaker\",\"inputs\":[]}]", } // IDelegationManagerABI is the input ABI used to generate the binding from. @@ -328,6 +328,37 @@ func (_IDelegationManager *IDelegationManagerCallerSession) CalculateWithdrawalR return _IDelegationManager.Contract.CalculateWithdrawalRoot(&_IDelegationManager.CallOpts, withdrawal) } +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_IDelegationManager *IDelegationManagerCaller) ConvertToDepositShares(opts *bind.CallOpts, staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + var out []interface{} + err := _IDelegationManager.contract.Call(opts, &out, "convertToDepositShares", staker, strategies, withdrawableShares) + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_IDelegationManager *IDelegationManagerSession) ConvertToDepositShares(staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + return _IDelegationManager.Contract.ConvertToDepositShares(&_IDelegationManager.CallOpts, staker, strategies, withdrawableShares) +} + +// ConvertToDepositShares is a free data retrieval call binding the contract method 0x25df922e. +// +// Solidity: function convertToDepositShares(address staker, address[] strategies, uint256[] withdrawableShares) view returns(uint256[]) +func (_IDelegationManager *IDelegationManagerCallerSession) ConvertToDepositShares(staker common.Address, strategies []common.Address, withdrawableShares []*big.Int) ([]*big.Int, error) { + return _IDelegationManager.Contract.ConvertToDepositShares(&_IDelegationManager.CallOpts, staker, strategies, withdrawableShares) +} + // CumulativeWithdrawalsQueued is a free data retrieval call binding the contract method 0xa1788484. // // Solidity: function cumulativeWithdrawalsQueued(address staker) view returns(uint256) @@ -833,46 +864,25 @@ func (_IDelegationManager *IDelegationManagerTransactorSession) CompleteQueuedWi return _IDelegationManager.Contract.CompleteQueuedWithdrawal(&_IDelegationManager.TransactOpts, withdrawal, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_IDelegationManager *IDelegationManagerTransactor) CompleteQueuedWithdrawals(opts *bind.TransactOpts, tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _IDelegationManager.contract.Transact(opts, "completeQueuedWithdrawals", tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_IDelegationManager *IDelegationManagerSession) CompleteQueuedWithdrawals(tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _IDelegationManager.Contract.CompleteQueuedWithdrawals(&_IDelegationManager.TransactOpts, tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x5f48e667. -// -// Solidity: function completeQueuedWithdrawals(address[][] tokens, bool[] receiveAsTokens, uint256 numToComplete) returns() -func (_IDelegationManager *IDelegationManagerTransactorSession) CompleteQueuedWithdrawals(tokens [][]common.Address, receiveAsTokens []bool, numToComplete *big.Int) (*types.Transaction, error) { - return _IDelegationManager.Contract.CompleteQueuedWithdrawals(&_IDelegationManager.TransactOpts, tokens, receiveAsTokens, numToComplete) -} - -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_IDelegationManager *IDelegationManagerTransactor) CompleteQueuedWithdrawals0(opts *bind.TransactOpts, withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _IDelegationManager.contract.Transact(opts, "completeQueuedWithdrawals0", withdrawals, tokens, receiveAsTokens) +func (_IDelegationManager *IDelegationManagerTransactor) CompleteQueuedWithdrawals(opts *bind.TransactOpts, withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _IDelegationManager.contract.Transact(opts, "completeQueuedWithdrawals", withdrawals, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_IDelegationManager *IDelegationManagerSession) CompleteQueuedWithdrawals0(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _IDelegationManager.Contract.CompleteQueuedWithdrawals0(&_IDelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) +func (_IDelegationManager *IDelegationManagerSession) CompleteQueuedWithdrawals(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _IDelegationManager.Contract.CompleteQueuedWithdrawals(&_IDelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) } -// CompleteQueuedWithdrawals0 is a paid mutator transaction binding the contract method 0x9435bb43. +// CompleteQueuedWithdrawals is a paid mutator transaction binding the contract method 0x9435bb43. // // Solidity: function completeQueuedWithdrawals((address,address,address,uint256,uint32,address[],uint256[])[] withdrawals, address[][] tokens, bool[] receiveAsTokens) returns() -func (_IDelegationManager *IDelegationManagerTransactorSession) CompleteQueuedWithdrawals0(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { - return _IDelegationManager.Contract.CompleteQueuedWithdrawals0(&_IDelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) +func (_IDelegationManager *IDelegationManagerTransactorSession) CompleteQueuedWithdrawals(withdrawals []IDelegationManagerTypesWithdrawal, tokens [][]common.Address, receiveAsTokens []bool) (*types.Transaction, error) { + return _IDelegationManager.Contract.CompleteQueuedWithdrawals(&_IDelegationManager.TransactOpts, withdrawals, tokens, receiveAsTokens) } // DecreaseDelegatedShares is a paid mutator transaction binding the contract method 0x60a0d1ce. diff --git a/pkg/bindings/RewardsCoordinator/binding.go b/pkg/bindings/RewardsCoordinator/binding.go index 70aea1390..ae86271af 100644 --- a/pkg/bindings/RewardsCoordinator/binding.go +++ b/pkg/bindings/RewardsCoordinator/binding.go @@ -94,7 +94,7 @@ type IRewardsCoordinatorTypesTokenTreeMerkleLeaf struct { // RewardsCoordinatorMetaData contains all meta data concerning the RewardsCoordinator contract. var RewardsCoordinatorMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegationManager\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_CALCULATION_INTERVAL_SECONDS\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_MAX_REWARDS_DURATION\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_MAX_RETROACTIVE_LENGTH\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_MAX_FUTURE_LENGTH\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_GENESIS_REWARDS_TIMESTAMP\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"CALCULATION_INTERVAL_SECONDS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GENESIS_REWARDS_TIMESTAMP\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_FUTURE_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_RETROACTIVE_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_REWARDS_DURATION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activationDelay\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateEarnerLeafHash\",\"inputs\":[{\"name\":\"leaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateTokenLeafHash\",\"inputs\":[{\"name\":\"leaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"checkClaim\",\"inputs\":[{\"name\":\"claim\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsMerkleClaim\",\"components\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerTreeProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"earnerLeaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"tokenIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"tokenTreeProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenLeaves\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"claimerFor\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorDirectedAVSRewardsSubmission\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorDirectedRewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorDirectedRewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createRewardsForAllEarners\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createRewardsForAllSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeClaimed\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"totalClaimed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currRewardsCalculationEndTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"defaultOperatorSplitBips\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"disableRoot\",\"inputs\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getCurrentClaimableDistributionRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.DistributionRoot\",\"components\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"disabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentDistributionRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.DistributionRoot\",\"components\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"disabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDistributionRootAtIndex\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.DistributionRoot\",\"components\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"disabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDistributionRootsLength\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorAVSSplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorPISplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRootIndexFromHash\",\"inputs\":[{\"name\":\"rootHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_rewardsUpdater\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_activationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_defaultSplitBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isAVSRewardsSubmissionHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorDirectedAVSRewardsSubmissionHash\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRewardsForAllSubmitter\",\"inputs\":[{\"name\":\"submitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRewardsSubmissionForAllEarnersHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRewardsSubmissionForAllHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"processClaim\",\"inputs\":[{\"name\":\"claim\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsMerkleClaim\",\"components\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerTreeProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"earnerLeaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"tokenIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"tokenTreeProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenLeaves\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"processClaims\",\"inputs\":[{\"name\":\"claims\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsMerkleClaim[]\",\"components\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerTreeProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"earnerLeaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"tokenIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"tokenTreeProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenLeaves\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rewardsUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setActivationDelay\",\"inputs\":[{\"name\":\"_activationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimerFor\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimerFor\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setDefaultOperatorSplit\",\"inputs\":[{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorAVSSplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorPISplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsForAllSubmitter\",\"inputs\":[{\"name\":\"_submitter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_newValue\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsUpdater\",\"inputs\":[{\"name\":\"_rewardsUpdater\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"submissionNonce\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"submitRoot\",\"inputs\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSRewardsSubmissionCreated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"rewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ActivationDelaySet\",\"inputs\":[{\"name\":\"oldActivationDelay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"newActivationDelay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ClaimerForSet\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"oldClaimer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DefaultOperatorSplitBipsSet\",\"inputs\":[{\"name\":\"oldDefaultOperatorSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newDefaultOperatorSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DistributionRootDisabled\",\"inputs\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DistributionRootSubmitted\",\"inputs\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAVSSplitBipsSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"oldOperatorAVSSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newOperatorAVSSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDirectedAVSRewardsSubmissionCreated\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorDirectedRewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorDirectedRewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.OperatorDirectedRewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorPISplitBipsSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"oldOperatorPISplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newOperatorPISplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsClaimed\",\"inputs\":[{\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"earner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"claimedAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsForAllSubmitterSet\",\"inputs\":[{\"name\":\"rewardsForAllSubmitter\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"oldValue\",\"type\":\"bool\",\"indexed\":true,\"internalType\":\"bool\"},{\"name\":\"newValue\",\"type\":\"bool\",\"indexed\":true,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsSubmissionForAllCreated\",\"inputs\":[{\"name\":\"submitter\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"rewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsSubmissionForAllEarnersCreated\",\"inputs\":[{\"name\":\"tokenHopper\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"rewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsUpdaterSet\",\"inputs\":[{\"name\":\"oldRewardsUpdater\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newRewardsUpdater\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AmountExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AmountIsZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DurationExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EarningsNotGreaterThanClaimed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCalculationIntervalSecondsRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidClaimProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidDurationRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEarner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEarnerLeafIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidGenesisRewardsTimestampRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRootIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidStartTimestampRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTokenLeafIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewRootMustBeForNewCalculatedPeriod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsNotInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PreviousSplitPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RewardsEndTimestampNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootAlreadyActivated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootNotActivated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SplitExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StartTimestampTooFarInFuture\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StartTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesNotInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotWhitelisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SubmissionNotRetroactive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedCaller\",\"inputs\":[]}]", - Bin: "0x6101c0604052348015610010575f5ffd5b506040516142e63803806142e683398101604081905261002f91610211565b858a8a8a88888888888f6001600160a01b038116610060576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261007685826102d3565b63ffffffff161561009a57604051630e06bd3160e01b815260040160405180910390fd5b6100a762015180866102d3565b63ffffffff16156100cb5760405163223c7b3960e11b815260040160405180910390fd5b6001600160a01b0397881660a05295871660c05293861660e05263ffffffff9283166101005290821661012052811661014052908116610160521661018052166101a052610117610126565b50505050505050505050610306565b5f54610100900460ff16156101915760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101e0575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101f6575f5ffd5b50565b805163ffffffff8116811461020c575f5ffd5b919050565b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561022b575f5ffd5b8a51610236816101e2565b60208c0151909a50610247816101e2565b60408c0151909950610258816101e2565b60608c0151909850610269816101e2565b60808c015190975061027a816101e2565b955061028860a08c016101f9565b945061029660c08c016101f9565b93506102a460e08c016101f9565b92506102b36101008c016101f9565b91506102c26101208c016101f9565b90509295989b9194979a5092959850565b5f63ffffffff8316806102f457634e487b7160e01b5f52601260045260245ffd5b8063ffffffff84160691505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051613f166103d05f395f81816105a60152612a1701525f818161045a0152612f3f01525f81816103bc015261238001525f81816105080152612efd01525f818161080c0152612e0d01525f818161076001528181612e5d0152612eab01525f81816108600152611a7401525f818161052f0152612fda01525f81816108d301526119e401525f81816106f201528181610b62015281816111750152611e190152613f165ff3fe608060405234801561000f575f5ffd5b506004361061037c575f3560e01c8063886f1195116101d4578063dcbb03b311610109578063f2fde38b116100a9578063fabc1cbc11610079578063fabc1cbc14610981578063fbf1e2c114610994578063fce36c7d146109a7578063ff9f6cce146109ba575f5ffd5b8063f2fde38b14610935578063f6efbb5914610948578063f8cd84481461095b578063f96abf2e1461096e575f5ffd5b8063e810ce21116100e4578063e810ce21146108bb578063ea4d3c9b146108ce578063ed71e6a2146108f5578063f22cef8514610922575f5ffd5b8063dcbb03b314610882578063de02e50314610895578063e063f81f146108a8575f5ffd5b8063a50a1d9c11610174578063bb7e451f1161014f578063bb7e451f146107e8578063bf21a8aa14610807578063c46db6061461082e578063ca8aa7c71461085b575f5ffd5b8063a50a1d9c14610795578063aebd8bae146107a8578063b3dbb0e0146107d5575f5ffd5b80639be3d4e4116101af5780639be3d4e4146107405780639cb9a5fa146107485780639d45c2811461075b578063a0169ddd14610782575f5ffd5b8063886f1195146106ed5780638da5cb5b146107145780639104c31914610725575f5ffd5b80634596021c116102b55780635c975abb11610255578063715018a611610225578063715018a6146106a05780637b8f8b05146106a8578063863cb9a9146106b0578063865c6953146106c3575f5ffd5b80635c975abb146106435780635e9d83481461064b57806363f6a7981461065e5780636d21117e14610673575f5ffd5b80634d18cc35116102905780634d18cc35146105ee57806358baaa3e14610605578063595c6a67146106185780635ac86ab714610620575f5ffd5b80634596021c1461058e5780634657e26a146105a15780634b943960146105c8575f5ffd5b80632b9f64a41161032057806339b70e38116102fb57806339b70e381461052a5780633a8c0786146105515780633ccc861d146105685780633efe1db61461057b575f5ffd5b80632b9f64a4146104b057806336af41fa146104f057806337838ed014610503575f5ffd5b80630eb383451161035b5780630eb3834514610440578063131433b414610455578063136439dd1461047c578063149bc8721461048f575f5ffd5b806218572c1461038057806304a0c502146103b75780630e9a53cf146103f3575b5f5ffd5b6103a261038e3660046134f6565b60d16020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016103ae565b6103fb6109cd565b6040516103ae91905f6080820190508251825263ffffffff602084015116602083015263ffffffff604084015116604083015260608301511515606083015292915050565b61045361044e36600461351e565b610acd565b005b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61045361048a366004613555565b610b4d565b6104a261049d366004613582565b610c22565b6040519081526020016103ae565b6104d86104be3660046134f6565b60cc6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016103ae565b6104536104fe3660046135e4565b610c97565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b60cb546103de90600160a01b900463ffffffff1681565b610453610576366004613634565b610e37565b61045361058936600461368b565b610e7c565b61045361059c3660046136b5565b611070565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6105db6105d63660046134f6565b6110f1565b60405161ffff90911681526020016103ae565b60cb546103de90600160c01b900463ffffffff1681565b610453610613366004613708565b61114c565b610453611160565b6103a261062e366004613721565b606654600160ff9092169190911b9081161490565b6066546104a2565b6103a2610659366004613741565b61120f565b60cb546105db90600160e01b900461ffff1681565b6103a2610681366004613773565b60cf60209081525f928352604080842090915290825290205460ff1681565b61045361129a565b60ca546104a2565b6104536106be3660046134f6565b6112ab565b6104a26106d136600461379d565b60cd60209081525f928352604080842090915290825290205481565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b03166104d8565b6104d873beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103fb6112bc565b6104536107563660046137c9565b611358565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6104536107903660046134f6565b611503565b6104536107a336600461382b565b61150e565b6103a26107b6366004613773565b60d260209081525f928352604080842090915290825290205460ff1681565b6104536107e3366004613844565b61151f565b6104a26107f63660046134f6565b60ce6020525f908152604090205481565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6103a261083c366004613773565b60d060209081525f928352604080842090915290825290205460ff1681565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b61045361089036600461386e565b61168f565b6103fb6108a3366004613555565b611821565b6105db6108b636600461379d565b6118b1565b6103de6108c9366004613555565b61191d565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6103a2610903366004613773565b60d360209081525f928352604080842090915290825290205460ff1681565b61045361093036600461379d565b61199e565b6104536109433660046134f6565b611b08565b6104536109563660046138b2565b611b83565b6104a2610969366004613582565b611cb8565b61045361097c366004613708565b611cc8565b61045361098f366004613555565b611e17565b60cb546104d8906001600160a01b031681565b6104536109b53660046135e4565b611f2d565b6104536109c83660046135e4565b61207c565b604080516080810182525f80825260208201819052918101829052606081019190915260ca545b8015610aa5575f60ca610a08600184613924565b81548110610a1857610a18613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161580156060830181905291925090610a875750806040015163ffffffff164210155b15610a925792915050565b5080610a9d8161394b565b9150506109f4565b5050604080516080810182525f80825260208201819052918101829052606081019190915290565b610ad56121fb565b6001600160a01b0382165f81815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b03919091165f90815260d160205260409020805460ff1916911515919091179055565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610baf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd39190613960565b610bf057604051631d77d47760e21b815260040160405180910390fd5b6066548181168114610c155760405163c61dca5d60e01b815260040160405180910390fd5b610c1e82612255565b5050565b5f80610c3160208401846134f6565b8360200135604051602001610c7a9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b606654600190600290811603610cc05760405163840a48d560e01b815260040160405180910390fd5b335f90815260d1602052604090205460ff16610cef57604051635c427cd960e01b815260040160405180910390fd5b610cf7612292565b5f5b82811015610e275736848483818110610d1457610d14613937565b9050602002810190610d26919061397b565b335f81815260ce60209081526040808320549051949550939192610d509290918591879101613ac9565b604051602081830303815290604052805190602001209050610d71836122eb565b335f90815260d0602090815260408083208484529091529020805460ff19166001908117909155610da3908390613af8565b335f81815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610dea908890613b0b565b60405180910390a4610e1c333060408601803590610e0b90602089016134f6565b6001600160a01b03169291906123db565b505050600101610cf9565b50610e326001609755565b505050565b606654600290600490811603610e605760405163840a48d560e01b815260040160405180910390fd5b610e68612292565b610e728383612446565b610e326001609755565b606654600390600890811603610ea55760405163840a48d560e01b815260040160405180910390fd5b60cb546001600160a01b03163314610ed057604051635c427cd960e01b815260040160405180910390fd5b60cb5463ffffffff600160c01b909104811690831611610f0357604051631ca7e50b60e21b815260040160405180910390fd5b428263ffffffff1610610f29576040516306957c9160e11b815260040160405180910390fd5b60ca5460cb545f90610f4890600160a01b900463ffffffff1642613b1d565b6040805160808101825287815263ffffffff87811660208084018281528684168587018181525f6060880181815260ca8054600181018255925297517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029092029182015592517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee290930180549151975193871667ffffffffffffffff1990921691909117600160201b978716979097029690961760ff60401b1916600160401b921515929092029190911790945560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b6066546002906004908116036110995760405163840a48d560e01b815260040160405180910390fd5b6110a1612292565b5f5b838110156110e0576110d88585838181106110c0576110c0613937565b90506020028101906110d29190613b39565b84612446565b6001016110a3565b506110eb6001609755565b50505050565b6001600160a01b0381165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff1690820152611146906126ce565b92915050565b6111546121fb565b61115d81612719565b50565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156111c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e69190613960565b61120357604051631d77d47760e21b815260040160405180910390fd5b61120d5f19612255565b565b5f6112928260ca6112236020830183613708565b63ffffffff168154811061123957611239613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015261278a565b506001919050565b6112a26121fb565b61120d5f61292d565b6112b36121fb565b61115d8161297e565b604080516080810182525f80825260208201819052918101829052606081019190915260ca80546112ef90600190613924565b815481106112ff576112ff613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff1615156060820152919050565b6066546005906020908116036113815760405163840a48d560e01b815260040160405180910390fd5b8361138b816129d9565b6113a85760405163932d94f760e01b815260040160405180910390fd5b6113b0612292565b5f5b838110156114f157368585838181106113cd576113cd613937565b90506020028101906113df9190613b4d565b6001600160a01b0388165f90815260ce6020908152604080832054905193945092611410918b918591879101613cbb565b6040516020818303038152906040528051906020012090505f61143284612a83565b6001600160a01b038b165f90815260d3602090815260408083208684529091529020805460ff19166001908117909155909150611470908490613af8565b6001600160a01b038b165f81815260ce60205260409081902092909255905183919033907ffc8888bffd711da60bc5092b33f677d81896fe80ecc677b84cfab8184462b6e0906114c39088908a90613ce1565b60405180910390a46114e1333083610e0b6040890160208a016134f6565b5050600190920191506113b29050565b506114fc6001609755565b5050505050565b33610c1e8183612c69565b6115166121fb565b61115d81612ccc565b6066546007906080908116036115485760405163840a48d560e01b815260040160405180910390fd5b82611552816129d9565b61156f5760405163932d94f760e01b815260040160405180910390fd5b61271061ffff841611156115965760405163891c63df60e01b815260040160405180910390fd5b60cb545f906115b290600160a01b900463ffffffff1642613b1d565b6001600160a01b0386165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff16908201529192509061160b906126ce565b6001600160a01b0387165f90815260d560205260409020909150611630908684612d37565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388169133917fd1e028bd664486a46ad26040e999cd2d22e1e9a094ee6afe19fcf64678f16f749181900360600190a3505050505050565b6066546006906040908116036116b85760405163840a48d560e01b815260040160405180910390fd5b836116c2816129d9565b6116df5760405163932d94f760e01b815260040160405180910390fd5b61271061ffff841611156117065760405163891c63df60e01b815260040160405180910390fd5b60cb545f9061172290600160a01b900463ffffffff1642613b1d565b6001600160a01b038781165f90815260d460209081526040808320938a1683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff1692810192909252919250611789906126ce565b6001600160a01b038089165f90815260d460209081526040808320938b168352929052209091506117bb908684612d37565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388811692908a169133917f48e198b6ae357e529204ee53a8e514c470ff77d9cc8e4f7207f8b5d490ae6934919081900360600190a450505050505050565b604080516080810182525f80825260208201819052918101829052606081019190915260ca828154811061185757611857613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015292915050565b6001600160a01b038281165f90815260d46020908152604080832093851683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff169281019290925290611916906126ce565b9392505050565b60ca545f905b63ffffffff811615611984578260ca61193d600184613cf9565b63ffffffff168154811061195357611953613937565b905f5260205f2090600202015f01540361197257611916600182613cf9565b8061197c81613d15565b915050611923565b5060405163504570e360e01b815260040160405180910390fd5b816119a8816129d9565b6119c55760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611a29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a4d9190613960565b80611ae1575060405163ba1a84e560e01b81526001600160a01b0384811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ba1a84e590602401602060405180830381865afa158015611abb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611adf9190613d33565b115b611afe5760405163fb494ea160e01b815260040160405180910390fd5b610e328383612c69565b611b106121fb565b6001600160a01b038116611b7a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61115d8161292d565b5f54610100900460ff1615808015611ba157505f54600160ff909116105b80611bba5750303b158015611bba57505f5460ff166001145b611c1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611b71565b5f805460ff191660011790558015611c3e575f805461ff0019166101001790555b611c4785612255565b611c508661292d565b611c598461297e565b611c6283612719565b611c6b82612ccc565b8015611cb0575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b5f6001610c3160208401846134f6565b606654600390600890811603611cf15760405163840a48d560e01b815260040160405180910390fd5b60cb546001600160a01b03163314611d1c57604051635c427cd960e01b815260040160405180910390fd5b60ca5463ffffffff831610611d44576040516394a8d38960e01b815260040160405180910390fd5b5f60ca8363ffffffff1681548110611d5e57611d5e613937565b905f5260205f20906002020190508060010160089054906101000a900460ff1615611d9c57604051631b14174b60e01b815260040160405180910390fd5b6001810154600160201b900463ffffffff164210611dcd57604051630c36f66560e21b815260040160405180910390fd5b60018101805460ff60401b1916600160401b17905560405163ffffffff8416907fd850e6e5dfa497b72661fa73df2923464eaed9dc2ff1d3cb82bccbfeabe5c41e905f90a2505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e979190613d4a565b6001600160a01b0316336001600160a01b031614611ec85760405163794821ff60e01b815260040160405180910390fd5b60665480198219811614611eef5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b6066545f90600190811603611f555760405163840a48d560e01b815260040160405180910390fd5b611f5d612292565b5f5b82811015610e275736848483818110611f7a57611f7a613937565b9050602002810190611f8c919061397b565b335f81815260ce60209081526040808320549051949550939192611fb69290918591879101613ac9565b604051602081830303815290604052805190602001209050611fd7836122eb565b335f90815260cf602090815260408083208484529091529020805460ff19166001908117909155612009908390613af8565b335f81815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190612050908890613b0b565b60405180910390a4612071333060408601803590610e0b90602089016134f6565b505050600101611f5f565b6066546004906010908116036120a55760405163840a48d560e01b815260040160405180910390fd5b335f90815260d1602052604090205460ff166120d457604051635c427cd960e01b815260040160405180910390fd5b6120dc612292565b5f5b82811015610e2757368484838181106120f9576120f9613937565b905060200281019061210b919061397b565b335f81815260ce602090815260408083205490519495509391926121359290918591879101613ac9565b604051602081830303815290604052805190602001209050612156836122eb565b335f90815260d2602090815260408083208484529091529020805460ff19166001908117909155612188908390613af8565b335f81815260ce602052604090819020929092559051829184917f5251b6fdefcb5d81144e735f69ea4c695fd43b0289ca53dc075033f5fc80068b906121cf908890613b0b565b60405180910390a46121f0333060408601803590610e0b90602089016134f6565b5050506001016120de565b6033546001600160a01b0316331461120d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611b71565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6002609754036122e45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611b71565b6002609755565b61231d6122f88280613d65565b6123086080850160608601613708565b61231860a0860160808701613708565b612ded565b5f816040013511612341576040516310eb483f60e21b815260040160405180910390fd5b6f4b3b4ca85a86c47a098a223fffffffff816040013511156123765760405163070b5a6f60e21b815260040160405180910390fd5b6123a663ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642613af8565b6123b66080830160608401613708565b63ffffffff16111561115d57604051637ee2b44360e01b815260040160405180910390fd5b6040516001600160a01b03808516602483015283166044820152606481018290526110eb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526130c5565b5f60ca6124566020850185613708565b63ffffffff168154811061246c5761246c613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015290506124cc838261278a565b5f6124dd60808501606086016134f6565b6001600160a01b038082165f90815260cc602052604090205491925016806125025750805b336001600160a01b0382161461252b57604051635c427cd960e01b815260040160405180910390fd5b5f5b61253a60a0870187613dab565b9050811015611cb0573661255160e0880188613d65565b8381811061256157612561613937565b6001600160a01b0387165f90815260cd602090815260408083209302949094019450929091508290612595908501856134f6565b6001600160a01b03166001600160a01b031681526020019081526020015f20549050808260200135116125db5760405163aa385e8160e01b815260040160405180910390fd5b5f6125ea826020850135613924565b6001600160a01b0387165f90815260cd6020908152604082209293508501803592919061261790876134f6565b6001600160a01b031681526020808201929092526040015f20919091556126589089908390612648908701876134f6565b6001600160a01b03169190613198565b86516001600160a01b03808a1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061269c60208901896134f6565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a450505060010161252d565b5f816040015163ffffffff165f036126f357505060cb54600160e01b900461ffff1690565b816040015163ffffffff1642101561270c578151611146565b506020015190565b919050565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b8060600151156127ad57604051631b14174b60e01b815260040160405180910390fd5b806040015163ffffffff164210156127d857604051631437a2bb60e31b815260040160405180910390fd5b6127e560c0830183613dab565b90506127f460a0840184613dab565b905014612814576040516343714afd60e01b815260040160405180910390fd5b61282160e0830183613d65565b905061283060c0840184613dab565b905014612850576040516343714afd60e01b815260040160405180910390fd5b805161287c906128666040850160208601613708565b6128736040860186613df1565b866060016131c8565b5f5b61288b60a0840184613dab565b9050811015610e325761292560808401356128a960a0860186613dab565b848181106128b9576128b9613937565b90506020020160208101906128ce9190613708565b6128db60c0870187613dab565b858181106128eb576128eb613937565b90506020028101906128fd9190613df1565b61290a60e0890189613d65565b8781811061291a5761291a613937565b90506040020161326c565b60010161287e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb905f90a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015612a5f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111469190613960565b5f612ab1612a918380613d65565b612aa16080860160608701613708565b61231860a0870160808801613708565b5f612abf6040840184613d65565b905011612adf5760405163796cc52560e01b815260040160405180910390fd5b42612af060a0840160808501613708565b612b006080850160608601613708565b612b0a9190613b1d565b63ffffffff1610612b2e5760405163150358a160e21b815260040160405180910390fd5b5f80805b612b3f6040860186613d65565b9050811015612c305736612b566040870187613d65565b83818110612b6657612b66613937565b6040029190910191505f9050612b7f60208301836134f6565b6001600160a01b031603612ba657604051630863a45360e11b815260040160405180910390fd5b612bb360208201826134f6565b6001600160a01b0316836001600160a01b031610612be4576040516310fb47f160e31b815260040160405180910390fd5b5f816020013511612c08576040516310eb483f60e21b815260040160405180910390fd5b612c1560208201826134f6565b9250612c25602082013585613af8565b935050600101612b32565b506f4b3b4ca85a86c47a098a223fffffffff821115612c625760405163070b5a6f60e21b815260040160405180910390fd5b5092915050565b6001600160a01b038083165f81815260cc602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca3129190a4505050565b60cb546040805161ffff600160e01b9093048316815291831660208301527fe6cd4edfdcc1f6d130ab35f73d72378f3a642944fb4ee5bd84b7807a81ea1c4e910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b8254600160201b900463ffffffff164211612d6557604051637b1e25c560e01b815260040160405180910390fd5b8254600160201b900463ffffffff165f03612d9a5760cb548354600160e01b90910461ffff1661ffff19909116178355612db1565b825462010000810461ffff1661ffff199091161783555b825463ffffffff909116600160201b0267ffffffff000000001961ffff90931662010000029290921667ffffffffffff00001990911617179055565b82612e0b5760405163796cc52560e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff161115612e5857604051630dd0b9f560e21b815260040160405180910390fd5b612e827f000000000000000000000000000000000000000000000000000000000000000082613e48565b63ffffffff1615612ea65760405163ee66470560e01b815260040160405180910390fd5b612ed07f000000000000000000000000000000000000000000000000000000000000000083613e48565b63ffffffff1615612ef457604051633c1a94f160e21b815260040160405180910390fd5b8163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1642612f2d9190613924565b11158015612f6757508163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b612f845760405163041aa75760e11b815260040160405180910390fd5b5f805b84811015611cb0575f868683818110612fa257612fa2613937565b612fb892602060409092020190810191506134f6565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa158015613021573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130459190613960565b8061306c57506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61308957604051632efd965160e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b0316106130bb5760405163dfad9ca160e01b815260040160405180910390fd5b9150600101612f87565b5f613119826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166132aa9092919063ffffffff16565b905080515f14806131395750808060200190518101906131399190613960565b610e325760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611b71565b6040516001600160a01b038316602482015260448101829052610e3290849063a9059cbb60e01b9060640161240f565b6131d3602083613e6f565b6001901b8463ffffffff16106131fb5760405162c6c39d60e71b815260040160405180910390fd5b5f61320582610c22565b905061324f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92508591505063ffffffff89166132c0565b611cb0576040516369ca16c960e01b815260040160405180910390fd5b613277602083613e6f565b6001901b8463ffffffff16106132a05760405163054ff4df60e51b815260040160405180910390fd5b5f61320582611cb8565b60606132b884845f856132d7565b949350505050565b5f836132cd8685856133ae565b1495945050505050565b6060824710156133385760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611b71565b5f5f866001600160a01b031685876040516133539190613e82565b5f6040518083038185875af1925050503d805f811461338d576040519150601f19603f3d011682016040523d82523d5f602084013e613392565b606091505b50915091506133a387838387613445565b979650505050505050565b5f602084516133bd9190613e98565b156133db576040516313717da960e21b815260040160405180910390fd5b8260205b8551811161343c576133f2600285613e98565b5f0361341357815f528086015160205260405f20915060028404935061342a565b808601515f528160205260405f2091506002840493505b613435602082613af8565b90506133df565b50949350505050565b606083156134b35782515f036134ac576001600160a01b0385163b6134ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611b71565b50816132b8565b6132b883838151156134c85781518083602001fd5b8060405162461bcd60e51b8152600401611b719190613eab565b6001600160a01b038116811461115d575f5ffd5b5f60208284031215613506575f5ffd5b8135611916816134e2565b801515811461115d575f5ffd5b5f5f6040838503121561352f575f5ffd5b823561353a816134e2565b9150602083013561354a81613511565b809150509250929050565b5f60208284031215613565575f5ffd5b5035919050565b5f6040828403121561357c575f5ffd5b50919050565b5f60408284031215613592575f5ffd5b611916838361356c565b5f5f83601f8401126135ac575f5ffd5b50813567ffffffffffffffff8111156135c3575f5ffd5b6020830191508360208260051b85010111156135dd575f5ffd5b9250929050565b5f5f602083850312156135f5575f5ffd5b823567ffffffffffffffff81111561360b575f5ffd5b6136178582860161359c565b90969095509350505050565b5f610100828403121561357c575f5ffd5b5f5f60408385031215613645575f5ffd5b823567ffffffffffffffff81111561365b575f5ffd5b61366785828601613623565b925050602083013561354a816134e2565b803563ffffffff81168114612714575f5ffd5b5f5f6040838503121561369c575f5ffd5b823591506136ac60208401613678565b90509250929050565b5f5f5f604084860312156136c7575f5ffd5b833567ffffffffffffffff8111156136dd575f5ffd5b6136e98682870161359c565b90945092505060208401356136fd816134e2565b809150509250925092565b5f60208284031215613718575f5ffd5b61191682613678565b5f60208284031215613731575f5ffd5b813560ff81168114611916575f5ffd5b5f60208284031215613751575f5ffd5b813567ffffffffffffffff811115613767575f5ffd5b6132b884828501613623565b5f5f60408385031215613784575f5ffd5b823561378f816134e2565b946020939093013593505050565b5f5f604083850312156137ae575f5ffd5b82356137b9816134e2565b9150602083013561354a816134e2565b5f5f5f604084860312156137db575f5ffd5b83356137e6816134e2565b9250602084013567ffffffffffffffff811115613801575f5ffd5b61380d8682870161359c565b9497909650939450505050565b803561ffff81168114612714575f5ffd5b5f6020828403121561383b575f5ffd5b6119168261381a565b5f5f60408385031215613855575f5ffd5b8235613860816134e2565b91506136ac6020840161381a565b5f5f5f60608486031215613880575f5ffd5b833561388b816134e2565b9250602084013561389b816134e2565b91506138a96040850161381a565b90509250925092565b5f5f5f5f5f60a086880312156138c6575f5ffd5b85356138d1816134e2565b94506020860135935060408601356138e8816134e2565b92506138f660608701613678565b91506139046080870161381a565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561114657611146613910565b634e487b7160e01b5f52603260045260245ffd5b5f8161395957613959613910565b505f190190565b5f60208284031215613970575f5ffd5b815161191681613511565b5f8235609e1983360301811261398f575f5ffd5b9190910192915050565b5f5f8335601e198436030181126139ae575f5ffd5b830160208101925035905067ffffffffffffffff8111156139cd575f5ffd5b8060061b36038213156135dd575f5ffd5b8183526020830192505f815f5b84811015613a415781356139fe816134e2565b6001600160a01b0316865260208201356bffffffffffffffffffffffff8116808214613a28575f5ffd5b60208801525060409586019591909101906001016139eb565b5093949350505050565b5f613a568283613999565b60a08552613a6860a0860182846139de565b9150506020830135613a79816134e2565b6001600160a01b031660208501526040838101359085015263ffffffff613aa260608501613678565b16606085015263ffffffff613ab960808501613678565b1660808501528091505092915050565b60018060a01b0384168152826020820152606060408201525f613aef6060830184613a4b565b95945050505050565b8082018082111561114657611146613910565b602081525f6119166020830184613a4b565b63ffffffff818116838216019081111561114657611146613910565b5f823560fe1983360301811261398f575f5ffd5b5f823560be1983360301811261398f575f5ffd5b5f5f8335601e19843603018112613b76575f5ffd5b830160208101925035905067ffffffffffffffff811115613b95575f5ffd5b8036038213156135dd575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f613bd68283613999565b60c08552613be860c0860182846139de565b9150506020830135613bf9816134e2565b6001600160a01b03166020850152613c146040840184613999565b858303604087015280835290915f91906020015b81831015613c63578335613c3b816134e2565b6001600160a01b03168152602084810135908201526040938401936001939093019201613c28565b613c6f60608701613678565b63ffffffff811660608901529350613c8960808701613678565b63ffffffff811660808901529350613ca460a0870187613b61565b9450925086810360a08801526133a3818585613ba3565b60018060a01b0384168152826020820152606060408201525f613aef6060830184613bcb565b828152604060208201525f6132b86040830184613bcb565b63ffffffff828116828216039081111561114657611146613910565b5f63ffffffff821680613d2a57613d2a613910565b5f190192915050565b5f60208284031215613d43575f5ffd5b5051919050565b5f60208284031215613d5a575f5ffd5b8151611916816134e2565b5f5f8335601e19843603018112613d7a575f5ffd5b83018035915067ffffffffffffffff821115613d94575f5ffd5b6020019150600681901b36038213156135dd575f5ffd5b5f5f8335601e19843603018112613dc0575f5ffd5b83018035915067ffffffffffffffff821115613dda575f5ffd5b6020019150600581901b36038213156135dd575f5ffd5b5f5f8335601e19843603018112613e06575f5ffd5b83018035915067ffffffffffffffff821115613e20575f5ffd5b6020019150368190038213156135dd575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b5f63ffffffff831680613e5d57613e5d613e34565b8063ffffffff84160691505092915050565b5f82613e7d57613e7d613e34565b500490565b5f82518060208501845e5f920191825250919050565b5f82613ea657613ea6613e34565b500690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212208359ff409b13b917b3d40263e2f4178845893c3cd21670e4182fa7257f0e81fa64736f6c634300081b0033", + Bin: "0x6101c0604052348015610010575f5ffd5b506040516142e63803806142e683398101604081905261002f91610211565b858a8a8a88888888888f6001600160a01b038116610060576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261007685826102d3565b63ffffffff161561009a57604051630e06bd3160e01b815260040160405180910390fd5b6100a762015180866102d3565b63ffffffff16156100cb5760405163223c7b3960e11b815260040160405180910390fd5b6001600160a01b0397881660a05295871660c05293861660e05263ffffffff9283166101005290821661012052811661014052908116610160521661018052166101a052610117610126565b50505050505050505050610306565b5f54610100900460ff16156101915760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101e0575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101f6575f5ffd5b50565b805163ffffffff8116811461020c575f5ffd5b919050565b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561022b575f5ffd5b8a51610236816101e2565b60208c0151909a50610247816101e2565b60408c0151909950610258816101e2565b60608c0151909850610269816101e2565b60808c015190975061027a816101e2565b955061028860a08c016101f9565b945061029660c08c016101f9565b93506102a460e08c016101f9565b92506102b36101008c016101f9565b91506102c26101208c016101f9565b90509295989b9194979a5092959850565b5f63ffffffff8316806102f457634e487b7160e01b5f52601260045260245ffd5b8063ffffffff84160691505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051613f166103d05f395f81816105a60152612a1701525f818161045a0152612f3f01525f81816103bc015261238001525f81816105080152612efd01525f818161080c0152612e0d01525f818161076001528181612e5d0152612eab01525f81816108600152611a7401525f818161052f0152612fda01525f81816108d301526119e401525f81816106f201528181610b62015281816111750152611e190152613f165ff3fe608060405234801561000f575f5ffd5b506004361061037c575f3560e01c8063886f1195116101d4578063dcbb03b311610109578063f2fde38b116100a9578063fabc1cbc11610079578063fabc1cbc14610981578063fbf1e2c114610994578063fce36c7d146109a7578063ff9f6cce146109ba575f5ffd5b8063f2fde38b14610935578063f6efbb5914610948578063f8cd84481461095b578063f96abf2e1461096e575f5ffd5b8063e810ce21116100e4578063e810ce21146108bb578063ea4d3c9b146108ce578063ed71e6a2146108f5578063f22cef8514610922575f5ffd5b8063dcbb03b314610882578063de02e50314610895578063e063f81f146108a8575f5ffd5b8063a50a1d9c11610174578063bb7e451f1161014f578063bb7e451f146107e8578063bf21a8aa14610807578063c46db6061461082e578063ca8aa7c71461085b575f5ffd5b8063a50a1d9c14610795578063aebd8bae146107a8578063b3dbb0e0146107d5575f5ffd5b80639be3d4e4116101af5780639be3d4e4146107405780639cb9a5fa146107485780639d45c2811461075b578063a0169ddd14610782575f5ffd5b8063886f1195146106ed5780638da5cb5b146107145780639104c31914610725575f5ffd5b80634596021c116102b55780635c975abb11610255578063715018a611610225578063715018a6146106a05780637b8f8b05146106a8578063863cb9a9146106b0578063865c6953146106c3575f5ffd5b80635c975abb146106435780635e9d83481461064b57806363f6a7981461065e5780636d21117e14610673575f5ffd5b80634d18cc35116102905780634d18cc35146105ee57806358baaa3e14610605578063595c6a67146106185780635ac86ab714610620575f5ffd5b80634596021c1461058e5780634657e26a146105a15780634b943960146105c8575f5ffd5b80632b9f64a41161032057806339b70e38116102fb57806339b70e381461052a5780633a8c0786146105515780633ccc861d146105685780633efe1db61461057b575f5ffd5b80632b9f64a4146104b057806336af41fa146104f057806337838ed014610503575f5ffd5b80630eb383451161035b5780630eb3834514610440578063131433b414610455578063136439dd1461047c578063149bc8721461048f575f5ffd5b806218572c1461038057806304a0c502146103b75780630e9a53cf146103f3575b5f5ffd5b6103a261038e3660046134f6565b60d16020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016103ae565b6103fb6109cd565b6040516103ae91905f6080820190508251825263ffffffff602084015116602083015263ffffffff604084015116604083015260608301511515606083015292915050565b61045361044e36600461351e565b610acd565b005b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61045361048a366004613555565b610b4d565b6104a261049d366004613582565b610c22565b6040519081526020016103ae565b6104d86104be3660046134f6565b60cc6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016103ae565b6104536104fe3660046135e4565b610c97565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b60cb546103de90600160a01b900463ffffffff1681565b610453610576366004613634565b610e37565b61045361058936600461368b565b610e7c565b61045361059c3660046136b5565b611070565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6105db6105d63660046134f6565b6110f1565b60405161ffff90911681526020016103ae565b60cb546103de90600160c01b900463ffffffff1681565b610453610613366004613708565b61114c565b610453611160565b6103a261062e366004613721565b606654600160ff9092169190911b9081161490565b6066546104a2565b6103a2610659366004613741565b61120f565b60cb546105db90600160e01b900461ffff1681565b6103a2610681366004613773565b60cf60209081525f928352604080842090915290825290205460ff1681565b61045361129a565b60ca546104a2565b6104536106be3660046134f6565b6112ab565b6104a26106d136600461379d565b60cd60209081525f928352604080842090915290825290205481565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b03166104d8565b6104d873beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103fb6112bc565b6104536107563660046137c9565b611358565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6104536107903660046134f6565b611503565b6104536107a336600461382b565b61150e565b6103a26107b6366004613773565b60d260209081525f928352604080842090915290825290205460ff1681565b6104536107e3366004613844565b61151f565b6104a26107f63660046134f6565b60ce6020525f908152604090205481565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6103a261083c366004613773565b60d060209081525f928352604080842090915290825290205460ff1681565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b61045361089036600461386e565b61168f565b6103fb6108a3366004613555565b611821565b6105db6108b636600461379d565b6118b1565b6103de6108c9366004613555565b61191d565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6103a2610903366004613773565b60d360209081525f928352604080842090915290825290205460ff1681565b61045361093036600461379d565b61199e565b6104536109433660046134f6565b611b08565b6104536109563660046138b2565b611b83565b6104a2610969366004613582565b611cb8565b61045361097c366004613708565b611cc8565b61045361098f366004613555565b611e17565b60cb546104d8906001600160a01b031681565b6104536109b53660046135e4565b611f2d565b6104536109c83660046135e4565b61207c565b604080516080810182525f80825260208201819052918101829052606081019190915260ca545b8015610aa5575f60ca610a08600184613924565b81548110610a1857610a18613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161580156060830181905291925090610a875750806040015163ffffffff164210155b15610a925792915050565b5080610a9d8161394b565b9150506109f4565b5050604080516080810182525f80825260208201819052918101829052606081019190915290565b610ad56121fb565b6001600160a01b0382165f81815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b03919091165f90815260d160205260409020805460ff1916911515919091179055565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610baf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd39190613960565b610bf057604051631d77d47760e21b815260040160405180910390fd5b6066548181168114610c155760405163c61dca5d60e01b815260040160405180910390fd5b610c1e82612255565b5050565b5f80610c3160208401846134f6565b8360200135604051602001610c7a9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b606654600190600290811603610cc05760405163840a48d560e01b815260040160405180910390fd5b335f90815260d1602052604090205460ff16610cef57604051635c427cd960e01b815260040160405180910390fd5b610cf7612292565b5f5b82811015610e275736848483818110610d1457610d14613937565b9050602002810190610d26919061397b565b335f81815260ce60209081526040808320549051949550939192610d509290918591879101613ac9565b604051602081830303815290604052805190602001209050610d71836122eb565b335f90815260d0602090815260408083208484529091529020805460ff19166001908117909155610da3908390613af8565b335f81815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610dea908890613b0b565b60405180910390a4610e1c333060408601803590610e0b90602089016134f6565b6001600160a01b03169291906123db565b505050600101610cf9565b50610e326001609755565b505050565b606654600290600490811603610e605760405163840a48d560e01b815260040160405180910390fd5b610e68612292565b610e728383612446565b610e326001609755565b606654600390600890811603610ea55760405163840a48d560e01b815260040160405180910390fd5b60cb546001600160a01b03163314610ed057604051635c427cd960e01b815260040160405180910390fd5b60cb5463ffffffff600160c01b909104811690831611610f0357604051631ca7e50b60e21b815260040160405180910390fd5b428263ffffffff1610610f29576040516306957c9160e11b815260040160405180910390fd5b60ca5460cb545f90610f4890600160a01b900463ffffffff1642613b1d565b6040805160808101825287815263ffffffff87811660208084018281528684168587018181525f6060880181815260ca8054600181018255925297517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029092029182015592517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee290930180549151975193871667ffffffffffffffff1990921691909117600160201b978716979097029690961760ff60401b1916600160401b921515929092029190911790945560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b6066546002906004908116036110995760405163840a48d560e01b815260040160405180910390fd5b6110a1612292565b5f5b838110156110e0576110d88585838181106110c0576110c0613937565b90506020028101906110d29190613b39565b84612446565b6001016110a3565b506110eb6001609755565b50505050565b6001600160a01b0381165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff1690820152611146906126ce565b92915050565b6111546121fb565b61115d81612719565b50565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156111c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e69190613960565b61120357604051631d77d47760e21b815260040160405180910390fd5b61120d5f19612255565b565b5f6112928260ca6112236020830183613708565b63ffffffff168154811061123957611239613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015261278a565b506001919050565b6112a26121fb565b61120d5f61292d565b6112b36121fb565b61115d8161297e565b604080516080810182525f80825260208201819052918101829052606081019190915260ca80546112ef90600190613924565b815481106112ff576112ff613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff1615156060820152919050565b6066546005906020908116036113815760405163840a48d560e01b815260040160405180910390fd5b8361138b816129d9565b6113a85760405163932d94f760e01b815260040160405180910390fd5b6113b0612292565b5f5b838110156114f157368585838181106113cd576113cd613937565b90506020028101906113df9190613b4d565b6001600160a01b0388165f90815260ce6020908152604080832054905193945092611410918b918591879101613cbb565b6040516020818303038152906040528051906020012090505f61143284612a83565b6001600160a01b038b165f90815260d3602090815260408083208684529091529020805460ff19166001908117909155909150611470908490613af8565b6001600160a01b038b165f81815260ce60205260409081902092909255905183919033907ffc8888bffd711da60bc5092b33f677d81896fe80ecc677b84cfab8184462b6e0906114c39088908a90613ce1565b60405180910390a46114e1333083610e0b6040890160208a016134f6565b5050600190920191506113b29050565b506114fc6001609755565b5050505050565b33610c1e8183612c69565b6115166121fb565b61115d81612ccc565b6066546007906080908116036115485760405163840a48d560e01b815260040160405180910390fd5b82611552816129d9565b61156f5760405163932d94f760e01b815260040160405180910390fd5b61271061ffff841611156115965760405163891c63df60e01b815260040160405180910390fd5b60cb545f906115b290600160a01b900463ffffffff1642613b1d565b6001600160a01b0386165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff16908201529192509061160b906126ce565b6001600160a01b0387165f90815260d560205260409020909150611630908684612d37565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388169133917fd1e028bd664486a46ad26040e999cd2d22e1e9a094ee6afe19fcf64678f16f749181900360600190a3505050505050565b6066546006906040908116036116b85760405163840a48d560e01b815260040160405180910390fd5b836116c2816129d9565b6116df5760405163932d94f760e01b815260040160405180910390fd5b61271061ffff841611156117065760405163891c63df60e01b815260040160405180910390fd5b60cb545f9061172290600160a01b900463ffffffff1642613b1d565b6001600160a01b038781165f90815260d460209081526040808320938a1683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff1692810192909252919250611789906126ce565b6001600160a01b038089165f90815260d460209081526040808320938b168352929052209091506117bb908684612d37565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388811692908a169133917f48e198b6ae357e529204ee53a8e514c470ff77d9cc8e4f7207f8b5d490ae6934919081900360600190a450505050505050565b604080516080810182525f80825260208201819052918101829052606081019190915260ca828154811061185757611857613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015292915050565b6001600160a01b038281165f90815260d46020908152604080832093851683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff169281019290925290611916906126ce565b9392505050565b60ca545f905b63ffffffff811615611984578260ca61193d600184613cf9565b63ffffffff168154811061195357611953613937565b905f5260205f2090600202015f01540361197257611916600182613cf9565b8061197c81613d15565b915050611923565b5060405163504570e360e01b815260040160405180910390fd5b816119a8816129d9565b6119c55760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611a29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a4d9190613960565b80611ae1575060405163ba1a84e560e01b81526001600160a01b0384811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ba1a84e590602401602060405180830381865afa158015611abb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611adf9190613d33565b115b611afe5760405163fb494ea160e01b815260040160405180910390fd5b610e328383612c69565b611b106121fb565b6001600160a01b038116611b7a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61115d8161292d565b5f54610100900460ff1615808015611ba157505f54600160ff909116105b80611bba5750303b158015611bba57505f5460ff166001145b611c1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611b71565b5f805460ff191660011790558015611c3e575f805461ff0019166101001790555b611c4785612255565b611c508661292d565b611c598461297e565b611c6283612719565b611c6b82612ccc565b8015611cb0575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b5f6001610c3160208401846134f6565b606654600390600890811603611cf15760405163840a48d560e01b815260040160405180910390fd5b60cb546001600160a01b03163314611d1c57604051635c427cd960e01b815260040160405180910390fd5b60ca5463ffffffff831610611d44576040516394a8d38960e01b815260040160405180910390fd5b5f60ca8363ffffffff1681548110611d5e57611d5e613937565b905f5260205f20906002020190508060010160089054906101000a900460ff1615611d9c57604051631b14174b60e01b815260040160405180910390fd5b6001810154600160201b900463ffffffff164210611dcd57604051630c36f66560e21b815260040160405180910390fd5b60018101805460ff60401b1916600160401b17905560405163ffffffff8416907fd850e6e5dfa497b72661fa73df2923464eaed9dc2ff1d3cb82bccbfeabe5c41e905f90a2505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e979190613d4a565b6001600160a01b0316336001600160a01b031614611ec85760405163794821ff60e01b815260040160405180910390fd5b60665480198219811614611eef5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b6066545f90600190811603611f555760405163840a48d560e01b815260040160405180910390fd5b611f5d612292565b5f5b82811015610e275736848483818110611f7a57611f7a613937565b9050602002810190611f8c919061397b565b335f81815260ce60209081526040808320549051949550939192611fb69290918591879101613ac9565b604051602081830303815290604052805190602001209050611fd7836122eb565b335f90815260cf602090815260408083208484529091529020805460ff19166001908117909155612009908390613af8565b335f81815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190612050908890613b0b565b60405180910390a4612071333060408601803590610e0b90602089016134f6565b505050600101611f5f565b6066546004906010908116036120a55760405163840a48d560e01b815260040160405180910390fd5b335f90815260d1602052604090205460ff166120d457604051635c427cd960e01b815260040160405180910390fd5b6120dc612292565b5f5b82811015610e2757368484838181106120f9576120f9613937565b905060200281019061210b919061397b565b335f81815260ce602090815260408083205490519495509391926121359290918591879101613ac9565b604051602081830303815290604052805190602001209050612156836122eb565b335f90815260d2602090815260408083208484529091529020805460ff19166001908117909155612188908390613af8565b335f81815260ce602052604090819020929092559051829184917f5251b6fdefcb5d81144e735f69ea4c695fd43b0289ca53dc075033f5fc80068b906121cf908890613b0b565b60405180910390a46121f0333060408601803590610e0b90602089016134f6565b5050506001016120de565b6033546001600160a01b0316331461120d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611b71565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6002609754036122e45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611b71565b6002609755565b61231d6122f88280613d65565b6123086080850160608601613708565b61231860a0860160808701613708565b612ded565b5f816040013511612341576040516310eb483f60e21b815260040160405180910390fd5b6f4b3b4ca85a86c47a098a223fffffffff816040013511156123765760405163070b5a6f60e21b815260040160405180910390fd5b6123a663ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642613af8565b6123b66080830160608401613708565b63ffffffff16111561115d57604051637ee2b44360e01b815260040160405180910390fd5b6040516001600160a01b03808516602483015283166044820152606481018290526110eb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526130c5565b5f60ca6124566020850185613708565b63ffffffff168154811061246c5761246c613937565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015290506124cc838261278a565b5f6124dd60808501606086016134f6565b6001600160a01b038082165f90815260cc602052604090205491925016806125025750805b336001600160a01b0382161461252b57604051635c427cd960e01b815260040160405180910390fd5b5f5b61253a60a0870187613dab565b9050811015611cb0573661255160e0880188613d65565b8381811061256157612561613937565b6001600160a01b0387165f90815260cd602090815260408083209302949094019450929091508290612595908501856134f6565b6001600160a01b03166001600160a01b031681526020019081526020015f20549050808260200135116125db5760405163aa385e8160e01b815260040160405180910390fd5b5f6125ea826020850135613924565b6001600160a01b0387165f90815260cd6020908152604082209293508501803592919061261790876134f6565b6001600160a01b031681526020808201929092526040015f20919091556126589089908390612648908701876134f6565b6001600160a01b03169190613198565b86516001600160a01b03808a1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061269c60208901896134f6565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a450505060010161252d565b5f816040015163ffffffff165f036126f357505060cb54600160e01b900461ffff1690565b816040015163ffffffff1642101561270c578151611146565b506020015190565b919050565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b8060600151156127ad57604051631b14174b60e01b815260040160405180910390fd5b806040015163ffffffff164210156127d857604051631437a2bb60e31b815260040160405180910390fd5b6127e560c0830183613dab565b90506127f460a0840184613dab565b905014612814576040516343714afd60e01b815260040160405180910390fd5b61282160e0830183613d65565b905061283060c0840184613dab565b905014612850576040516343714afd60e01b815260040160405180910390fd5b805161287c906128666040850160208601613708565b6128736040860186613df1565b866060016131c8565b5f5b61288b60a0840184613dab565b9050811015610e325761292560808401356128a960a0860186613dab565b848181106128b9576128b9613937565b90506020020160208101906128ce9190613708565b6128db60c0870187613dab565b858181106128eb576128eb613937565b90506020028101906128fd9190613df1565b61290a60e0890189613d65565b8781811061291a5761291a613937565b90506040020161326c565b60010161287e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb905f90a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015612a5f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111469190613960565b5f612ab1612a918380613d65565b612aa16080860160608701613708565b61231860a0870160808801613708565b5f612abf6040840184613d65565b905011612adf5760405163796cc52560e01b815260040160405180910390fd5b42612af060a0840160808501613708565b612b006080850160608601613708565b612b0a9190613b1d565b63ffffffff1610612b2e5760405163150358a160e21b815260040160405180910390fd5b5f80805b612b3f6040860186613d65565b9050811015612c305736612b566040870187613d65565b83818110612b6657612b66613937565b6040029190910191505f9050612b7f60208301836134f6565b6001600160a01b031603612ba657604051630863a45360e11b815260040160405180910390fd5b612bb360208201826134f6565b6001600160a01b0316836001600160a01b031610612be4576040516310fb47f160e31b815260040160405180910390fd5b5f816020013511612c08576040516310eb483f60e21b815260040160405180910390fd5b612c1560208201826134f6565b9250612c25602082013585613af8565b935050600101612b32565b506f4b3b4ca85a86c47a098a223fffffffff821115612c625760405163070b5a6f60e21b815260040160405180910390fd5b5092915050565b6001600160a01b038083165f81815260cc602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca3129190a4505050565b60cb546040805161ffff600160e01b9093048316815291831660208301527fe6cd4edfdcc1f6d130ab35f73d72378f3a642944fb4ee5bd84b7807a81ea1c4e910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b8254600160201b900463ffffffff164211612d6557604051637b1e25c560e01b815260040160405180910390fd5b8254600160201b900463ffffffff165f03612d9a5760cb548354600160e01b90910461ffff1661ffff19909116178355612db1565b825462010000810461ffff1661ffff199091161783555b825463ffffffff909116600160201b0267ffffffff000000001961ffff90931662010000029290921667ffffffffffff00001990911617179055565b82612e0b5760405163796cc52560e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff161115612e5857604051630dd0b9f560e21b815260040160405180910390fd5b612e827f000000000000000000000000000000000000000000000000000000000000000082613e48565b63ffffffff1615612ea65760405163ee66470560e01b815260040160405180910390fd5b612ed07f000000000000000000000000000000000000000000000000000000000000000083613e48565b63ffffffff1615612ef457604051633c1a94f160e21b815260040160405180910390fd5b8163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1642612f2d9190613924565b11158015612f6757508163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b612f845760405163041aa75760e11b815260040160405180910390fd5b5f805b84811015611cb0575f868683818110612fa257612fa2613937565b612fb892602060409092020190810191506134f6565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa158015613021573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130459190613960565b8061306c57506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61308957604051632efd965160e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b0316106130bb5760405163dfad9ca160e01b815260040160405180910390fd5b9150600101612f87565b5f613119826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166132aa9092919063ffffffff16565b905080515f14806131395750808060200190518101906131399190613960565b610e325760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611b71565b6040516001600160a01b038316602482015260448101829052610e3290849063a9059cbb60e01b9060640161240f565b6131d3602083613e6f565b6001901b8463ffffffff16106131fb5760405162c6c39d60e71b815260040160405180910390fd5b5f61320582610c22565b905061324f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92508591505063ffffffff89166132c0565b611cb0576040516369ca16c960e01b815260040160405180910390fd5b613277602083613e6f565b6001901b8463ffffffff16106132a05760405163054ff4df60e51b815260040160405180910390fd5b5f61320582611cb8565b60606132b884845f856132d7565b949350505050565b5f836132cd8685856133ae565b1495945050505050565b6060824710156133385760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611b71565b5f5f866001600160a01b031685876040516133539190613e82565b5f6040518083038185875af1925050503d805f811461338d576040519150601f19603f3d011682016040523d82523d5f602084013e613392565b606091505b50915091506133a387838387613445565b979650505050505050565b5f602084516133bd9190613e98565b156133db576040516313717da960e21b815260040160405180910390fd5b8260205b8551811161343c576133f2600285613e98565b5f0361341357815f528086015160205260405f20915060028404935061342a565b808601515f528160205260405f2091506002840493505b613435602082613af8565b90506133df565b50949350505050565b606083156134b35782515f036134ac576001600160a01b0385163b6134ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611b71565b50816132b8565b6132b883838151156134c85781518083602001fd5b8060405162461bcd60e51b8152600401611b719190613eab565b6001600160a01b038116811461115d575f5ffd5b5f60208284031215613506575f5ffd5b8135611916816134e2565b801515811461115d575f5ffd5b5f5f6040838503121561352f575f5ffd5b823561353a816134e2565b9150602083013561354a81613511565b809150509250929050565b5f60208284031215613565575f5ffd5b5035919050565b5f6040828403121561357c575f5ffd5b50919050565b5f60408284031215613592575f5ffd5b611916838361356c565b5f5f83601f8401126135ac575f5ffd5b50813567ffffffffffffffff8111156135c3575f5ffd5b6020830191508360208260051b85010111156135dd575f5ffd5b9250929050565b5f5f602083850312156135f5575f5ffd5b823567ffffffffffffffff81111561360b575f5ffd5b6136178582860161359c565b90969095509350505050565b5f610100828403121561357c575f5ffd5b5f5f60408385031215613645575f5ffd5b823567ffffffffffffffff81111561365b575f5ffd5b61366785828601613623565b925050602083013561354a816134e2565b803563ffffffff81168114612714575f5ffd5b5f5f6040838503121561369c575f5ffd5b823591506136ac60208401613678565b90509250929050565b5f5f5f604084860312156136c7575f5ffd5b833567ffffffffffffffff8111156136dd575f5ffd5b6136e98682870161359c565b90945092505060208401356136fd816134e2565b809150509250925092565b5f60208284031215613718575f5ffd5b61191682613678565b5f60208284031215613731575f5ffd5b813560ff81168114611916575f5ffd5b5f60208284031215613751575f5ffd5b813567ffffffffffffffff811115613767575f5ffd5b6132b884828501613623565b5f5f60408385031215613784575f5ffd5b823561378f816134e2565b946020939093013593505050565b5f5f604083850312156137ae575f5ffd5b82356137b9816134e2565b9150602083013561354a816134e2565b5f5f5f604084860312156137db575f5ffd5b83356137e6816134e2565b9250602084013567ffffffffffffffff811115613801575f5ffd5b61380d8682870161359c565b9497909650939450505050565b803561ffff81168114612714575f5ffd5b5f6020828403121561383b575f5ffd5b6119168261381a565b5f5f60408385031215613855575f5ffd5b8235613860816134e2565b91506136ac6020840161381a565b5f5f5f60608486031215613880575f5ffd5b833561388b816134e2565b9250602084013561389b816134e2565b91506138a96040850161381a565b90509250925092565b5f5f5f5f5f60a086880312156138c6575f5ffd5b85356138d1816134e2565b94506020860135935060408601356138e8816134e2565b92506138f660608701613678565b91506139046080870161381a565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561114657611146613910565b634e487b7160e01b5f52603260045260245ffd5b5f8161395957613959613910565b505f190190565b5f60208284031215613970575f5ffd5b815161191681613511565b5f8235609e1983360301811261398f575f5ffd5b9190910192915050565b5f5f8335601e198436030181126139ae575f5ffd5b830160208101925035905067ffffffffffffffff8111156139cd575f5ffd5b8060061b36038213156135dd575f5ffd5b8183526020830192505f815f5b84811015613a415781356139fe816134e2565b6001600160a01b0316865260208201356bffffffffffffffffffffffff8116808214613a28575f5ffd5b60208801525060409586019591909101906001016139eb565b5093949350505050565b5f613a568283613999565b60a08552613a6860a0860182846139de565b9150506020830135613a79816134e2565b6001600160a01b031660208501526040838101359085015263ffffffff613aa260608501613678565b16606085015263ffffffff613ab960808501613678565b1660808501528091505092915050565b60018060a01b0384168152826020820152606060408201525f613aef6060830184613a4b565b95945050505050565b8082018082111561114657611146613910565b602081525f6119166020830184613a4b565b63ffffffff818116838216019081111561114657611146613910565b5f823560fe1983360301811261398f575f5ffd5b5f823560be1983360301811261398f575f5ffd5b5f5f8335601e19843603018112613b76575f5ffd5b830160208101925035905067ffffffffffffffff811115613b95575f5ffd5b8036038213156135dd575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f613bd68283613999565b60c08552613be860c0860182846139de565b9150506020830135613bf9816134e2565b6001600160a01b03166020850152613c146040840184613999565b858303604087015280835290915f91906020015b81831015613c63578335613c3b816134e2565b6001600160a01b03168152602084810135908201526040938401936001939093019201613c28565b613c6f60608701613678565b63ffffffff811660608901529350613c8960808701613678565b63ffffffff811660808901529350613ca460a0870187613b61565b9450925086810360a08801526133a3818585613ba3565b60018060a01b0384168152826020820152606060408201525f613aef6060830184613bcb565b828152604060208201525f6132b86040830184613bcb565b63ffffffff828116828216039081111561114657611146613910565b5f63ffffffff821680613d2a57613d2a613910565b5f190192915050565b5f60208284031215613d43575f5ffd5b5051919050565b5f60208284031215613d5a575f5ffd5b8151611916816134e2565b5f5f8335601e19843603018112613d7a575f5ffd5b83018035915067ffffffffffffffff821115613d94575f5ffd5b6020019150600681901b36038213156135dd575f5ffd5b5f5f8335601e19843603018112613dc0575f5ffd5b83018035915067ffffffffffffffff821115613dda575f5ffd5b6020019150600581901b36038213156135dd575f5ffd5b5f5f8335601e19843603018112613e06575f5ffd5b83018035915067ffffffffffffffff821115613e20575f5ffd5b6020019150368190038213156135dd575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b5f63ffffffff831680613e5d57613e5d613e34565b8063ffffffff84160691505092915050565b5f82613e7d57613e7d613e34565b500490565b5f82518060208501845e5f920191825250919050565b5f82613ea657613ea6613e34565b500690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212204ae31a4469c20cd0a75fbdf2da021a52fee24139fe24c20c7c2e5b1186e123ea64736f6c634300081b0033", } // RewardsCoordinatorABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/SlashingLib/binding.go b/pkg/bindings/SlashingLib/binding.go index cce9ca9a7..69fab380f 100644 --- a/pkg/bindings/SlashingLib/binding.go +++ b/pkg/bindings/SlashingLib/binding.go @@ -32,7 +32,7 @@ var ( // SlashingLibMetaData contains all meta data concerning the SlashingLib contract. var SlashingLibMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122053d0be8c5ca0460f29e4f1dc51dc880c7e302e8d6bd039e5873127de874e339f64736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220a96750c4bf85317d696fa221aa13cdbfec579ccbfaf615ffe6d71801b48556e764736f6c634300081b0033", } // SlashingLibABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/Snapshots/binding.go b/pkg/bindings/Snapshots/binding.go index d9261e903..03cea3551 100644 --- a/pkg/bindings/Snapshots/binding.go +++ b/pkg/bindings/Snapshots/binding.go @@ -32,7 +32,7 @@ var ( // SnapshotsMetaData contains all meta data concerning the Snapshots contract. var SnapshotsMetaData = &bind.MetaData{ ABI: "[{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]}]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122095c315234ebcd84c427f1db4461791cef2e1df02e98c3c3f3959b3fc3a6868d364736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ff656fcfb20cb65554c2942607ca831fe4f33eae31778a04670c1def58b1885364736f6c634300081b0033", } // SnapshotsABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyBase/binding.go b/pkg/bindings/StrategyBase/binding.go index 29b90ddd7..6f5e22798 100644 --- a/pkg/bindings/StrategyBase/binding.go +++ b/pkg/bindings/StrategyBase/binding.go @@ -32,7 +32,7 @@ var ( // StrategyBaseMetaData contains all meta data concerning the StrategyBase contract. var StrategyBaseMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"newShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"explanation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"shares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlying\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlyingView\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToShares\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToSharesView\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlying\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlyingView\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExchangeRateEmitted\",\"inputs\":[{\"name\":\"rate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyTokenSet\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"decimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BalanceExceedsMaxTotalDeposits\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxPerDepositExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewSharesZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnderlyingToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TotalSharesExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalAmountExceedsTotalDeposits\",\"inputs\":[]}]", - Bin: "0x60c060405234801561000f575f5ffd5b506040516113a63803806113a683398101604081905261002e9161014b565b806001600160a01b038116610056576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a052610071610078565b5050610183565b5f54610100900460ff16156100e35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610132575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610148575f5ffd5b50565b5f5f6040838503121561015c575f5ffd5b825161016781610134565b602084015190925061017881610134565b809150509250929050565b60805160a0516111d86101ce5f395f81816101750152818161040201528181610796015261083301525f818161022b0152818161030f01528181610543015261096101526111d85ff3fe608060405234801561000f575f5ffd5b5060043610610127575f3560e01c8063886f1195116100a9578063ce7c2ac21161006e578063ce7c2ac21461029b578063d9caed12146102ae578063e3dae51c146102c1578063f3e73875146102d4578063fabc1cbc146102e7575f5ffd5b8063886f1195146102265780638c8710191461024d5780638f6a624014610260578063ab5921e114610273578063c4d66de814610288575f5ffd5b8063553ca5f8116100ef578063553ca5f8146101c1578063595c6a67146101d45780635ac86ab7146101dc5780635c975abb1461020b5780637a8b263714610213575f5ffd5b8063136439dd1461012b5780632495a5991461014057806339b70e38146101705780633a98ef391461019757806347e7ef24146101ae575b5f5ffd5b61013e610139366004610f4d565b6102fa565b005b603254610153906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101537f000000000000000000000000000000000000000000000000000000000000000081565b6101a060335481565b604051908152602001610167565b6101a06101bc366004610f7b565b6103cf565b6101a06101cf366004610fa5565b61051b565b61013e61052e565b6101fb6101ea366004610fd5565b6001805460ff9092161b9081161490565b6040519015158152602001610167565b6001546101a0565b6101a0610221366004610f4d565b6105dd565b6101537f000000000000000000000000000000000000000000000000000000000000000081565b6101a061025b366004610f4d565b610626565b6101a061026e366004610fa5565b610630565b61027b61063d565b6040516101679190610ff0565b61013e610296366004610fa5565b61065d565b6101a06102a9366004610fa5565b61076f565b61013e6102bc366004611025565b610801565b6101a06102cf366004610f4d565b61091e565b6101a06102e2366004610f4d565b610955565b61013e6102f5366004610f4d565b61095f565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561035c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103809190611063565b61039d57604051631d77d47760e21b815260040160405180910390fd5b60015481811681146103c25760405163c61dca5d60e01b815260040160405180910390fd5b6103cb82610a75565b5050565b600180545f9182918116036103f75760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610440576040516348da714f60e01b815260040160405180910390fd5b61044a8484610ab2565b6033545f61045a6103e883611096565b90505f6103e8610468610ae0565b6104729190611096565b90505f61047f87836110a9565b90508061048c84896110bc565b61049691906110d3565b9550855f036104b857604051630c392ed360e11b815260040160405180910390fd5b6104c28685611096565b60338190556f4b3b4ca85a86c47a098a223fffffffff10156104f757604051632f14e8a360e11b815260040160405180910390fd5b610510826103e860335461050b9190611096565b610b4f565b505050505092915050565b5f6105286102218361076f565b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610590573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b49190611063565b6105d157604051631d77d47760e21b815260040160405180910390fd5b6105db5f19610a75565b565b5f5f6103e86033546105ef9190611096565b90505f6103e86105fd610ae0565b6106079190611096565b90508161061485836110bc565b61061e91906110d3565b949350505050565b5f6105288261091e565b5f6105286102e28361076f565b60606040518060800160405280604d8152602001611156604d9139905090565b5f54610100900460ff161580801561067b57505f54600160ff909116105b806106945750303b15801561069457505f5460ff166001145b6106fc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561071d575f805461ff0019166101001790555b61072682610b9b565b80156103cb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156107dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052891906110f2565b600180546002908116036108285760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610871576040516348da714f60e01b815260040160405180910390fd5b61087c848484610ce6565b603354808311156108a057604051630b469df360e41b815260040160405180910390fd5b5f6108ad6103e883611096565b90505f6103e86108bb610ae0565b6108c59190611096565b90505f826108d387846110bc565b6108dd91906110d3565b90506108e986856110a9565b6033556109096108f982846110a9565b6103e860335461050b9190611096565b610914888883610d19565b5050505050505050565b5f5f6103e86033546109309190611096565b90505f6103e861093e610ae0565b6109489190611096565b90508061061483866110bc565b5f610528826105dd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109df9190611109565b6001600160a01b0316336001600160a01b031614610a105760405163794821ff60e01b815260040160405180910390fd5b60015480198219811614610a375760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6032546001600160a01b038381169116146103cb57604051630312abdd60e61b815260040160405180910390fd5b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610b26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4a91906110f2565b905090565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610b8384670de0b6b3a76400006110bc565b610b8d91906110d3565b604051908152602001610763565b5f54610100900460ff16610c055760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016106f3565b603280546001600160a01b0319166001600160a01b038316179055610c295f610a75565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbf9190611124565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610d1457604051630312abdd60e61b815260040160405180910390fd5b505050565b604080516001600160a01b03858116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610d1492908516918691859185918591905f90610db19084908490610e30565b905080515f1480610dd1575080806020019051810190610dd19190611063565b610d145760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106f3565b606061061e84845f85855f5f866001600160a01b03168587604051610e55919061113f565b5f6040518083038185875af1925050503d805f8114610e8f576040519150601f19603f3d011682016040523d82523d5f602084013e610e94565b606091505b5091509150610ea587838387610eb0565b979650505050505050565b60608315610f1e5782515f03610f17576001600160a01b0385163b610f175760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106f3565b508161061e565b61061e8383815115610f335781518083602001fd5b8060405162461bcd60e51b81526004016106f39190610ff0565b5f60208284031215610f5d575f5ffd5b5035919050565b6001600160a01b0381168114610f78575f5ffd5b50565b5f5f60408385031215610f8c575f5ffd5b8235610f9781610f64565b946020939093013593505050565b5f60208284031215610fb5575f5ffd5b8135610fc081610f64565b9392505050565b60ff81168114610f78575f5ffd5b5f60208284031215610fe5575f5ffd5b8135610fc081610fc7565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60608486031215611037575f5ffd5b833561104281610f64565b9250602084013561105281610f64565b929592945050506040919091013590565b5f60208284031215611073575f5ffd5b81518015158114610fc0575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561052857610528611082565b8181038181111561052857610528611082565b808202811582820484141761052857610528611082565b5f826110ed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611102575f5ffd5b5051919050565b5f60208284031215611119575f5ffd5b8151610fc081610f64565b5f60208284031215611134575f5ffd5b8151610fc081610fc7565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a26469706673582212207a51a38152b4de9b6a8ba9a3e6e5972cbb9e07b7555af99deaafcf0df9ebc26164736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b506040516113a63803806113a683398101604081905261002e9161014b565b806001600160a01b038116610056576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a052610071610078565b5050610183565b5f54610100900460ff16156100e35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610132575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610148575f5ffd5b50565b5f5f6040838503121561015c575f5ffd5b825161016781610134565b602084015190925061017881610134565b809150509250929050565b60805160a0516111d86101ce5f395f81816101750152818161040201528181610796015261083301525f818161022b0152818161030f01528181610543015261096101526111d85ff3fe608060405234801561000f575f5ffd5b5060043610610127575f3560e01c8063886f1195116100a9578063ce7c2ac21161006e578063ce7c2ac21461029b578063d9caed12146102ae578063e3dae51c146102c1578063f3e73875146102d4578063fabc1cbc146102e7575f5ffd5b8063886f1195146102265780638c8710191461024d5780638f6a624014610260578063ab5921e114610273578063c4d66de814610288575f5ffd5b8063553ca5f8116100ef578063553ca5f8146101c1578063595c6a67146101d45780635ac86ab7146101dc5780635c975abb1461020b5780637a8b263714610213575f5ffd5b8063136439dd1461012b5780632495a5991461014057806339b70e38146101705780633a98ef391461019757806347e7ef24146101ae575b5f5ffd5b61013e610139366004610f4d565b6102fa565b005b603254610153906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101537f000000000000000000000000000000000000000000000000000000000000000081565b6101a060335481565b604051908152602001610167565b6101a06101bc366004610f7b565b6103cf565b6101a06101cf366004610fa5565b61051b565b61013e61052e565b6101fb6101ea366004610fd5565b6001805460ff9092161b9081161490565b6040519015158152602001610167565b6001546101a0565b6101a0610221366004610f4d565b6105dd565b6101537f000000000000000000000000000000000000000000000000000000000000000081565b6101a061025b366004610f4d565b610626565b6101a061026e366004610fa5565b610630565b61027b61063d565b6040516101679190610ff0565b61013e610296366004610fa5565b61065d565b6101a06102a9366004610fa5565b61076f565b61013e6102bc366004611025565b610801565b6101a06102cf366004610f4d565b61091e565b6101a06102e2366004610f4d565b610955565b61013e6102f5366004610f4d565b61095f565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561035c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103809190611063565b61039d57604051631d77d47760e21b815260040160405180910390fd5b60015481811681146103c25760405163c61dca5d60e01b815260040160405180910390fd5b6103cb82610a75565b5050565b600180545f9182918116036103f75760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610440576040516348da714f60e01b815260040160405180910390fd5b61044a8484610ab2565b6033545f61045a6103e883611096565b90505f6103e8610468610ae0565b6104729190611096565b90505f61047f87836110a9565b90508061048c84896110bc565b61049691906110d3565b9550855f036104b857604051630c392ed360e11b815260040160405180910390fd5b6104c28685611096565b60338190556f4b3b4ca85a86c47a098a223fffffffff10156104f757604051632f14e8a360e11b815260040160405180910390fd5b610510826103e860335461050b9190611096565b610b4f565b505050505092915050565b5f6105286102218361076f565b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610590573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b49190611063565b6105d157604051631d77d47760e21b815260040160405180910390fd5b6105db5f19610a75565b565b5f5f6103e86033546105ef9190611096565b90505f6103e86105fd610ae0565b6106079190611096565b90508161061485836110bc565b61061e91906110d3565b949350505050565b5f6105288261091e565b5f6105286102e28361076f565b60606040518060800160405280604d8152602001611156604d9139905090565b5f54610100900460ff161580801561067b57505f54600160ff909116105b806106945750303b15801561069457505f5460ff166001145b6106fc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561071d575f805461ff0019166101001790555b61072682610b9b565b80156103cb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156107dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052891906110f2565b600180546002908116036108285760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610871576040516348da714f60e01b815260040160405180910390fd5b61087c848484610ce6565b603354808311156108a057604051630b469df360e41b815260040160405180910390fd5b5f6108ad6103e883611096565b90505f6103e86108bb610ae0565b6108c59190611096565b90505f826108d387846110bc565b6108dd91906110d3565b90506108e986856110a9565b6033556109096108f982846110a9565b6103e860335461050b9190611096565b610914888883610d19565b5050505050505050565b5f5f6103e86033546109309190611096565b90505f6103e861093e610ae0565b6109489190611096565b90508061061483866110bc565b5f610528826105dd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109df9190611109565b6001600160a01b0316336001600160a01b031614610a105760405163794821ff60e01b815260040160405180910390fd5b60015480198219811614610a375760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6032546001600160a01b038381169116146103cb57604051630312abdd60e61b815260040160405180910390fd5b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610b26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4a91906110f2565b905090565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610b8384670de0b6b3a76400006110bc565b610b8d91906110d3565b604051908152602001610763565b5f54610100900460ff16610c055760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016106f3565b603280546001600160a01b0319166001600160a01b038316179055610c295f610a75565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbf9190611124565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610d1457604051630312abdd60e61b815260040160405180910390fd5b505050565b604080516001600160a01b03858116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610d1492908516918691859185918591905f90610db19084908490610e30565b905080515f1480610dd1575080806020019051810190610dd19190611063565b610d145760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106f3565b606061061e84845f85855f5f866001600160a01b03168587604051610e55919061113f565b5f6040518083038185875af1925050503d805f8114610e8f576040519150601f19603f3d011682016040523d82523d5f602084013e610e94565b606091505b5091509150610ea587838387610eb0565b979650505050505050565b60608315610f1e5782515f03610f17576001600160a01b0385163b610f175760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106f3565b508161061e565b61061e8383815115610f335781518083602001fd5b8060405162461bcd60e51b81526004016106f39190610ff0565b5f60208284031215610f5d575f5ffd5b5035919050565b6001600160a01b0381168114610f78575f5ffd5b50565b5f5f60408385031215610f8c575f5ffd5b8235610f9781610f64565b946020939093013593505050565b5f60208284031215610fb5575f5ffd5b8135610fc081610f64565b9392505050565b60ff81168114610f78575f5ffd5b5f60208284031215610fe5575f5ffd5b8135610fc081610fc7565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60608486031215611037575f5ffd5b833561104281610f64565b9250602084013561105281610f64565b929592945050506040919091013590565b5f60208284031215611073575f5ffd5b81518015158114610fc0575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561052857610528611082565b8181038181111561052857610528611082565b808202811582820484141761052857610528611082565b5f826110ed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611102575f5ffd5b5051919050565b5f60208284031215611119575f5ffd5b8151610fc081610f64565b5f60208284031215611134575f5ffd5b8151610fc081610fc7565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122000e384ea6d9795e6b1eed3ca3e798dd283954f469b80395ad7b3cbd7a4e0571764736f6c634300081b0033", } // StrategyBaseABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyBaseTVLLimits/binding.go b/pkg/bindings/StrategyBaseTVLLimits/binding.go index 2755b03f6..e2ec575e8 100644 --- a/pkg/bindings/StrategyBaseTVLLimits/binding.go +++ b/pkg/bindings/StrategyBaseTVLLimits/binding.go @@ -32,7 +32,7 @@ var ( // StrategyBaseTVLLimitsMetaData contains all meta data concerning the StrategyBaseTVLLimits contract. var StrategyBaseTVLLimitsMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"newShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"explanation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getTVLLimits\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_maxPerDeposit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_maxTotalDeposits\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"maxPerDeposit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxTotalDeposits\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setTVLLimits\",\"inputs\":[{\"name\":\"newMaxPerDeposit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"newMaxTotalDeposits\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"shares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlying\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlyingView\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToShares\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToSharesView\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlying\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlyingView\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExchangeRateEmitted\",\"inputs\":[{\"name\":\"rate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxPerDepositUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxTotalDepositsUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyTokenSet\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"decimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BalanceExceedsMaxTotalDeposits\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxPerDepositExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewSharesZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnderlyingToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TotalSharesExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalAmountExceedsTotalDeposits\",\"inputs\":[]}]", - Bin: "0x60c060405234801561000f575f5ffd5b5060405161173e38038061173e83398101604081905261002e9161014f565b8181806001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a05261007361007c565b50505050610187565b5f54610100900460ff16156100e75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610136575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014c575f5ffd5b50565b5f5f60408385031215610160575f5ffd5b825161016b81610138565b602084015190925061017c81610138565b809150509250929050565b60805160a0516115656101d95f395f81816101ce01528181610556015281816109790152610a1601525f81816102960152818161039501528181610467015281816106970152610b4401526115655ff3fe608060405234801561000f575f5ffd5b506004361061016d575f3560e01c80637a8b2637116100d9578063c4d66de811610093578063df6fadc11161006e578063df6fadc11461033f578063e3dae51c1461035a578063f3e738751461036d578063fabc1cbc14610380575f5ffd5b8063c4d66de814610306578063ce7c2ac214610319578063d9caed121461032c575f5ffd5b80637a8b26371461027e578063886f1195146102915780638c871019146102b85780638f6a6240146102cb578063a6ab36f2146102de578063ab5921e1146102f1575f5ffd5b806347e7ef241161012a57806347e7ef2414610210578063553ca5f814610223578063595c6a67146102365780635ac86ab71461023e5780635c975abb1461026d57806361b01b5d14610275575f5ffd5b806311c70c9d14610171578063136439dd146101865780632495a5991461019957806339b70e38146101c95780633a98ef39146101f057806343fe08b014610207575b5f5ffd5b61018461017f366004611236565b610393565b005b610184610194366004611256565b610452565b6032546101ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101ac7f000000000000000000000000000000000000000000000000000000000000000081565b6101f960335481565b6040519081526020016101c0565b6101f960645481565b6101f961021e366004611284565b610523565b6101f96102313660046112ae565b61066f565b610184610682565b61025d61024c3660046112de565b6001805460ff9092161b9081161490565b60405190151581526020016101c0565b6001546101f9565b6101f960655481565b6101f961028c366004611256565b610731565b6101ac7f000000000000000000000000000000000000000000000000000000000000000081565b6101f96102c6366004611256565b61077a565b6101f96102d93660046112ae565b610784565b6101846102ec3660046112f9565b610791565b6102f961086c565b6040516101c0919061132f565b6101846103143660046112ae565b61088c565b6101f96103273660046112ae565b610952565b61018461033a366004611364565b6109e4565b606454606554604080519283526020830191909152016101c0565b6101f9610368366004611256565b610b01565b6101f961037b366004611256565b610b38565b61018461038e366004611256565b610b42565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ef573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041391906113a2565b6001600160a01b0316336001600160a01b0316146104445760405163794821ff60e01b815260040160405180910390fd5b61044e8282610c58565b5050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156104b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d891906113bd565b6104f557604051631d77d47760e21b815260040160405180910390fd5b600154818116811461051a5760405163c61dca5d60e01b815260040160405180910390fd5b61044e82610cfc565b600180545f91829181160361054b5760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610594576040516348da714f60e01b815260040160405180910390fd5b61059e8484610d39565b6033545f6105ae6103e8836113f0565b90505f6103e86105bc610d90565b6105c691906113f0565b90505f6105d38783611403565b9050806105e08489611416565b6105ea919061142d565b9550855f0361060c57604051630c392ed360e11b815260040160405180910390fd5b61061686856113f0565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561064b57604051632f14e8a360e11b815260040160405180910390fd5b610664826103e860335461065f91906113f0565b610dff565b505050505092915050565b5f61067c61028c83610952565b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156106e4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070891906113bd565b61072557604051631d77d47760e21b815260040160405180910390fd5b61072f5f19610cfc565b565b5f5f6103e860335461074391906113f0565b90505f6103e8610751610d90565b61075b91906113f0565b9050816107688583611416565b610772919061142d565b949350505050565b5f61067c82610b01565b5f61067c61037b83610952565b5f54610100900460ff16158080156107af57505f54600160ff909116105b806107c85750303b1580156107c857505f5460ff166001145b6107ed5760405162461bcd60e51b81526004016107e49061144c565b60405180910390fd5b5f805460ff19166001179055801561080e575f805461ff0019166101001790555b6108188484610c58565b61082182610e4b565b8015610866575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60606040518060800160405280604d81526020016114e3604d9139905090565b5f54610100900460ff16158080156108aa57505f54600160ff909116105b806108c35750303b1580156108c357505f5460ff166001145b6108df5760405162461bcd60e51b81526004016107e49061144c565b5f805460ff191660011790558015610900575f805461ff0019166101001790555b61090982610e4b565b801561044e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156109c0573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067c919061149a565b60018054600290811603610a0b5760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a54576040516348da714f60e01b815260040160405180910390fd5b610a5f848484610f96565b60335480831115610a8357604051630b469df360e41b815260040160405180910390fd5b5f610a906103e8836113f0565b90505f6103e8610a9e610d90565b610aa891906113f0565b90505f82610ab68784611416565b610ac0919061142d565b9050610acc8685611403565b603355610aec610adc8284611403565b6103e860335461065f91906113f0565b610af7888883610fc9565b5050505050505050565b5f5f6103e8603354610b1391906113f0565b90505f6103e8610b21610d90565b610b2b91906113f0565b9050806107688386611416565b5f61067c82610731565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc291906113a2565b6001600160a01b0316336001600160a01b031614610bf35760405163794821ff60e01b815260040160405180910390fd5b60015480198219811614610c1a5760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a180821115610cf15760405163052b07b760e21b815260040160405180910390fd5b606491909155606555565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b606454811115610d5c5760405163052b07b760e21b815260040160405180910390fd5b606554610d67610d90565b1115610d865760405163d86bae6760e01b815260040160405180910390fd5b61044e8282610fdd565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610dd6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfa919061149a565b905090565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610e3384670de0b6b3a7640000611416565b610e3d919061142d565b604051908152602001610946565b5f54610100900460ff16610eb55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016107e4565b603280546001600160a01b0319166001600160a01b038316179055610ed95f610cfc565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6f91906114b1565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610fc457604051630312abdd60e61b815260040160405180910390fd5b505050565b610fc46001600160a01b038316848361100b565b6032546001600160a01b0383811691161461044e57604051630312abdd60e61b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610fc4928692915f9161109a918516908490611119565b905080515f14806110ba5750808060200190518101906110ba91906113bd565b610fc45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107e4565b606061077284845f85855f5f866001600160a01b0316858760405161113e91906114cc565b5f6040518083038185875af1925050503d805f8114611178576040519150601f19603f3d011682016040523d82523d5f602084013e61117d565b606091505b509150915061118e87838387611199565b979650505050505050565b606083156112075782515f03611200576001600160a01b0385163b6112005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107e4565b5081610772565b610772838381511561121c5781518083602001fd5b8060405162461bcd60e51b81526004016107e4919061132f565b5f5f60408385031215611247575f5ffd5b50508035926020909101359150565b5f60208284031215611266575f5ffd5b5035919050565b6001600160a01b0381168114611281575f5ffd5b50565b5f5f60408385031215611295575f5ffd5b82356112a08161126d565b946020939093013593505050565b5f602082840312156112be575f5ffd5b81356112c98161126d565b9392505050565b60ff81168114611281575f5ffd5b5f602082840312156112ee575f5ffd5b81356112c9816112d0565b5f5f5f6060848603121561130b575f5ffd5b833592506020840135915060408401356113248161126d565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60608486031215611376575f5ffd5b83356113818161126d565b925060208401356113918161126d565b929592945050506040919091013590565b5f602082840312156113b2575f5ffd5b81516112c98161126d565b5f602082840312156113cd575f5ffd5b815180151581146112c9575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561067c5761067c6113dc565b8181038181111561067c5761067c6113dc565b808202811582820484141761067c5761067c6113dc565b5f8261144757634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156114aa575f5ffd5b5051919050565b5f602082840312156114c1575f5ffd5b81516112c9816112d0565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220cd0d0cc65326720bd5affc4d2b4d535b32f0077688de520c00ffc422bff631d064736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b5060405161173e38038061173e83398101604081905261002e9161014f565b8181806001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a05261007361007c565b50505050610187565b5f54610100900460ff16156100e75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610136575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014c575f5ffd5b50565b5f5f60408385031215610160575f5ffd5b825161016b81610138565b602084015190925061017c81610138565b809150509250929050565b60805160a0516115656101d95f395f81816101ce01528181610556015281816109790152610a1601525f81816102960152818161039501528181610467015281816106970152610b4401526115655ff3fe608060405234801561000f575f5ffd5b506004361061016d575f3560e01c80637a8b2637116100d9578063c4d66de811610093578063df6fadc11161006e578063df6fadc11461033f578063e3dae51c1461035a578063f3e738751461036d578063fabc1cbc14610380575f5ffd5b8063c4d66de814610306578063ce7c2ac214610319578063d9caed121461032c575f5ffd5b80637a8b26371461027e578063886f1195146102915780638c871019146102b85780638f6a6240146102cb578063a6ab36f2146102de578063ab5921e1146102f1575f5ffd5b806347e7ef241161012a57806347e7ef2414610210578063553ca5f814610223578063595c6a67146102365780635ac86ab71461023e5780635c975abb1461026d57806361b01b5d14610275575f5ffd5b806311c70c9d14610171578063136439dd146101865780632495a5991461019957806339b70e38146101c95780633a98ef39146101f057806343fe08b014610207575b5f5ffd5b61018461017f366004611236565b610393565b005b610184610194366004611256565b610452565b6032546101ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101ac7f000000000000000000000000000000000000000000000000000000000000000081565b6101f960335481565b6040519081526020016101c0565b6101f960645481565b6101f961021e366004611284565b610523565b6101f96102313660046112ae565b61066f565b610184610682565b61025d61024c3660046112de565b6001805460ff9092161b9081161490565b60405190151581526020016101c0565b6001546101f9565b6101f960655481565b6101f961028c366004611256565b610731565b6101ac7f000000000000000000000000000000000000000000000000000000000000000081565b6101f96102c6366004611256565b61077a565b6101f96102d93660046112ae565b610784565b6101846102ec3660046112f9565b610791565b6102f961086c565b6040516101c0919061132f565b6101846103143660046112ae565b61088c565b6101f96103273660046112ae565b610952565b61018461033a366004611364565b6109e4565b606454606554604080519283526020830191909152016101c0565b6101f9610368366004611256565b610b01565b6101f961037b366004611256565b610b38565b61018461038e366004611256565b610b42565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ef573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041391906113a2565b6001600160a01b0316336001600160a01b0316146104445760405163794821ff60e01b815260040160405180910390fd5b61044e8282610c58565b5050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156104b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d891906113bd565b6104f557604051631d77d47760e21b815260040160405180910390fd5b600154818116811461051a5760405163c61dca5d60e01b815260040160405180910390fd5b61044e82610cfc565b600180545f91829181160361054b5760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610594576040516348da714f60e01b815260040160405180910390fd5b61059e8484610d39565b6033545f6105ae6103e8836113f0565b90505f6103e86105bc610d90565b6105c691906113f0565b90505f6105d38783611403565b9050806105e08489611416565b6105ea919061142d565b9550855f0361060c57604051630c392ed360e11b815260040160405180910390fd5b61061686856113f0565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561064b57604051632f14e8a360e11b815260040160405180910390fd5b610664826103e860335461065f91906113f0565b610dff565b505050505092915050565b5f61067c61028c83610952565b92915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156106e4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070891906113bd565b61072557604051631d77d47760e21b815260040160405180910390fd5b61072f5f19610cfc565b565b5f5f6103e860335461074391906113f0565b90505f6103e8610751610d90565b61075b91906113f0565b9050816107688583611416565b610772919061142d565b949350505050565b5f61067c82610b01565b5f61067c61037b83610952565b5f54610100900460ff16158080156107af57505f54600160ff909116105b806107c85750303b1580156107c857505f5460ff166001145b6107ed5760405162461bcd60e51b81526004016107e49061144c565b60405180910390fd5b5f805460ff19166001179055801561080e575f805461ff0019166101001790555b6108188484610c58565b61082182610e4b565b8015610866575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60606040518060800160405280604d81526020016114e3604d9139905090565b5f54610100900460ff16158080156108aa57505f54600160ff909116105b806108c35750303b1580156108c357505f5460ff166001145b6108df5760405162461bcd60e51b81526004016107e49061144c565b5f805460ff191660011790558015610900575f805461ff0019166101001790555b61090982610e4b565b801561044e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156109c0573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067c919061149a565b60018054600290811603610a0b5760405163840a48d560e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a54576040516348da714f60e01b815260040160405180910390fd5b610a5f848484610f96565b60335480831115610a8357604051630b469df360e41b815260040160405180910390fd5b5f610a906103e8836113f0565b90505f6103e8610a9e610d90565b610aa891906113f0565b90505f82610ab68784611416565b610ac0919061142d565b9050610acc8685611403565b603355610aec610adc8284611403565b6103e860335461065f91906113f0565b610af7888883610fc9565b5050505050505050565b5f5f6103e8603354610b1391906113f0565b90505f6103e8610b21610d90565b610b2b91906113f0565b9050806107688386611416565b5f61067c82610731565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc291906113a2565b6001600160a01b0316336001600160a01b031614610bf35760405163794821ff60e01b815260040160405180910390fd5b60015480198219811614610c1a5760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a180821115610cf15760405163052b07b760e21b815260040160405180910390fd5b606491909155606555565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b606454811115610d5c5760405163052b07b760e21b815260040160405180910390fd5b606554610d67610d90565b1115610d865760405163d86bae6760e01b815260040160405180910390fd5b61044e8282610fdd565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610dd6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfa919061149a565b905090565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610e3384670de0b6b3a7640000611416565b610e3d919061142d565b604051908152602001610946565b5f54610100900460ff16610eb55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016107e4565b603280546001600160a01b0319166001600160a01b038316179055610ed95f610cfc565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6f91906114b1565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610fc457604051630312abdd60e61b815260040160405180910390fd5b505050565b610fc46001600160a01b038316848361100b565b6032546001600160a01b0383811691161461044e57604051630312abdd60e61b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610fc4928692915f9161109a918516908490611119565b905080515f14806110ba5750808060200190518101906110ba91906113bd565b610fc45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107e4565b606061077284845f85855f5f866001600160a01b0316858760405161113e91906114cc565b5f6040518083038185875af1925050503d805f8114611178576040519150601f19603f3d011682016040523d82523d5f602084013e61117d565b606091505b509150915061118e87838387611199565b979650505050505050565b606083156112075782515f03611200576001600160a01b0385163b6112005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107e4565b5081610772565b610772838381511561121c5781518083602001fd5b8060405162461bcd60e51b81526004016107e4919061132f565b5f5f60408385031215611247575f5ffd5b50508035926020909101359150565b5f60208284031215611266575f5ffd5b5035919050565b6001600160a01b0381168114611281575f5ffd5b50565b5f5f60408385031215611295575f5ffd5b82356112a08161126d565b946020939093013593505050565b5f602082840312156112be575f5ffd5b81356112c98161126d565b9392505050565b60ff81168114611281575f5ffd5b5f602082840312156112ee575f5ffd5b81356112c9816112d0565b5f5f5f6060848603121561130b575f5ffd5b833592506020840135915060408401356113248161126d565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60608486031215611376575f5ffd5b83356113818161126d565b925060208401356113918161126d565b929592945050506040919091013590565b5f602082840312156113b2575f5ffd5b81516112c98161126d565b5f602082840312156113cd575f5ffd5b815180151581146112c9575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561067c5761067c6113dc565b8181038181111561067c5761067c6113dc565b808202811582820484141761067c5761067c6113dc565b5f8261144757634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156114aa575f5ffd5b5051919050565b5f602082840312156114c1575f5ffd5b81516112c9816112d0565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220a172bfd9a52e27e8738e3f464887b0dabecab50ca6735024b69221cc0ef0d3ae64736f6c634300081b0033", } // StrategyBaseTVLLimitsABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyFactory/binding.go b/pkg/bindings/StrategyFactory/binding.go index 5e14b50c8..0cbc99872 100644 --- a/pkg/bindings/StrategyFactory/binding.go +++ b/pkg/bindings/StrategyFactory/binding.go @@ -32,7 +32,7 @@ var ( // StrategyFactoryMetaData contains all meta data concerning the StrategyFactory contract. var StrategyFactoryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blacklistTokens\",\"inputs\":[{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployNewStrategy\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"newStrategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployedStrategies\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_strategyBeacon\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isBlacklisted\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromWhitelist\",\"inputs\":[{\"name\":\"strategiesToRemoveFromWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyBeacon\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"whitelistStrategies\",\"inputs\":[{\"name\":\"strategiesToWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyBeaconModified\",\"inputs\":[{\"name\":\"previousBeacon\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIBeacon\"},{\"name\":\"newBeacon\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIBeacon\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategySetForToken\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokenBlacklisted\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyBlacklisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BlacklistedToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyExists\",\"inputs\":[]}]", - Bin: "0x60c060405234801561000f575f5ffd5b5060405161195e38038061195e83398101604081905261002e9161014e565b806001600160a01b038116610056576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a052610071610078565b5050610186565b603354610100900460ff16156100e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60335460ff90811614610135576033805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014b575f5ffd5b50565b5f5f6040838503121561015f575f5ffd5b825161016a81610137565b602084015190925061017b81610137565b809150509250929050565b60805160a0516117866101d85f395f8181610142015281816105d501528181610869015281816109060152610c4701525f8181610215015281816102f0015281816106530152610b1401526117865ff3fe608060405234801561000f575f5ffd5b5060043610610111575f3560e01c8063886f11951161009e578063f0062d9a1161006e578063f0062d9a1461026e578063f2fde38b14610280578063fabc1cbc14610293578063fe38b32d146102a6578063fe575a87146102b9575f5ffd5b8063886f1195146102105780638da5cb5b14610237578063b768ebc914610248578063c350a1b51461025b575f5ffd5b8063595c6a67116100e4578063595c6a67146101a95780635ac86ab7146101b15780635c975abb146101e45780636b9b6229146101f5578063715018a614610208575f5ffd5b8063136439dd1461011557806323103c411461012a57806339b70e381461013d578063581dfd6514610181575b5f5ffd5b610128610123366004610e44565b6102db565b005b610128610138366004610ea3565b6103b0565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61016461018f366004610ef6565b60016020525f90815260409020546001600160a01b031681565b61012861063e565b6101d46101bf366004610f18565b609954600160ff9092169190911b9081161490565b6040519015158152602001610178565b609954604051908152602001610178565b610164610203366004610ef6565b6106ed565b6101286108d6565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6066546001600160a01b0316610164565b610128610256366004610ea3565b6108e7565b610128610269366004610f38565b61096e565b5f54610164906001600160a01b031681565b61012861028e366004610ef6565b610a99565b6101286102a1366004610e44565b610b12565b6101286102b4366004610ea3565b610c28565b6101d46102c7366004610ef6565b60026020525f908152604090205460ff1681565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561033d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103619190610f77565b61037e57604051631d77d47760e21b815260040160405180910390fd5b60995481811681146103a35760405163c61dca5d60e01b815260040160405180910390fd5b6103ac82610c7e565b5050565b6103b8610cbb565b5f8167ffffffffffffffff8111156103d2576103d2610f96565b6040519080825280602002602001820160405280156103fb578160200160208202803683370190505b5090505f805b838110156105b45760025f86868481811061041e5761041e610faa565b90506020020160208101906104339190610ef6565b6001600160a01b0316815260208101919091526040015f205460ff161561046d5760405163f53de75f60e01b815260040160405180910390fd5b600160025f87878581811061048457610484610faa565b90506020020160208101906104999190610ef6565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f75519c51f39873ec0e27dd3bbc09549e4865a113f505393fb9eab5898f6418b38585838181106104f3576104f3610faa565b90506020020160208101906105089190610ef6565b6040516001600160a01b03909116815260200160405180910390a15f60015f87878581811061053957610539610faa565b905060200201602081019061054e9190610ef6565b6001600160a01b03908116825260208201929092526040015f205416905080156105ab578084848151811061058557610585610faa565b6001600160a01b0390921660209283029190910190910152826105a781610fbe565b9350505b50600101610401565b508082528015610638576040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061060a908590600401610fe2565b5f604051808303815f87803b158015610621575f5ffd5b505af1158015610633573d5f5f3e3d5ffd5b505050505b50505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156106a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c49190610f77565b6106e157604051631d77d47760e21b815260040160405180910390fd5b6106eb5f19610c7e565b565b6099545f9081906001908116036107175760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b0383165f9081526002602052604090205460ff16156107505760405163091867bd60e11b815260040160405180910390fd5b6001600160a01b038381165f9081526001602052604090205416156107885760405163c45546f760e01b815260040160405180910390fd5b5f8054604080516001600160a01b0387811660248084019190915283518084039091018152604490920183526020820180516001600160e01b031663189acdbd60e31b17905291519190921691906107df90610e37565b6107ea92919061102d565b604051809103905ff080158015610803573d5f5f3e3d5ffd5b5090506108108482610d15565b6040805160018082528183019092525f916020808301908036833701905050905081815f8151811061084457610844610faa565b6001600160a01b039283166020918202929092010152604051632ef047f960e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690635de08ff2906108a0908490600401610fe2565b5f604051808303815f87803b1580156108b7575f5ffd5b505af11580156108c9573d5f5f3e3d5ffd5b5093979650505050505050565b6108de610cbb565b6106eb5f610d7f565b6108ef610cbb565b604051632ef047f960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635de08ff29061093d9085908590600401611071565b5f604051808303815f87803b158015610954575f5ffd5b505af1158015610966573d5f5f3e3d5ffd5b505050505050565b603354610100900460ff161580801561098e5750603354600160ff909116105b806109a85750303b1580156109a8575060335460ff166001145b610a105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6033805460ff191660011790558015610a33576033805461ff0019166101001790555b610a3c84610d7f565b610a4583610c7e565b610a4e82610dd0565b8015610638576033805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610aa1610cbb565b6001600160a01b038116610b065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a07565b610b0f81610d7f565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9291906110bd565b6001600160a01b0316336001600160a01b031614610bc35760405163794821ff60e01b815260040160405180910390fd5b60995480198219811614610bea5760405163c61dca5d60e01b815260040160405180910390fd5b609982905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b610c30610cbb565b6040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061093d9085908590600401611071565b609981905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6066546001600160a01b031633146106eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a07565b6001600160a01b038281165f8181526001602090815260409182902080546001600160a01b031916948616948517905581519283528201929092527f6852a55230ef089d785bce7ffbf757985de34026df90a87d7b4a6e56f95d251f910160405180910390a15050565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54604080516001600160a01b03928316815291831660208301527fe21755962a7d7e100b59b9c3e4d4b54085b146313719955efb6a7a25c5c7feee910160405180910390a15f80546001600160a01b0319166001600160a01b0392909216919091179055565b610678806110d983390190565b5f60208284031215610e54575f5ffd5b5035919050565b5f5f83601f840112610e6b575f5ffd5b50813567ffffffffffffffff811115610e82575f5ffd5b6020830191508360208260051b8501011115610e9c575f5ffd5b9250929050565b5f5f60208385031215610eb4575f5ffd5b823567ffffffffffffffff811115610eca575f5ffd5b610ed685828601610e5b565b90969095509350505050565b6001600160a01b0381168114610b0f575f5ffd5b5f60208284031215610f06575f5ffd5b8135610f1181610ee2565b9392505050565b5f60208284031215610f28575f5ffd5b813560ff81168114610f11575f5ffd5b5f5f5f60608486031215610f4a575f5ffd5b8335610f5581610ee2565b9250602084013591506040840135610f6c81610ee2565b809150509250925092565b5f60208284031215610f87575f5ffd5b81518015158114610f11575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60018201610fdb57634e487b7160e01b5f52601160045260245ffd5b5060010190565b602080825282518282018190525f918401906040840190835b818110156110225783516001600160a01b0316835260209384019390920191600101610ffb565b509095945050505050565b60018060a01b0383168152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b602080825281018290525f8360408301825b858110156110b357823561109681610ee2565b6001600160a01b0316825260209283019290910190600101611083565b5095945050505050565b5f602082840312156110cd575f5ffd5b8151610f1181610ee256fe6080604052604051610678380380610678833981016040819052610022916103ed565b61002d82825f610034565b5050610513565b61003d836100f1565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a25f8251118061007c5750805b156100ec576100ea836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906104af565b83610273565b505b505050565b6001600160a01b0381163b61015b5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101cd816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be91906104af565b6001600160a01b03163b151590565b6102325760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610152565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029883836040518060600160405280602781526020016106516027913961029f565b9392505050565b60605f5f856001600160a01b0316856040516102bb91906104c8565b5f60405180830381855af49150503d805f81146102f3576040519150601f19603f3d011682016040523d82523d5f602084013e6102f8565b606091505b50909250905061030a86838387610314565b9695505050505050565b606083156103825782515f0361037b576001600160a01b0385163b61037b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610152565b508161038c565b61038c8383610394565b949350505050565b8151156103a45781518083602001fd5b8060405162461bcd60e51b815260040161015291906104de565b80516001600160a01b03811681146103d4575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103fe575f5ffd5b610407836103be565b60208401519092506001600160401b03811115610422575f5ffd5b8301601f81018513610432575f5ffd5b80516001600160401b0381111561044b5761044b6103d9565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610479576104796103d9565b604052818152828201602001871015610490575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f602082840312156104bf575f5ffd5b610298826103be565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b610131806105205f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b60b3565b565b5f60527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015608c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019060ae919060d0565b905090565b365f5f375f5f365f845af43d5f5f3e80801560cc573d5ff35b3d5ffd5b5f6020828403121560df575f5ffd5b81516001600160a01b038116811460f4575f5ffd5b939250505056fea2646970667358221220f37d2ffd80ec7d14cc9a0f17394e9d97446c1f630de382043b1ed4ccacf6a7d464736f6c634300081b0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c91db3f25c03b65c4fd1be5f2b28a0c7a774e8c5186594dbab1227c5286da3ed64736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b5060405161195e38038061195e83398101604081905261002e9161014e565b806001600160a01b038116610056576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03908116608052821660a052610071610078565b5050610186565b603354610100900460ff16156100e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60335460ff90811614610135576033805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014b575f5ffd5b50565b5f5f6040838503121561015f575f5ffd5b825161016a81610137565b602084015190925061017b81610137565b809150509250929050565b60805160a0516117866101d85f395f8181610142015281816105d501528181610869015281816109060152610c4701525f8181610215015281816102f0015281816106530152610b1401526117865ff3fe608060405234801561000f575f5ffd5b5060043610610111575f3560e01c8063886f11951161009e578063f0062d9a1161006e578063f0062d9a1461026e578063f2fde38b14610280578063fabc1cbc14610293578063fe38b32d146102a6578063fe575a87146102b9575f5ffd5b8063886f1195146102105780638da5cb5b14610237578063b768ebc914610248578063c350a1b51461025b575f5ffd5b8063595c6a67116100e4578063595c6a67146101a95780635ac86ab7146101b15780635c975abb146101e45780636b9b6229146101f5578063715018a614610208575f5ffd5b8063136439dd1461011557806323103c411461012a57806339b70e381461013d578063581dfd6514610181575b5f5ffd5b610128610123366004610e44565b6102db565b005b610128610138366004610ea3565b6103b0565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61016461018f366004610ef6565b60016020525f90815260409020546001600160a01b031681565b61012861063e565b6101d46101bf366004610f18565b609954600160ff9092169190911b9081161490565b6040519015158152602001610178565b609954604051908152602001610178565b610164610203366004610ef6565b6106ed565b6101286108d6565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6066546001600160a01b0316610164565b610128610256366004610ea3565b6108e7565b610128610269366004610f38565b61096e565b5f54610164906001600160a01b031681565b61012861028e366004610ef6565b610a99565b6101286102a1366004610e44565b610b12565b6101286102b4366004610ea3565b610c28565b6101d46102c7366004610ef6565b60026020525f908152604090205460ff1681565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561033d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103619190610f77565b61037e57604051631d77d47760e21b815260040160405180910390fd5b60995481811681146103a35760405163c61dca5d60e01b815260040160405180910390fd5b6103ac82610c7e565b5050565b6103b8610cbb565b5f8167ffffffffffffffff8111156103d2576103d2610f96565b6040519080825280602002602001820160405280156103fb578160200160208202803683370190505b5090505f805b838110156105b45760025f86868481811061041e5761041e610faa565b90506020020160208101906104339190610ef6565b6001600160a01b0316815260208101919091526040015f205460ff161561046d5760405163f53de75f60e01b815260040160405180910390fd5b600160025f87878581811061048457610484610faa565b90506020020160208101906104999190610ef6565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f75519c51f39873ec0e27dd3bbc09549e4865a113f505393fb9eab5898f6418b38585838181106104f3576104f3610faa565b90506020020160208101906105089190610ef6565b6040516001600160a01b03909116815260200160405180910390a15f60015f87878581811061053957610539610faa565b905060200201602081019061054e9190610ef6565b6001600160a01b03908116825260208201929092526040015f205416905080156105ab578084848151811061058557610585610faa565b6001600160a01b0390921660209283029190910190910152826105a781610fbe565b9350505b50600101610401565b508082528015610638576040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061060a908590600401610fe2565b5f604051808303815f87803b158015610621575f5ffd5b505af1158015610633573d5f5f3e3d5ffd5b505050505b50505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156106a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c49190610f77565b6106e157604051631d77d47760e21b815260040160405180910390fd5b6106eb5f19610c7e565b565b6099545f9081906001908116036107175760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b0383165f9081526002602052604090205460ff16156107505760405163091867bd60e11b815260040160405180910390fd5b6001600160a01b038381165f9081526001602052604090205416156107885760405163c45546f760e01b815260040160405180910390fd5b5f8054604080516001600160a01b0387811660248084019190915283518084039091018152604490920183526020820180516001600160e01b031663189acdbd60e31b17905291519190921691906107df90610e37565b6107ea92919061102d565b604051809103905ff080158015610803573d5f5f3e3d5ffd5b5090506108108482610d15565b6040805160018082528183019092525f916020808301908036833701905050905081815f8151811061084457610844610faa565b6001600160a01b039283166020918202929092010152604051632ef047f960e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690635de08ff2906108a0908490600401610fe2565b5f604051808303815f87803b1580156108b7575f5ffd5b505af11580156108c9573d5f5f3e3d5ffd5b5093979650505050505050565b6108de610cbb565b6106eb5f610d7f565b6108ef610cbb565b604051632ef047f960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635de08ff29061093d9085908590600401611071565b5f604051808303815f87803b158015610954575f5ffd5b505af1158015610966573d5f5f3e3d5ffd5b505050505050565b603354610100900460ff161580801561098e5750603354600160ff909116105b806109a85750303b1580156109a8575060335460ff166001145b610a105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6033805460ff191660011790558015610a33576033805461ff0019166101001790555b610a3c84610d7f565b610a4583610c7e565b610a4e82610dd0565b8015610638576033805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610aa1610cbb565b6001600160a01b038116610b065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a07565b610b0f81610d7f565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9291906110bd565b6001600160a01b0316336001600160a01b031614610bc35760405163794821ff60e01b815260040160405180910390fd5b60995480198219811614610bea5760405163c61dca5d60e01b815260040160405180910390fd5b609982905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b610c30610cbb565b6040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061093d9085908590600401611071565b609981905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6066546001600160a01b031633146106eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a07565b6001600160a01b038281165f8181526001602090815260409182902080546001600160a01b031916948616948517905581519283528201929092527f6852a55230ef089d785bce7ffbf757985de34026df90a87d7b4a6e56f95d251f910160405180910390a15050565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54604080516001600160a01b03928316815291831660208301527fe21755962a7d7e100b59b9c3e4d4b54085b146313719955efb6a7a25c5c7feee910160405180910390a15f80546001600160a01b0319166001600160a01b0392909216919091179055565b610678806110d983390190565b5f60208284031215610e54575f5ffd5b5035919050565b5f5f83601f840112610e6b575f5ffd5b50813567ffffffffffffffff811115610e82575f5ffd5b6020830191508360208260051b8501011115610e9c575f5ffd5b9250929050565b5f5f60208385031215610eb4575f5ffd5b823567ffffffffffffffff811115610eca575f5ffd5b610ed685828601610e5b565b90969095509350505050565b6001600160a01b0381168114610b0f575f5ffd5b5f60208284031215610f06575f5ffd5b8135610f1181610ee2565b9392505050565b5f60208284031215610f28575f5ffd5b813560ff81168114610f11575f5ffd5b5f5f5f60608486031215610f4a575f5ffd5b8335610f5581610ee2565b9250602084013591506040840135610f6c81610ee2565b809150509250925092565b5f60208284031215610f87575f5ffd5b81518015158114610f11575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60018201610fdb57634e487b7160e01b5f52601160045260245ffd5b5060010190565b602080825282518282018190525f918401906040840190835b818110156110225783516001600160a01b0316835260209384019390920191600101610ffb565b509095945050505050565b60018060a01b0383168152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b602080825281018290525f8360408301825b858110156110b357823561109681610ee2565b6001600160a01b0316825260209283019290910190600101611083565b5095945050505050565b5f602082840312156110cd575f5ffd5b8151610f1181610ee256fe6080604052604051610678380380610678833981016040819052610022916103ed565b61002d82825f610034565b5050610513565b61003d836100f1565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a25f8251118061007c5750805b156100ec576100ea836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906104af565b83610273565b505b505050565b6001600160a01b0381163b61015b5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101cd816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be91906104af565b6001600160a01b03163b151590565b6102325760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610152565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029883836040518060600160405280602781526020016106516027913961029f565b9392505050565b60605f5f856001600160a01b0316856040516102bb91906104c8565b5f60405180830381855af49150503d805f81146102f3576040519150601f19603f3d011682016040523d82523d5f602084013e6102f8565b606091505b50909250905061030a86838387610314565b9695505050505050565b606083156103825782515f0361037b576001600160a01b0385163b61037b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610152565b508161038c565b61038c8383610394565b949350505050565b8151156103a45781518083602001fd5b8060405162461bcd60e51b815260040161015291906104de565b80516001600160a01b03811681146103d4575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103fe575f5ffd5b610407836103be565b60208401519092506001600160401b03811115610422575f5ffd5b8301601f81018513610432575f5ffd5b80516001600160401b0381111561044b5761044b6103d9565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610479576104796103d9565b604052818152828201602001871015610490575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f602082840312156104bf575f5ffd5b610298826103be565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b610131806105205f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b60b3565b565b5f60527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015608c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019060ae919060d0565b905090565b365f5f375f5f365f845af43d5f5f3e80801560cc573d5ff35b3d5ffd5b5f6020828403121560df575f5ffd5b81516001600160a01b038116811460f4575f5ffd5b939250505056fea2646970667358221220f37d2ffd80ec7d14cc9a0f17394e9d97446c1f630de382043b1ed4ccacf6a7d464736f6c634300081b0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c7d914187221ddd9b93db3bc614b2b11fb0cdf7c839cc9bcaaa07259eabfe92a64736f6c634300081b0033", } // StrategyFactoryABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyManager/binding.go b/pkg/bindings/StrategyManager/binding.go index 33548df7d..e5fc3bbac 100644 --- a/pkg/bindings/StrategyManager/binding.go +++ b/pkg/bindings/StrategyManager/binding.go @@ -32,7 +32,7 @@ var ( // StrategyManagerMetaData contains all meta data concerning the StrategyManager contract. var StrategyManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DEFAULT_BURN_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEPOSIT_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addStrategiesToDepositWhitelist\",\"inputs\":[{\"name\":\"strategiesToWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnShares\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"sharesToBurn\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateStrategyDepositDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositIntoStrategy\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"depositedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositIntoStrategyWithSignature\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"depositedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDeposits\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakerStrategyList\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialStrategyWhitelister\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"depositSharesToRemove\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromDepositWhitelist\",\"inputs\":[{\"name\":\"strategiesToRemoveFromWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStrategyWhitelister\",\"inputs\":[{\"name\":\"newStrategyWhitelister\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakerDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerStrategyList\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"strategies\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerStrategyListLength\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyIsWhitelistedForDeposit\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"whitelisted\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyWhitelister\",\"inputs\":[],\"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\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawSharesAsTokens\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToDepositWhitelist\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromDepositWhitelist\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyWhitelisterChanged\",\"inputs\":[{\"name\":\"previousAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxStrategiesExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyDelegationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyWhitelister\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesAmountTooHigh\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesAmountZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StakerAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotWhitelisted\",\"inputs\":[]}]", - Bin: "0x610100604052348015610010575f5ffd5b5060405161276538038061276583398101604081905261002f91610204565b81816001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0524660c052610076610088565b60e052610081610131565b505061023c565b5f60c051461461012a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b5060e05190565b5f54610100900460ff161561019c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101eb575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610201575f5ffd5b50565b5f5f60408385031215610215575f5ffd5b8251610220816101ed565b6020840151909250610231816101ed565b809150509250929050565b60805160a05160c05160e0516124be6102a75f395f6118df01525f61181f01525f818161046a0152818161071a01528181610a7101528181610e0f01528181610f7f01526114dc01525f818161032a015281816105290152818161087c015261111c01526124be5ff3fe608060405234801561000f575f5ffd5b50600436106101e7575f3560e01c806394f649dd11610109578063df5cf7231161009e578063f3b4a0001161006e578063f3b4a000146104c5578063f698da25146104cf578063fabc1cbc146104d7578063fe243a17146104ea575f5ffd5b8063df5cf72314610465578063e7a050aa1461048c578063ee7a7c041461049f578063f2fde38b146104b2575f5ffd5b8063c4623ea1116100d9578063c4623ea1146103f7578063c66567021461041f578063cbc2bd6214610432578063de44acb614610445575f5ffd5b806394f649dd1461039d578063967fc0d2146103be5780639ac01d61146103d1578063b5d8b5b8146103e4575f5ffd5b80635de08ff21161017f5780637ecebe001161014f5780637ecebe0014610306578063886f1195146103255780638b8aac3c146103645780638da5cb5b1461038c575f5ffd5b80635de08ff2146102b6578063663c1de4146102c9578063715018a6146102eb578063724af423146102f3575f5ffd5b806348825e94116101ba57806348825e941461024c578063595c6a67146102735780635ac86ab71461027b5780635c975abb146102ae575f5ffd5b8063136439dd146101eb5780631794bb3c146102005780632eae418c1461021357806332e89ace14610226575b5f5ffd5b6101fe6101f9366004611f6c565b610514565b005b6101fe61020e366004611f97565b6105e9565b6101fe610221366004611fd5565b61070f565b610239610234366004612037565b6107c3565b6040519081526020015b60405180910390f35b6102397f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b6101fe610867565b61029e610289366004612132565b609854600160ff9092169190911b9081161490565b6040519015158152602001610243565b609854610239565b6101fe6102c4366004612152565b610916565b61029e6102d73660046121c3565b60d16020525f908152604090205460ff1681565b6101fe610a55565b6101fe610301366004611f97565b610a66565b6102396103143660046121c3565b60ca6020525f908152604090205481565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610243565b6102396103723660046121c3565b6001600160a01b03165f90815260ce602052604090205490565b6033546001600160a01b031661034c565b6103b06103ab3660046121c3565b610aba565b604051610243929190612221565b60cb5461034c906001600160a01b031681565b6102396103df366004612279565b610c32565b6101fe6103f2366004612152565b610cc3565b61040a610405366004611fd5565b610e02565b60408051928352602083019190915201610243565b6101fe61042d3660046121c3565b610e67565b61034c6104403660046122da565b610e7b565b6104586104533660046121c3565b610eaf565b6040516102439190612304565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61023961049a366004611f97565b610f22565b6101fe6104ad3660046122da565b610f74565b6101fe6104c03660046121c3565b611096565b61034c620e16e481565b61023961110c565b6101fe6104e5366004611f6c565b61111a565b6102396104f8366004612316565b60cd60209081525f928352604080842090915290825290205481565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610576573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059a919061234d565b6105b757604051631d77d47760e21b815260040160405180910390fd5b60985481811681146105dc5760405163c61dca5d60e01b815260040160405180910390fd5b6105e582611230565b5050565b5f54610100900460ff161580801561060757505f54600160ff909116105b806106205750303b15801561062057505f5460ff166001145b6106885760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156106a9575f805461ff0019166101001790555b6106b282611230565b6106bb8461126d565b6106c4836112be565b8015610709575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107585760405163f739589b60e01b815260040160405180910390fd5b604051636ce5768960e11b81526001600160a01b03858116600483015283811660248301526044820183905284169063d9caed12906064015f604051808303815f87803b1580156107a7575f5ffd5b505af11580156107b9573d5f5f3e3d5ffd5b5050505050505050565b6098545f9081906001908116036107ed5760405163840a48d560e01b815260040160405180910390fd5b6107f5611327565b6001600160a01b0385165f90815260ca60205260409020546108268661081f818c8c8c878c610c32565b8688611380565b6001600160a01b0386165f90815260ca6020526040902060018201905561084f868a8a8a6113d2565b92505061085c6001606555565b509695505050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156108c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ed919061234d565b61090a57604051631d77d47760e21b815260040160405180910390fd5b6109145f19611230565b565b60cb546001600160a01b03163314610941576040516320ba3ff960e21b815260040160405180910390fd5b805f5b818110156107095760d15f8585848181106109615761096161236c565b905060200201602081019061097691906121c3565b6001600160a01b0316815260208101919091526040015f205460ff16610a4d57600160d15f8686858181106109ad576109ad61236c565b90506020020160208101906109c291906121c3565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe848483818110610a1c57610a1c61236c565b9050602002016020810190610a3191906121c3565b6040516001600160a01b03909116815260200160405180910390a15b600101610944565b610a5d611540565b6109145f61126d565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610aaf5760405163f739589b60e01b815260040160405180910390fd5b61070983838361159a565b6001600160a01b0381165f90815260ce60205260408120546060918291908167ffffffffffffffff811115610af157610af1612023565b604051908082528060200260200182016040528015610b1a578160200160208202803683370190505b5090505f5b82811015610ba8576001600160a01b0386165f90815260cd6020908152604080832060ce9092528220805491929184908110610b5d57610b5d61236c565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610b9557610b9561236c565b6020908102919091010152600101610b1f565b5060ce5f866001600160a01b03166001600160a01b031681526020019081526020015f208181805480602002602001604051908101604052809291908181526020018280548015610c2057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c02575b50505050509150935093505050915091565b604080517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922460208201526001600160a01b03808916928201929092528187166060820152908516608082015260a0810184905260c0810183905260e081018290525f90610cb890610100016040516020818303038152906040528051906020012061165e565b979650505050505050565b60cb546001600160a01b03163314610cee576040516320ba3ff960e21b815260040160405180910390fd5b805f5b818110156107095760d15f858584818110610d0e57610d0e61236c565b9050602002016020810190610d2391906121c3565b6001600160a01b0316815260208101919091526040015f205460ff1615610dfa575f60d15f868685818110610d5a57610d5a61236c565b9050602002016020810190610d6f91906121c3565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610dc957610dc961236c565b9050602002016020810190610dde91906121c3565b6040516001600160a01b03909116815260200160405180910390a15b600101610cf1565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e4d5760405163f739589b60e01b815260040160405180910390fd5b610e59868587866116a4565b915091505b94509492505050565b610e6f611540565b610e78816112be565b50565b60ce602052815f5260405f208181548110610e94575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0381165f90815260ce6020908152604091829020805483518184028101840190945280845260609392830182828015610f1657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610ef8575b50505050509050919050565b6098545f908190600190811603610f4c5760405163840a48d560e01b815260040160405180910390fd5b610f54611327565b610f60338686866113d2565b9150610f6c6001606555565b509392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fbd5760405163f739589b60e01b815260040160405180910390fd5b816001600160a01b031663d9caed12620e16e4846001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110309190612380565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b15801561107c575f5ffd5b505af192505050801561108d575060015b156105e5575050565b61109e611540565b6001600160a01b0381166111035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067f565b610e788161126d565b5f61111561181c565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611176573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119a9190612380565b6001600160a01b0316336001600160a01b0316146111cb5760405163794821ff60e01b815260040160405180910390fd5b609854801982198116146111f25760405163c61dca5d60e01b815260040160405180910390fd5b609882905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6002606554036113795760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161067f565b6002606555565b428110156113a157604051630819bdcd60e01b815260040160405180910390fd5b6113b56001600160a01b0385168484611901565b61070957604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260d16020526040812054849060ff1661140c57604051632efd965160e11b815260040160405180910390fd5b6114216001600160a01b03851633878661195f565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303815f875af115801561146d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611491919061239b565b91505f5f6114a1888789876116a4565b604051631e328e7960e11b81526001600160a01b038b811660048301528a8116602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b15801561151f575f5ffd5b505af1158015611531573d5f5f3e3d5ffd5b50505050505050949350505050565b6033546001600160a01b031633146109145760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067f565b5f815f036115bb576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038085165f90815260cd60209081526040808320938716835292905220548083111561160157604051634b18b19360e01b815260040160405180910390fd5b61160b83826123c6565b6001600160a01b038087165f90815260cd6020908152604080832093891683529290529081208290559091508190036116525761164885856119b9565b6001915050611657565b5f9150505b9392505050565b5f61166761181c565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f806001600160a01b0386166116cd576040516316f2ccc960e01b815260040160405180910390fd5b825f036116ed576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038087165f90815260cd6020908152604080832093881683529290529081205490819003611793576001600160a01b0387165f90815260ce602090815260409091205410611755576040516301a1443960e31b815260040160405180910390fd5b6001600160a01b038781165f90815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169187169190911790555b61179d84826123df565b6001600160a01b038881165f81815260cd602090815260408083208b861680855290835292819020959095558451928352928a169282019290925291820152606081018590527f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969060800160405180910390a196929550919350505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146118dc5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f5f5f61190e8585611b37565b90925090505f816004811115611926576119266123f2565b1480156119445750856001600160a01b0316826001600160a01b0316145b806119555750611955868686611b79565b9695505050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610709908590611c60565b6001600160a01b0382165f90815260ce6020526040812054905b81811015611acb576001600160a01b038481165f90815260ce6020526040902080549185169183908110611a0957611a0961236c565b5f918252602090912001546001600160a01b031603611ac3576001600160a01b0384165f90815260ce602052604090208054611a47906001906123c6565b81548110611a5757611a5761236c565b5f9182526020808320909101546001600160a01b03878116845260ce9092526040909220805491909216919083908110611a9357611a9361236c565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550611acb565b6001016119d3565b818103611aeb57604051632df15a4160e11b815260040160405180910390fd5b6001600160a01b0384165f90815260ce60205260409020805480611b1157611b11612406565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b5f5f8251604103611b6b576020830151604084015160608501515f1a611b5f87828585611d38565b94509450505050611b72565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401611ba1929190612448565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611bdf9190612460565b5f60405180830381855afa9150503d805f8114611c17576040519150601f19603f3d011682016040523d82523d5f602084013e611c1c565b606091505b5091509150818015611c3057506020815110155b801561195557508051630b135d3f60e11b90611c55908301602090810190840161239b565b149695505050505050565b5f611cb4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611df29092919063ffffffff16565b905080515f1480611cd4575080806020019051810190611cd4919061234d565b611d335760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161067f565b505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611d6d57505f90506003610e5e565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611dbe573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611de6575f60019250925050610e5e565b965f9650945050505050565b6060611e0084845f85611e08565b949350505050565b606082471015611e695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161067f565b5f5f866001600160a01b03168587604051611e849190612460565b5f6040518083038185875af1925050503d805f8114611ebe576040519150601f19603f3d011682016040523d82523d5f602084013e611ec3565b606091505b5091509150610cb88783838760608315611f3d5782515f03611f36576001600160a01b0385163b611f365760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161067f565b5081611e00565b611e008383815115611f525781518083602001fd5b8060405162461bcd60e51b815260040161067f9190612476565b5f60208284031215611f7c575f5ffd5b5035919050565b6001600160a01b0381168114610e78575f5ffd5b5f5f5f60608486031215611fa9575f5ffd5b8335611fb481611f83565b92506020840135611fc481611f83565b929592945050506040919091013590565b5f5f5f5f60808587031215611fe8575f5ffd5b8435611ff381611f83565b9350602085013561200381611f83565b9250604085013561201381611f83565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f60c0878903121561204c575f5ffd5b863561205781611f83565b9550602087013561206781611f83565b945060408701359350606087013561207e81611f83565b92506080870135915060a087013567ffffffffffffffff8111156120a0575f5ffd5b8701601f810189136120b0575f5ffd5b803567ffffffffffffffff8111156120ca576120ca612023565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156120f9576120f9612023565b6040528181528282016020018b1015612110575f5ffd5b816020840160208301375f602083830101528093505050509295509295509295565b5f60208284031215612142575f5ffd5b813560ff81168114611657575f5ffd5b5f5f60208385031215612163575f5ffd5b823567ffffffffffffffff811115612179575f5ffd5b8301601f81018513612189575f5ffd5b803567ffffffffffffffff81111561219f575f5ffd5b8560208260051b84010111156121b3575f5ffd5b6020919091019590945092505050565b5f602082840312156121d3575f5ffd5b813561165781611f83565b5f8151808452602084019350602083015f5b828110156122175781516001600160a01b03168652602095860195909101906001016121f0565b5093949350505050565b604081525f61223360408301856121de565b82810360208401528084518083526020830191506020860192505f5b8181101561226d57835183526020938401939092019160010161224f565b50909695505050505050565b5f5f5f5f5f5f60c0878903121561228e575f5ffd5b863561229981611f83565b955060208701356122a981611f83565b945060408701356122b981611f83565b959894975094956060810135955060808101359460a0909101359350915050565b5f5f604083850312156122eb575f5ffd5b82356122f681611f83565b946020939093013593505050565b602081525f61165760208301846121de565b5f5f60408385031215612327575f5ffd5b823561233281611f83565b9150602083013561234281611f83565b809150509250929050565b5f6020828403121561235d575f5ffd5b81518015158114611657575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612390575f5ffd5b815161165781611f83565b5f602082840312156123ab575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156123d9576123d96123b2565b92915050565b808201808211156123d9576123d96123b2565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b828152604060208201525f611e00604083018461241a565b5f82518060208501845e5f920191825250919050565b602081525f611657602083018461241a56fea26469706673582212207144109046638e552ada8cc695370f34693f671743b5db7c703e16bd2db1b06064736f6c634300081b0033", + Bin: "0x610100604052348015610010575f5ffd5b5060405161276538038061276583398101604081905261002f91610204565b81816001600160a01b038116610058576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0524660c052610076610088565b60e052610081610131565b505061023c565b5f60c051461461012a5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b5060e05190565b5f54610100900460ff161561019c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101eb575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610201575f5ffd5b50565b5f5f60408385031215610215575f5ffd5b8251610220816101ed565b6020840151909250610231816101ed565b809150509250929050565b60805160a05160c05160e0516124be6102a75f395f6118df01525f61181f01525f818161046a0152818161071a01528181610a7101528181610e0f01528181610f7f01526114dc01525f818161032a015281816105290152818161087c015261111c01526124be5ff3fe608060405234801561000f575f5ffd5b50600436106101e7575f3560e01c806394f649dd11610109578063df5cf7231161009e578063f3b4a0001161006e578063f3b4a000146104c5578063f698da25146104cf578063fabc1cbc146104d7578063fe243a17146104ea575f5ffd5b8063df5cf72314610465578063e7a050aa1461048c578063ee7a7c041461049f578063f2fde38b146104b2575f5ffd5b8063c4623ea1116100d9578063c4623ea1146103f7578063c66567021461041f578063cbc2bd6214610432578063de44acb614610445575f5ffd5b806394f649dd1461039d578063967fc0d2146103be5780639ac01d61146103d1578063b5d8b5b8146103e4575f5ffd5b80635de08ff21161017f5780637ecebe001161014f5780637ecebe0014610306578063886f1195146103255780638b8aac3c146103645780638da5cb5b1461038c575f5ffd5b80635de08ff2146102b6578063663c1de4146102c9578063715018a6146102eb578063724af423146102f3575f5ffd5b806348825e94116101ba57806348825e941461024c578063595c6a67146102735780635ac86ab71461027b5780635c975abb146102ae575f5ffd5b8063136439dd146101eb5780631794bb3c146102005780632eae418c1461021357806332e89ace14610226575b5f5ffd5b6101fe6101f9366004611f6c565b610514565b005b6101fe61020e366004611f97565b6105e9565b6101fe610221366004611fd5565b61070f565b610239610234366004612037565b6107c3565b6040519081526020015b60405180910390f35b6102397f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b6101fe610867565b61029e610289366004612132565b609854600160ff9092169190911b9081161490565b6040519015158152602001610243565b609854610239565b6101fe6102c4366004612152565b610916565b61029e6102d73660046121c3565b60d16020525f908152604090205460ff1681565b6101fe610a55565b6101fe610301366004611f97565b610a66565b6102396103143660046121c3565b60ca6020525f908152604090205481565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610243565b6102396103723660046121c3565b6001600160a01b03165f90815260ce602052604090205490565b6033546001600160a01b031661034c565b6103b06103ab3660046121c3565b610aba565b604051610243929190612221565b60cb5461034c906001600160a01b031681565b6102396103df366004612279565b610c32565b6101fe6103f2366004612152565b610cc3565b61040a610405366004611fd5565b610e02565b60408051928352602083019190915201610243565b6101fe61042d3660046121c3565b610e67565b61034c6104403660046122da565b610e7b565b6104586104533660046121c3565b610eaf565b6040516102439190612304565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61023961049a366004611f97565b610f22565b6101fe6104ad3660046122da565b610f74565b6101fe6104c03660046121c3565b611096565b61034c620e16e481565b61023961110c565b6101fe6104e5366004611f6c565b61111a565b6102396104f8366004612316565b60cd60209081525f928352604080842090915290825290205481565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610576573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059a919061234d565b6105b757604051631d77d47760e21b815260040160405180910390fd5b60985481811681146105dc5760405163c61dca5d60e01b815260040160405180910390fd5b6105e582611230565b5050565b5f54610100900460ff161580801561060757505f54600160ff909116105b806106205750303b15801561062057505f5460ff166001145b6106885760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156106a9575f805461ff0019166101001790555b6106b282611230565b6106bb8461126d565b6106c4836112be565b8015610709575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107585760405163f739589b60e01b815260040160405180910390fd5b604051636ce5768960e11b81526001600160a01b03858116600483015283811660248301526044820183905284169063d9caed12906064015f604051808303815f87803b1580156107a7575f5ffd5b505af11580156107b9573d5f5f3e3d5ffd5b5050505050505050565b6098545f9081906001908116036107ed5760405163840a48d560e01b815260040160405180910390fd5b6107f5611327565b6001600160a01b0385165f90815260ca60205260409020546108268661081f818c8c8c878c610c32565b8688611380565b6001600160a01b0386165f90815260ca6020526040902060018201905561084f868a8a8a6113d2565b92505061085c6001606555565b509695505050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156108c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ed919061234d565b61090a57604051631d77d47760e21b815260040160405180910390fd5b6109145f19611230565b565b60cb546001600160a01b03163314610941576040516320ba3ff960e21b815260040160405180910390fd5b805f5b818110156107095760d15f8585848181106109615761096161236c565b905060200201602081019061097691906121c3565b6001600160a01b0316815260208101919091526040015f205460ff16610a4d57600160d15f8686858181106109ad576109ad61236c565b90506020020160208101906109c291906121c3565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe848483818110610a1c57610a1c61236c565b9050602002016020810190610a3191906121c3565b6040516001600160a01b03909116815260200160405180910390a15b600101610944565b610a5d611540565b6109145f61126d565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610aaf5760405163f739589b60e01b815260040160405180910390fd5b61070983838361159a565b6001600160a01b0381165f90815260ce60205260408120546060918291908167ffffffffffffffff811115610af157610af1612023565b604051908082528060200260200182016040528015610b1a578160200160208202803683370190505b5090505f5b82811015610ba8576001600160a01b0386165f90815260cd6020908152604080832060ce9092528220805491929184908110610b5d57610b5d61236c565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610b9557610b9561236c565b6020908102919091010152600101610b1f565b5060ce5f866001600160a01b03166001600160a01b031681526020019081526020015f208181805480602002602001604051908101604052809291908181526020018280548015610c2057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c02575b50505050509150935093505050915091565b604080517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922460208201526001600160a01b03808916928201929092528187166060820152908516608082015260a0810184905260c0810183905260e081018290525f90610cb890610100016040516020818303038152906040528051906020012061165e565b979650505050505050565b60cb546001600160a01b03163314610cee576040516320ba3ff960e21b815260040160405180910390fd5b805f5b818110156107095760d15f858584818110610d0e57610d0e61236c565b9050602002016020810190610d2391906121c3565b6001600160a01b0316815260208101919091526040015f205460ff1615610dfa575f60d15f868685818110610d5a57610d5a61236c565b9050602002016020810190610d6f91906121c3565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610dc957610dc961236c565b9050602002016020810190610dde91906121c3565b6040516001600160a01b03909116815260200160405180910390a15b600101610cf1565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e4d5760405163f739589b60e01b815260040160405180910390fd5b610e59868587866116a4565b915091505b94509492505050565b610e6f611540565b610e78816112be565b50565b60ce602052815f5260405f208181548110610e94575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0381165f90815260ce6020908152604091829020805483518184028101840190945280845260609392830182828015610f1657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610ef8575b50505050509050919050565b6098545f908190600190811603610f4c5760405163840a48d560e01b815260040160405180910390fd5b610f54611327565b610f60338686866113d2565b9150610f6c6001606555565b509392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fbd5760405163f739589b60e01b815260040160405180910390fd5b816001600160a01b031663d9caed12620e16e4846001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110309190612380565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b15801561107c575f5ffd5b505af192505050801561108d575060015b156105e5575050565b61109e611540565b6001600160a01b0381166111035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067f565b610e788161126d565b5f61111561181c565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611176573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119a9190612380565b6001600160a01b0316336001600160a01b0316146111cb5760405163794821ff60e01b815260040160405180910390fd5b609854801982198116146111f25760405163c61dca5d60e01b815260040160405180910390fd5b609882905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6002606554036113795760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161067f565b6002606555565b428110156113a157604051630819bdcd60e01b815260040160405180910390fd5b6113b56001600160a01b0385168484611901565b61070957604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260d16020526040812054849060ff1661140c57604051632efd965160e11b815260040160405180910390fd5b6114216001600160a01b03851633878661195f565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303815f875af115801561146d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611491919061239b565b91505f5f6114a1888789876116a4565b604051631e328e7960e11b81526001600160a01b038b811660048301528a8116602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b15801561151f575f5ffd5b505af1158015611531573d5f5f3e3d5ffd5b50505050505050949350505050565b6033546001600160a01b031633146109145760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067f565b5f815f036115bb576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038085165f90815260cd60209081526040808320938716835292905220548083111561160157604051634b18b19360e01b815260040160405180910390fd5b61160b83826123c6565b6001600160a01b038087165f90815260cd6020908152604080832093891683529290529081208290559091508190036116525761164885856119b9565b6001915050611657565b5f9150505b9392505050565b5f61166761181c565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f806001600160a01b0386166116cd576040516316f2ccc960e01b815260040160405180910390fd5b825f036116ed576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038087165f90815260cd6020908152604080832093881683529290529081205490819003611793576001600160a01b0387165f90815260ce602090815260409091205410611755576040516301a1443960e31b815260040160405180910390fd5b6001600160a01b038781165f90815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169187169190911790555b61179d84826123df565b6001600160a01b038881165f81815260cd602090815260408083208b861680855290835292819020959095558451928352928a169282019290925291820152606081018590527f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969060800160405180910390a196929550919350505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146118dc5750604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f5f5f61190e8585611b37565b90925090505f816004811115611926576119266123f2565b1480156119445750856001600160a01b0316826001600160a01b0316145b806119555750611955868686611b79565b9695505050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610709908590611c60565b6001600160a01b0382165f90815260ce6020526040812054905b81811015611acb576001600160a01b038481165f90815260ce6020526040902080549185169183908110611a0957611a0961236c565b5f918252602090912001546001600160a01b031603611ac3576001600160a01b0384165f90815260ce602052604090208054611a47906001906123c6565b81548110611a5757611a5761236c565b5f9182526020808320909101546001600160a01b03878116845260ce9092526040909220805491909216919083908110611a9357611a9361236c565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550611acb565b6001016119d3565b818103611aeb57604051632df15a4160e11b815260040160405180910390fd5b6001600160a01b0384165f90815260ce60205260409020805480611b1157611b11612406565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b5f5f8251604103611b6b576020830151604084015160608501515f1a611b5f87828585611d38565b94509450505050611b72565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401611ba1929190612448565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611bdf9190612460565b5f60405180830381855afa9150503d805f8114611c17576040519150601f19603f3d011682016040523d82523d5f602084013e611c1c565b606091505b5091509150818015611c3057506020815110155b801561195557508051630b135d3f60e11b90611c55908301602090810190840161239b565b149695505050505050565b5f611cb4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611df29092919063ffffffff16565b905080515f1480611cd4575080806020019051810190611cd4919061234d565b611d335760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161067f565b505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611d6d57505f90506003610e5e565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611dbe573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611de6575f60019250925050610e5e565b965f9650945050505050565b6060611e0084845f85611e08565b949350505050565b606082471015611e695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161067f565b5f5f866001600160a01b03168587604051611e849190612460565b5f6040518083038185875af1925050503d805f8114611ebe576040519150601f19603f3d011682016040523d82523d5f602084013e611ec3565b606091505b5091509150610cb88783838760608315611f3d5782515f03611f36576001600160a01b0385163b611f365760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161067f565b5081611e00565b611e008383815115611f525781518083602001fd5b8060405162461bcd60e51b815260040161067f9190612476565b5f60208284031215611f7c575f5ffd5b5035919050565b6001600160a01b0381168114610e78575f5ffd5b5f5f5f60608486031215611fa9575f5ffd5b8335611fb481611f83565b92506020840135611fc481611f83565b929592945050506040919091013590565b5f5f5f5f60808587031215611fe8575f5ffd5b8435611ff381611f83565b9350602085013561200381611f83565b9250604085013561201381611f83565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f60c0878903121561204c575f5ffd5b863561205781611f83565b9550602087013561206781611f83565b945060408701359350606087013561207e81611f83565b92506080870135915060a087013567ffffffffffffffff8111156120a0575f5ffd5b8701601f810189136120b0575f5ffd5b803567ffffffffffffffff8111156120ca576120ca612023565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156120f9576120f9612023565b6040528181528282016020018b1015612110575f5ffd5b816020840160208301375f602083830101528093505050509295509295509295565b5f60208284031215612142575f5ffd5b813560ff81168114611657575f5ffd5b5f5f60208385031215612163575f5ffd5b823567ffffffffffffffff811115612179575f5ffd5b8301601f81018513612189575f5ffd5b803567ffffffffffffffff81111561219f575f5ffd5b8560208260051b84010111156121b3575f5ffd5b6020919091019590945092505050565b5f602082840312156121d3575f5ffd5b813561165781611f83565b5f8151808452602084019350602083015f5b828110156122175781516001600160a01b03168652602095860195909101906001016121f0565b5093949350505050565b604081525f61223360408301856121de565b82810360208401528084518083526020830191506020860192505f5b8181101561226d57835183526020938401939092019160010161224f565b50909695505050505050565b5f5f5f5f5f5f60c0878903121561228e575f5ffd5b863561229981611f83565b955060208701356122a981611f83565b945060408701356122b981611f83565b959894975094956060810135955060808101359460a0909101359350915050565b5f5f604083850312156122eb575f5ffd5b82356122f681611f83565b946020939093013593505050565b602081525f61165760208301846121de565b5f5f60408385031215612327575f5ffd5b823561233281611f83565b9150602083013561234281611f83565b809150509250929050565b5f6020828403121561235d575f5ffd5b81518015158114611657575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612390575f5ffd5b815161165781611f83565b5f602082840312156123ab575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156123d9576123d96123b2565b92915050565b808201808211156123d9576123d96123b2565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b828152604060208201525f611e00604083018461241a565b5f82518060208501845e5f920191825250919050565b602081525f611657602083018461241a56fea2646970667358221220bafeca9a85c532aa831a293c676672950349930447f31a680995ec6e5c99771464736f6c634300081b0033", } // StrategyManagerABI is the input ABI used to generate the binding from.