8 txs
9 calls
constructor
constructor(address _underlying, address _defaultAdmin)
functions
_vesting_period
viewfunction _vesting_period() view returns (uint256)
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getNonce
viewfunction getNonce() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getVaultAt
viewfunction getVaultAt(uint256 index) view returns (tuple)
getVaultCount
viewfunction getVaultCount() view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MODIFIER_ROLE
viewfunction MODIFIER_ROLE() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalWeight
viewfunction totalWeight() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
unstakeRequests
viewfunction unstakeRequests(uint256) view returns (address account, uint256 shares, uint256 cliff, bool processed)
addVault
nonpayablefunction addVault(address vault, uint8 weight)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
previewDeposit
nonpayablefunction previewDeposit(uint256 amount) returns (uint256)
queueUnstake
nonpayablefunction queueUnstake(uint256 shares)
rebalance
nonpayablefunction rebalance()
removeVault
nonpayablefunction removeVault(uint256 index)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setUnderlying
nonpayablefunction setUnderlying(address _underlying)
stake
payablefunction stake() payable
togglePause
nonpayablefunction togglePause()
unstake
nonpayablefunction unstake(uint256 nonce)
virtualBalance
nonpayablefunction virtualBalance() returns (uint256)
events
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Staked
event Staked(address indexed account, uint256 assets)
UnderlyingSet
event UnderlyingSet(address indexed underlying)
Unpaused
event Unpaused(address account)
Unstaked
event Unstaked(address indexed account, uint256 assets, uint256 nonce)
UnstakeQueued
event UnstakeQueued(address indexed account, uint256 shares, uint256 cliff, uint256 nonce)
VaultAdded
event VaultAdded(address indexed vault)
VaultRemoved
event VaultRemoved(address indexed vault)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60c03461012057601f611ed138819003918201601f19168301916001600160401b0383118484101761012557808492604094855283398101031261012057610052602061004b8361013b565b920161013b565b600180556002805460ff191690556001600160a01b039091169081156100e8576001600160a01b038116156100e1575b61008b9061014f565b5030608052620d2f0060a052600780546001600160a01b031916919091179055604051611cd390816101de82396080518181816106a901528181610a9e0152610f03015260a05181818161053201526106e50152f35b5033610082565b60405162461bcd60e51b815260206004820152601060248201526f06c6d3a20756e6465726c79696e6720360841b6044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361012057565b6001600160a01b0381166000908152600080516020611eb1833981519152602052604090205460ff166101d7576001600160a01b03166000818152600080516020611eb183398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5060009056fe608080604052600436101561001d575b50361561001b57600080fd5b005b600090813560e01c90816301ffc9a71461162a57508063248a9ca3146115fc5780632e17de78146112cc5780632f2ff15d1461128b57806336568abe146112465780633a4b66f114610ed25780635c975abb14610eaf5780636f307dc314610e8657806374d4e49114610e685780637575aa8a14610e2d57806375b238fc14610df25780637a98742d14610d565780637a9b27d014610c665780637d7c2a1c14610a8057806391d1485414610a355780639525d58b1461058f57806396c82e5714610571578063a217fddf14610555578063a407c1d81461051a578063bdb2321f146104b2578063c4ae3168146103fd578063d087d288146103df578063d547741f14610395578063dcd2af171461037a578063eaadd9761461026d578063ef8b30f7146101ab5763f87975af0361000f57346101a85760203660031901126101a8576040608091600435815260086020522060018060a01b038154169060018101549060ff6005600483015492015416916040519384526020840152604083015215156060820152f35b80fd5b50346101a85760203660031901126101a8576101c5611abf565b90816101d857602091505b604051908152f35b6007546040516318160ddd60e01b815290602090829060049082906001600160a01b03165afa9182156102615791610229575b5060209161021f6102249260043590611778565b61178b565b6101d0565b90506020813d602011610259575b8161024460209383611725565b810103126102545751602061020b565b600080fd5b3d9150610237565b604051903d90823e3d90fd5b50346101a85760203660031901126101a857610287611862565b6102a16102956004356116ab565b90549060031b1c611a8e565b805160208201516102c99160ff60a01b60a09190911b166001600160a01b0390911617611bd3565b1561032b5760ff81511660065490810390811161031757600655602001516001600160a01b03167fe71f3a50e5ad81964f352c411f1d45e35438ecd1acecef59ac81d9fbbf6cbc0a8280a280f35b634e487b7160e01b83526011600452602483fd5b60405162461bcd60e51b815260206004820152602160248201527f72656d6f76655661756c743a205661756c7420646f6573206e6f7420657869736044820152601d60fa1b6064820152608490fd5b50346101a857806003193601126101a85760206101d0611abf565b50346101a85760403660031901126101a8576103db6004356103b561167f565b906103d66103d182600052600060205260016040600020015490565b611946565b611a0c565b5080f35b50346101a857806003193601126101a8576020600554604051908152f35b50346101a857806003193601126101a8576104166118d4565b60025460ff811615610472575060025460ff8116156104635760ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b60019061047d611845565b60ff1916176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101a85760203660031901126101a8576104cc611695565b6104d46118d4565b600780546001600160a01b0319166001600160a01b039290921691821790557f48cb986ada9abba1c545a38db9a3dce91cb57f74826464b95a9d887a6457251c8280a280f35b50346101a857806003193601126101a85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101a857806003193601126101a857602090604051908152f35b50346101a857806003193601126101a8576020600654604051908152f35b50346101a85760203660031901126101a8576004356105ac611845565b600354670de0b6b3a76400008202828104670de0b6b3a76400001483151715610a21576007546040516318160ddd60e01b81526001600160a01b0390911691908590602081600481875afa9081156109db5782916109ea575b50610610919261178b565b91803b156109e657604051632770a7eb60e21b8152336004820152602481018690529082908290604490829084905af180156109db576109c2575b5050610656826117c4565b916106646040519384611725565b808352601f19610673826117c4565b01366020850137610683816117c4565b916106916040519384611725565b818352601f196106a0836117c4565b013660208501377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686805b84811061090157505050505061070a7f000000000000000000000000000000000000000000000000000000000000000042611755565b916040519060c082018281106001600160401b038211176108ed5760405233825260208201928584526040830191825260608301908152608083019185835260a084019488865260055460001981146108d957600190810160058190558a52600860205260408a20955186546001600160a01b0319166001600160a01b03919091161786559051908501555180519060028501906001600160401b0383116108c557600160401b83116108c5576020906107c9848454818655856117ef565b0190895260208920895b8381106108b15750505050600383019051908151916001600160401b03831161089d57600160401b831161089d57602090610813848454818655856117ef565b0190885260208820885b838110610880575050505090600591516004820155019051151560ff8019835416911617905560055490604051928352602083015260408201527f41eefa78fc02f42c76e9656c020be15f3a1991b977d6166fb57140857c61bccb60603392a280f35b82516001600160a01b03168183015560209092019160010161081d565b634e487b7160e01b89526041600452602489fd5b6001906020845194019381840155016107d3565b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b8a52601160045260248afd5b634e487b7160e01b87526041600452602487fd5b60406020610911610295846116ab565b0180516001600160a01b0316610927848a6117db565b5251815163142cfe6160e21b815260048101879052602481018690526044810186905293849160649183916001600160a01b03165af180156109b7578990610981575b6001925061097882896117db565b520187906106d4565b506040823d82116109af575b8161099a60409383611725565b810103126109ab576001915161096a565b8880fd5b3d915061098d565b6040513d8b823e3d90fd5b816109cc91611725565b6109d757833861064b565b8380fd5b6040513d84823e3d90fd5b5080fd5b9150506020813d602011610a19575b81610a0660209383611725565b8101031261025457518590610610610605565b3d91506109f9565b634e487b7160e01b84526011600452602484fd5b50346101a85760403660031901126101a8576040610a5161167f565b91600435815280602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346101a857806003193601126101a857610a996118d4565b6003547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682805b838110610ad4575080f35b610af76020610ae2836116ab565b90546001600160a01b03939160031b1c611a8e565b0151166040516338d52e0f60e01b8152602081600481855afa908115610c19578491610c24575b506040516370a0823160e01b81526004810186905290602090829060249082906001600160a01b03165afa908115610c19578491610bdf575b5080610b6b575b5085925050600101610ac9565b9060446020926040519586938492636e553f6560e01b845260048401528860248401525af1918215610bd457600192610ba6575b8592610b5e565b610bc69060203d8111610bcd575b610bbe8183611725565b810190611746565b5038610b9f565b503d610bb4565b6040513d87823e3d90fd5b919293505060203d8111610c12575b610bf88183611725565b602082600092810103126101a85750908592915138610b57565b503d610bee565b6040513d86823e3d90fd5b90506020813d8211610c5e575b81610c3e60209383611725565b810103126109d757516001600160a01b03811681036109d7576020610b1e565b3d9150610c31565b50346101a85760403660031901126101a857610c80611695565b60243560ff8116809103610d5257610c96611862565b610cd2610ccd60405193610ca9856116f4565b8385526001600160a01b0316602090940184905260a083901b60ff60a01b16841790565b611b61565b15610d0d57610ce390600654611755565b6006557f7b7ef7a864d96a85497a1ed846adb39940dd6ccef678ff6ac8d55505e09b8cc48280a280f35b60405162461bcd60e51b815260206004820152601e60248201527f6164645661756c743a205661756c7420616c72656164792065786973747300006044820152606490fd5b8280fd5b50346101a85760203660031901126101a857600435610d736117ab565b50600354811015610dad57610d8c6102956040926116ab565b8151815160ff1681526020918201516001600160a01b031691810191909152f35b60405162461bcd60e51b815260206004820152601f60248201527f6765745661756c7441743a20496e646578206f7574206f6620626f756e6473006044820152606490fd5b50346101a857806003193601126101a85760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b50346101a857806003193601126101a85760206040517f62ca43aa15f7f495faa685ce5a258aa390fdc8d7094251dd23d32353f496ddfe8152f35b50346101a857806003193601126101a8576020600354604051908152f35b50346101a857806003193601126101a8576007546040516001600160a01b039091168152602090f35b50346101a857806003193601126101a857602060ff600254166040519015158152f35b50806003193601126101a857610ee6611823565b610eee611845565b341561120957600654156111c95760035481907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316825b8281106110bc57505050806110335750345b80159081610ff357829115610f83575b506040513481527f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d60203392a26001805580f35b6007546001600160a01b0316803b15610fef576040516340c10f1960e01b8152336004820152602481019290925290919081908390604490829084905af18015610fe257610fd2575b90610f4f565b610fdb91611725565b3881610fcc565b50604051903d90823e3d90fd5b5050fd5b60405162461bcd60e51b81526020600482015260186024820152771cdd185ad94e88139bc81cda185c995cc81d1bc81b5a5b9d60421b6044820152606490fd5b6007546040516318160ddd60e01b81529190602090839060049082906001600160a01b03165afa9182156110b157839261107b575b5061021f6110769234611778565b610f3f565b91506020823d6020116110a9575b8161109660209383611725565b81010312610d525790519061021f611068565b3d9150611089565b6040513d85823e3d90fd5b6110c8610295826116ab565b906110e36110da60ff84511634611778565b6006549061178b565b60209283015160405163dcd2af1760e01b81526001600160a01b03909116969193816004818b8b5af19081156111be578891611188575b5061112790602092611755565b95604460405180958193636e553f6560e01b83528b60048401528860248401525af191821561117d5760019261115f575b5001610f2d565b6111769060203d8111610bcd57610bbe8183611725565b5038611158565b6040513d88823e3d90fd5b90506020813d82116111b6575b816111a260209383611725565b810103126111b25751602061111a565b8780fd5b3d9150611195565b6040513d8a823e3d90fd5b60405162461bcd60e51b815260206004820152601860248201527707374616b653a20546f74616c2077656967687420697320360441b6044820152606490fd5b60405162461bcd60e51b81526020600482015260156024820152741cdd185ad94e88125b9d985b1a5908185b5bdd5b9d605a1b6044820152606490fd5b50346101a85760403660031901126101a85761126061167f565b336001600160a01b0382160361127c576103db90600435611a0c565b63334bd91960e11b8252600482fd5b50346101a85760403660031901126101a8576103db6004356112ab61167f565b906112c76103d182600052600060205260016040600020015490565b611981565b50346101a85760203660031901126101a8576004356112e9611823565b6112f1611845565b8082526008602052604082209060058201805460ff81166115ac5783546001600160a01b0316330361156c57600484015442106115275760ff1916600117905560028201805484938492906003015b8284106114815750505050811561143c57808352600860205260408320600501805460ff191660011790558280808085335af13d15611437573d6001600160401b03811161142357604051906113a0601f8201601f191660200183611725565b81528460203d92013e5b156113e75760405191825260208201527f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e60403392a26001805580f35b60405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606490fd5b634e487b7160e01b85526041600452602485fd5b6113aa565b60405162461bcd60e51b815260206004820152601c60248201527f756e7374616b653a204e6f206173736574732077697468647261776e000000006044820152606490fd5b9091929486602061149288856116dc565b905460039190911b1c6001600160a01b031660246114b08a886116dc565b90549060031b1c6040519485938492632e1a7d4d60e01b845260048401525af19081156111be5788916114f5575b506114eb90600192611755565b9501929190611340565b90506020813d821161151f575b8161150f60209383611725565b810103126111b2575160016114de565b3d9150611502565b60405162461bcd60e51b815260206004820152601a60248201527f756e7374616b653a20436c696666206e6f7420726561636865640000000000006044820152606490fd5b60405162461bcd60e51b81526020600482015260186024820152771d5b9cdd185ad94e88125b9d985b1a59081c995c5d595cdd60421b6044820152606490fd5b60405162461bcd60e51b815260206004820152602260248201527f756e7374616b653a205265717565737420616c72656164792070726f63657373604482015261195960f21b6064820152608490fd5b50346101a85760203660031901126101a85760206101d0600435600052600060205260016040600020015490565b9050346109e65760203660031901126109e65760043563ffffffff60e01b8116809103610d525760209250637965db0b60e01b811490811561166e575b5015158152f35b6301ffc9a760e01b14905038611667565b602435906001600160a01b038216820361025457565b600435906001600160a01b038216820361025457565b6003548110156116c657600360005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b80548210156116c65760005260206000200190600090565b604081019081106001600160401b0382111761170f57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761170f57604052565b90816020910312610254575190565b9190820180921161176257565b634e487b7160e01b600052601160045260246000fd5b8181029291811591840414171561176257565b8115611795570490565b634e487b7160e01b600052601260045260246000fd5b604051906117b8826116f4565b60006020838281520152565b6001600160401b03811161170f5760051b60200190565b80518210156116c65760209160051b010190565b9190918282106117fe57505050565b600052602060002091820191015b818110611817575050565b6000815560010161180c565b600260015414611834576002600155565b633ee5aeb560e01b60005260046000fd5b60ff6002541661185157565b63d93c066560e01b60005260046000fd5b3360009081527f8e247ec2353329eb6cef487516da6e5284b530b980fe2dcf0d916f918bc4519f602052604090205460ff161561189b57565b63e2517d3f60e01b600052336004527f62ca43aa15f7f495faa685ce5a258aa390fdc8d7094251dd23d32353f496ddfe60245260446000fd5b3360009081527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec602052604090205460ff161561190d57565b63e2517d3f60e01b600052336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260446000fd5b60008181526020818152604080832033845290915290205460ff16156119695750565b63e2517d3f60e01b6000523360045260245260446000fd5b6000818152602081815260408083206001600160a01b038616845290915290205460ff16611a05576000818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b6000818152602081815260408083206001600160a01b038616845290915290205460ff1615611a05576000818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b611a966117ab565b5060405190611aa4826116f4565b60a081901c60ff1682526001600160a01b0316602082015290565b60006003546000905b808210611ad457505090565b909160006020611ae781610ae2876116ab565b01511660046040518094819363dcd2af1760e01b83525af1908115611b5557600091611b23575b50611b1b90600192611755565b920190611ac8565b906020823d8211611b4d575b81611b3c60209383611725565b810103126101a85750516001611b0e565b3d9150611b2f565b6040513d6000823e3d90fd5b80600052600460205260406000205415600014611bcd57600354600160401b81101561170f57611bb4611b9d82600185940160035560036116dc565b819391549060031b91821b91600019901b19161790565b9055600354906000526004602052604060002055600190565b50600090565b6000818152600460205260409020548015611a055760001981018181116117625760035460001981019190821161176257818103611c63575b5050506003548015611c4d5760001901611c278160036116dc565b8154906000199060031b1b19169055600355600052600460205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b611c85611c74611b9d9360036116dc565b90549060031b1c92839260036116dc565b90556000526004602052604060002055388080611c0c56fea2646970667358221220edefd57a93d4872da1bb1e8f9a7fd9d61b3404ef8ab8f8340fba13808f7f24a764736f6c634300081b0033ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb50000000000000000000000001eb39f70682cb3a7c1c8c0b84cd0a415c70f3e2a0000000000000000000000000c78af0fb1f4e09df9421ba9abd75c4dc018db05