{"abi":[{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","totalStake()":"8b0e9f3f","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"returns\":{\"_0\":\"address of the delegator factory\"}},\"DEPOSITOR_WHITELIST_ROLE()\":{\"returns\":{\"_0\":\"identifier of the depositor whitelist status setter role\"}},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"returns\":{\"_0\":\"identifier of the deposit limit setter role\"}},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"returns\":{\"_0\":\"identifier of the whitelist enabler/disabler role\"}},\"FACTORY()\":{\"returns\":{\"_0\":\"address of the factory\"}},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"returns\":{\"_0\":\"identifier of the deposit limit enabler/disabler role\"}},\"SLASHER_FACTORY()\":{\"returns\":{\"_0\":\"address of the slasher factory\"}},\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"burner()\":{\"returns\":{\"_0\":\"address of the burner\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"collateral()\":{\"returns\":{\"_0\":\"address of the underlying collateral\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"delegator()\":{\"returns\":{\"_0\":\"address of the delegator\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"depositLimit()\":{\"returns\":{\"_0\":\"deposit limit\"}},\"depositWhitelist()\":{\"returns\":{\"_0\":\"if the deposit whitelist is enabled\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"epochDuration()\":{\"returns\":{\"_0\":\"duration of the epoch\"}},\"epochDurationInit()\":{\"returns\":{\"_0\":\"time point of the epoch duration set\"}},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isDelegatorInitialized()\":{\"returns\":{\"_0\":\"if the delegator is initialized\"}},\"isDepositLimit()\":{\"returns\":{\"_0\":\"if the deposit limit is set\"}},\"isDepositorWhitelisted(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the account is whitelisted as a depositor\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"isSlasherInitialized()\":{\"returns\":{\"_0\":\"if the slasher is initialized\"}},\"isWithdrawalsClaimed(uint256,address)\":{\"params\":{\"account\":\"account to check the withdrawals for\",\"epoch\":\"epoch to check the withdrawals for the account at\"},\"returns\":{\"_0\":\"if the withdrawals are claimed for the account at the epoch\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"setDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"setSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"slasher()\":{\"returns\":{\"_0\":\"address of the slasher\"}},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalShares(uint256)\":{\"params\":{\"epoch\":\"epoch to get the total number of withdrawal shares at\"},\"returns\":{\"_0\":\"total number of withdrawal shares at the epoch\"}},\"withdrawalSharesOf(uint256,address)\":{\"params\":{\"account\":\"account to get the number of withdrawal shares for\",\"epoch\":\"epoch to get the number of withdrawal shares for the account at\"},\"returns\":{\"_0\":\"number of withdrawal shares for the account at the epoch\"}},\"withdrawals(uint256)\":{\"params\":{\"epoch\":\"epoch to get the total amount of the withdrawals at\"},\"returns\":{\"_0\":\"total amount of the withdrawals at the epoch\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDelegator(address)\":{\"notice\":\"Set a delegator.\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"setSlasher(address)\":{\"notice\":\"Set a slasher.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/core/src/interfaces/vault/IVaultTokenized.sol\":\"IVaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/core/\",\":core/=lib/core/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/core/src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"DELEGATOR_FACTORY()":{"returns":{"_0":"address of the delegator factory"}},"DEPOSITOR_WHITELIST_ROLE()":{"returns":{"_0":"identifier of the depositor whitelist status setter role"}},"DEPOSIT_LIMIT_SET_ROLE()":{"returns":{"_0":"identifier of the deposit limit setter role"}},"DEPOSIT_WHITELIST_SET_ROLE()":{"returns":{"_0":"identifier of the whitelist enabler/disabler role"}},"FACTORY()":{"returns":{"_0":"address of the factory"}},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"returns":{"_0":"identifier of the deposit limit enabler/disabler role"}},"SLASHER_FACTORY()":{"returns":{"_0":"address of the slasher factory"}},"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"burner()":{"returns":{"_0":"address of the burner"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"collateral()":{"returns":{"_0":"address of the underlying collateral"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"delegator()":{"returns":{"_0":"address of the delegator"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"depositLimit()":{"returns":{"_0":"deposit limit"}},"depositWhitelist()":{"returns":{"_0":"if the deposit whitelist is enabled"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"epochDuration()":{"returns":{"_0":"duration of the epoch"}},"epochDurationInit()":{"returns":{"_0":"time point of the epoch duration set"}},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isDelegatorInitialized()":{"returns":{"_0":"if the delegator is initialized"}},"isDepositLimit()":{"returns":{"_0":"if the deposit limit is set"}},"isDepositorWhitelisted(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the account is whitelisted as a depositor"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"isSlasherInitialized()":{"returns":{"_0":"if the slasher is initialized"}},"isWithdrawalsClaimed(uint256,address)":{"params":{"account":"account to check the withdrawals for","epoch":"epoch to check the withdrawals for the account at"},"returns":{"_0":"if the withdrawals are claimed for the account at the epoch"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"setDelegator(address)":{"details":"Can be set only once.","params":{"delegator":"vault's delegator to delegate the stake to networks and operators"}},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"setSlasher(address)":{"details":"Can be set only once.","params":{"slasher":"vault's slasher to provide a slashing mechanism to networks"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"slasher()":{"returns":{"_0":"address of the slasher"}},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalShares(uint256)":{"params":{"epoch":"epoch to get the total number of withdrawal shares at"},"returns":{"_0":"total number of withdrawal shares at the epoch"}},"withdrawalSharesOf(uint256,address)":{"params":{"account":"account to get the number of withdrawal shares for","epoch":"epoch to get the number of withdrawal shares for the account at"},"returns":{"_0":"number of withdrawal shares for the account at the epoch"}},"withdrawals(uint256)":{"params":{"epoch":"epoch to get the total amount of the withdrawals at"},"returns":{"_0":"total amount of the withdrawals at the epoch"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDelegator(address)":{"notice":"Set a delegator."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"setSlasher(address)":{"notice":"Set a slasher."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/core/","core/=lib/core/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/core/src/interfaces/vault/IVaultTokenized.sol":"IVaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/core/src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":56}