0 txs
0 calls
constructor
constructor(address accessManager_)
functions
authority
viewfunction authority() view returns (address)
getLastReleaseFundsTimestamp
viewfunction getLastReleaseFundsTimestamp() view returns (uint256)
getPlasmaVaultAddress
viewfunction getPlasmaVaultAddress() view returns (address)
getRequestFee
viewfunction getRequestFee() view returns (uint256)
getSharesToRelease
viewfunction getSharesToRelease() view returns (uint256)
getWithdrawFee
viewfunction getWithdrawFee() view returns (uint256)
getWithdrawWindow
viewfunction getWithdrawWindow() view returns (uint256)
isConsumingScheduledOp
viewfunction isConsumingScheduledOp() view returns (bytes4)
requestInfo
viewfunction requestInfo(address account_) view returns (tuple)
canWithdrawFromRequest
nonpayablefunction canWithdrawFromRequest(address account_, uint256 shares_) returns (bool)
canWithdrawFromUnallocated
nonpayablefunction canWithdrawFromUnallocated(uint256 shares_) returns (uint256)
clearContext
nonpayablefunction clearContext()
releaseFunds
nonpayablefunction releaseFunds(uint256 timestamp_, uint256 sharesToRelease_)
requestShares
nonpayablefunction requestShares(uint256 shares_)
setAuthority
nonpayablefunction setAuthority(address newAuthority)
setupContext
nonpayablefunction setupContext(address sender_)
updatePlasmaVaultAddress
nonpayablefunction updatePlasmaVaultAddress(address plasmaVaultAddress_)
updateRequestFee
nonpayablefunction updateRequestFee(uint256 fee_)
updateWithdrawFee
nonpayablefunction updateWithdrawFee(uint256 fee_)
updateWithdrawWindow
nonpayablefunction updateWithdrawWindow(uint256 window_)
events
AuthorityUpdated
event AuthorityUpdated(address authority)
ContextCleared
event ContextCleared(address indexed sender_)
ContextSet
event ContextSet(address indexed sender_)
Initialized
event Initialized(uint64 version)
PlasmaVaultAddressUpdated
event PlasmaVaultAddressUpdated(address plasmaVaultAddress)
ReleaseFundsUpdated
event ReleaseFundsUpdated(uint32 releaseTimestamp, uint128 sharesToRelease)
RequestFeeUpdated
event RequestFeeUpdated(uint256 fee)
WithdrawFeeUpdated
event WithdrawFeeUpdated(uint256 fee)
WithdrawRequestUpdated
event WithdrawRequestUpdated(address account, uint256 amount, uint32 endWithdrawWindow)
WithdrawWindowLengthUpdated
event WithdrawWindowLengthUpdated(uint256 withdrawWindowLength)
errors
AccessManagedInvalidAuthority
error AccessManagedInvalidAuthority(address authority)
AccessManagedRequiredDelay
error AccessManagedRequiredDelay(address caller, uint32 delay)
AccessManagedUnauthorized
error AccessManagedUnauthorized(address caller)
ContextAlreadySet
error ContextAlreadySet()
ContextNotSet
error ContextNotSet()
InvalidInitialization
error InvalidInitialization()
MathOverflowedMulDiv
error MathOverflowedMulDiv()
NotInitializing
error NotInitializing()
PlasmaVaultAddressCannotBeZero
error PlasmaVaultAddressCannotBeZero()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
UnauthorizedSender
error UnauthorizedSender()
WithdrawManagerInvalidFee
error WithdrawManagerInvalidFee(uint256 fee)
WithdrawManagerInvalidSharesToRelease
error WithdrawManagerInvalidSharesToRelease(uint256 amount_)
WithdrawManagerInvalidSharesToRelease
error WithdrawManagerInvalidSharesToRelease(uint256 sharesToRelease, uint256 shares, uint256 plasmaVaultBalanceOfUnallocatedShares)
WithdrawManagerInvalidTimestamp
error WithdrawManagerInvalidTimestamp(uint256 lastReleaseFundsTimestamp, uint256 newReleaseFundsTimestamp)
WithdrawManagerInvalidTimestamp
error WithdrawManagerInvalidTimestamp(uint256 timestamp)
WithdrawManagerZeroShares
error WithdrawManagerZeroShares()
WithdrawWindowLengthCannotBeZero
error WithdrawWindowLengthCannotBeZero()
creation bytecode
0x608060405234801561000f575f80fd5b5060405161202f38038061202f83398101604081905261002e91610229565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f811580156100775750825b90505f826001600160401b031660011480156100925750303b155b9050811580156100a0575080155b156100be5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ec57845460ff60401b1916680100000000000000001785555b6100f586610146565b831561013b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050610256565b61014e61015a565b610157816101aa565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101a857604051631afcd79f60e31b815260040160405180910390fd5b565b6101b261015a565b610157817ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b5f60208284031215610239575f80fd5b81516001600160a01b038116811461024f575f80fd5b9392505050565b611dcc806102635f395ff3fe608060405234801561000f575f80fd5b5060043610610163575f3560e01c80638d69a8e4116100c7578063daf635de1161007d578063dc71003911610063578063dc710039146102f5578063df7843ae1461032d578063fc415e9c14610340575f80fd5b8063daf635de146102da578063db99bddd146102ed575f80fd5b806399fd908c116100ad57806399fd908c146102ac578063bf7e214f146102bf578063d8b3b0b4146102c7575f80fd5b80638d69a8e41461026b5780638fb3603714610273575f80fd5b80632eb6be661161011c57806378ae0d8a1161010257806378ae0d8a1461023d5780637a9e5e4b1461024557806387ef0b8714610258575f80fd5b80632eb6be66146102075780635aa42e1c1461021a575f80fd5b8063103cd6c81161014c578063103cd6c8146101a25780631540aa89146101b757806325636a76146101bf575f80fd5b80630bdcc726146101675780630d37b5371461018c575b5f80fd5b61016f610353565b6040516001600160a01b0390911681526020015b60405180910390f35b61019461038a565b604051908152602001610183565b6101b56101b0366004611ad3565b610393565b005b6101946103fb565b6101d26101cd366004611afe565b610404565b604051610183919081518152602080830151908201526040808301511515908201526060918201519181019190915260800190565b6101b5610215366004611afe565b61053f565b61022d610228366004611b19565b610553565b6040519015158152602001610183565b610194610665565b6101b5610253366004611afe565b61066e565b6101b5610266366004611afe565b610731565b61019461081b565b61027b61084a565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610183565b6101b56102ba366004611ad3565b6108bd565b61016f6108d1565b6101946102d5366004611ad3565b610905565b6101b56102e8366004611ad3565b610b56565b6101b5610baf565b7f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d5392005464010000000090046001600160801b0316610194565b6101b561033b366004611b43565b610c7c565b6101b561034e366004611ad3565b610cce565b5f6103857feb1948ad07cc64342983d8dc0a37729fcf2d17dcf49a1e3705ff0fa01e7d9400546001600160a01b031690565b905090565b5f610385610df5565b6103a561039e610e1e565b5f36610e27565b670de0b6b3a76400008111156103ef576040517f264d9527000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6103f881611044565b50565b5f6103856110a0565b61042d60405180608001604052805f81526020015f81526020015f151581526020015f81525090565b5f6104366110c7565b90505f6104677f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d5392005463ffffffff1690565b6040805180820182525f80825260209182018190526001600160a01b03881681527f5f79d61c9d5139383097775e8e8bbfd941634f6602a18bee02d4f80d80c89f0082528281208351808501909452546001600160801b0381168452700100000000000000000000000000000000900463ffffffff169183019190915291925090506040518060800160405280825f01516001600160801b03168152602001826020015163ffffffff16815260200161052b836020015163ffffffff1686866110ee565b151581526020019390935250909392505050565b61054a61039e610e1e565b6103f881611131565b5f61055f61039e610e1e565b5f61058e7f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d5392005463ffffffff1690565b6040805180820182525f80825260209182018190526001600160a01b03881681527f5f79d61c9d5139383097775e8e8bbfd941634f6602a18bee02d4f80d80c89f0082528290208251808401909352546001600160801b0381168352700100000000000000000000000000000000900463ffffffff16908201819052919250906106209061061a6110c7565b846110ee565b8015610636575080516001600160801b03168411155b156106595761064585856111ea565b61064e846112e1565b60019250505061065f565b5f925050505b92915050565b5f6103856110c7565b5f610677610e1e565b90506106816108d1565b6001600160a01b0316816001600160a01b0316146106d6576040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016103e6565b816001600160a01b03163b5f03610724576040517fc2f31e5e0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016103e6565b61072d826113e5565b5050565b61073c61039e610e1e565b7f68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b00546001600160a01b03161561079e576040517f2f3873fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b00805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790556040516001600160a01b038216907f606f0da67080f7641fd59bdd017702d2842394e653866c86c69bcc879eea2a41905f90a250565b5f6103857f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d5392005463ffffffff1690565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080545f919074010000000000000000000000000000000000000000900460ff16610895575f6108b7565b7f8fb36037000000000000000000000000000000000000000000000000000000005b91505090565b6108c861039e610e1e565b6103f88161145e565b5f807ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005b546001600160a01b031692915050565b5f61091161039e610e1e565b335f61091b6110a0565b90505f826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097e9190611b63565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015291909116906370a0823190602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a019190611b7e565b6040517fc6e6f592000000000000000000000000000000000000000000000000000000008152600481018290529091505f906001600160a01b0385169063c6e6f59290602401602060405180830381865afa158015610a62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a869190611b7e565b90505f610ac37f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d539200546001600160801b036401000000009091041690565b90505f81118015610adc5750610ad98782611bc2565b82105b15610b24576040517f3c71a1e70000000000000000000000000000000000000000000000000000000081526004810182905260248101889052604481018390526064016103e6565b8315610b4857610b3d8785670de0b6b3a76400006114eb565b979650505050505050565b5f955050505050505b919050565b610b6161039e610e1e565b670de0b6b3a7640000811115610ba6576040517f264d9527000000000000000000000000000000000000000000000000000000008152600481018290526024016103e6565b6103f8816115e2565b610bba61039e610e1e565b5f610bc3611636565b90506001600160a01b038116610c05576040517f20ccb74a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c467f68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b00805473ffffffffffffffffffffffffffffffffffffffff19169055565b6040516001600160a01b038216907f6ca66738059b52d288c52b478cf0710166b7fb2801e9262a896cbacf620cba1d905f90a250565b610c8761039e610e1e565b42821015610c995761072d8282611657565b6040517f170e5403000000000000000000000000000000000000000000000000000000008152600481018390526024016103e6565b805f03610d07576040517fdd99f35900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d10610df5565b90508015610de4575f610d2c8383670de0b6b3a76400006114eb565b9050610d48610d39610e1e565b610d438386611bd5565b6117a3565b610d50610353565b6001600160a01b031663965c501e610d66610e1e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152306024820152604481018490526064015f604051808303815f87803b158015610dc9575f80fd5b505af1158015610ddb573d5f803e3d5ffd5b50505050505050565b61072d610def610e1e565b836117a3565b5f7f97f346e04a16e2eb518a1ffef159e6c87d3eaa2076a90372e699cdb1af4824005b54919050565b5f6103856118bb565b5f610e356004828486611be8565b610e3e91611c0f565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f87ef0b87000000000000000000000000000000000000000000000000000000001480610ed157507fffffffff0000000000000000000000000000000000000000000000000000000081167fdb99bddd00000000000000000000000000000000000000000000000000000000145b15610eda573393505b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005f80610f25610f086108d1565b8830610f1760045f8b8d611be8565b610f2091611c0f565b6118c4565b9150915081610ddb5763ffffffff8116156110075782547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000178355610f7f6108d1565b6001600160a01b03166394c7d7ee8888886040518463ffffffff1660e01b8152600401610fae93929190611c75565b5f604051808303815f87803b158015610fc5575f80fd5b505af1158015610fd7573d5f803e3d5ffd5b505084547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16855550610ddb9050565b6040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b03881660048201526024016103e6565b7f97f346e04a16e2eb518a1ffef159e6c87d3eaa2076a90372e699cdb1af4824008181556040518281527f07695b29775442d5e4836f94223aa3460d93774d5cb9e03119815f418e2a61c4906020015b60405180910390a15050565b5f7f1dc9c20e1601df7037c9a39067c6ecf51e88a43bc6cd86f115a2c29716b36600610e18565b5f7fc98a13e0ed3915d36fc042835990f5c6fbf2b2570bd63878dcd560ca2b767c00610e18565b5f828410156110fe57505f61112a565b5f6111098486611bd5565b905080421015801561111b5750844211155b801561112657508281105b9150505b9392505050565b6001600160a01b038116611171576040517f44a9387800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7feb1948ad07cc64342983d8dc0a37729fcf2d17dcf49a1e3705ff0fa01e7d9400805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831690811782556040519081527fb6e5732bd92fdae36e9586f87b8f366b4e97aeec538a023bfd5e7f2ce0cdc52690602001611094565b6001600160a01b0382165f9081527f5f79d61c9d5139383097775e8e8bbfd941634f6602a18bee02d4f80d80c89f006020526040902080546001600160801b031682116112dc5761123a82611a12565b815482905f906112549084906001600160801b0316611cb3565b82546101009290920a6001600160801b038181021990931691831602179091558254604080516001600160a01b0388168152928216602084015270010000000000000000000000000000000090910463ffffffff16908201527f5c3e92c4d5dedb8016f8d599bcbd4d3857bf6a1c4738f0bfb36488be7c25c9d8915060600160405180910390a15b505050565b7f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d539200805464010000000090046001600160801b031682116113b05761132482611a12565b8154829060049061134790849064010000000090046001600160801b0316611cb3565b82546101009290920a6001600160801b0381810219909316918316021790915582546040805163ffffffff8316815264010000000090920490921660208201527f5d187546fdce813e07dfd97f64081753987bb8962286a3ec1c60d5c7dbcc12e3925001611094565b6040517fa124f389000000000000000000000000000000000000000000000000000000008152600481018390526024016103e6565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602001611094565b805f03611497576040517f4ad6e37b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fc98a13e0ed3915d36fc042835990f5c6fbf2b2570bd63878dcd560ca2b767c008181556040518281527fe6030ec76050752a9d82f0e6dcffcc89e44ca21c69ff3e153e36893d926131ed90602001611094565b5f838302817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870982811083820303915050805f0361153e5783828161153457611534611cd2565b049250505061112a565b808411611577576040517f227bc15300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b7f1dc9c20e1601df7037c9a39067c6ecf51e88a43bc6cd86f115a2c29716b366008181556040518281527f9a1f74aeeb037eb3d45b22a56376dadd6ba6ded25ec3727e520415f6c76768a990602001611094565b5f80611640611a62565b90506001600160a01b038116610b51573391505090565b7f88d141dcaacfb8523e39ee7fba7c6f591450286f42f9c7069cc072812d539200805463ffffffff16838111156116c4576040517fbc1dc78b00000000000000000000000000000000000000000000000000000000815260048101829052602481018590526044016103e6565b6116cd84611a8a565b82547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9190911617825561170683611a12565b82546001600160801b0391909116640100000000027fffffffffffffffffffffffff00000000000000000000000000000000ffffffff9091161782557f5d187546fdce813e07dfd97f64081753987bb8962286a3ec1c60d5c7dbcc12e361176c85611a8a565b61177585611a12565b6040805163ffffffff90931683526001600160801b039091166020830152015b60405180910390a150505050565b5f6117ac6110c7565b90505f60405180604001604052806117c385611a12565b6001600160801b031681526020016117da84611a8a565b6117e342611a8a565b6117ed9190611cff565b63ffffffff9081169091526001600160a01b0386165f8181527f5f79d61c9d5139383097775e8e8bbfd941634f6602a18bee02d4f80d80c89f0060209081526040918290208551815483880151909616700100000000000000000000000000000000810273ffffffffffffffffffffffffffffffffffffffff199097166001600160801b03909216918217969096179091558251938452908301528101919091529091507f5c3e92c4d5dedb8016f8d599bcbd4d3857bf6a1c4738f0bfb36488be7c25c9d890606001611795565b5f610385611636565b6040516001600160a01b03848116602483015283811660448301527fffffffff00000000000000000000000000000000000000000000000000000000831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb700961300000000000000000000000000000000000000000000000000000000179052516119789190611d1b565b5f60405180830381855afa9150503d805f81146119b0576040519150601f19603f3d011682016040523d82523d5f602084013e6119b5565b606091505b50915091508115611a075760408151106119e757808060200190518101906119dd9190611d40565b9094509250611a07565b6020815110611a075780806020019051810190611a049190611d7d565b93505b505094509492505050565b5f6001600160801b03821115611a5e576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260806004820152602481018390526044016103e6565b5090565b5f807f68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b006108f5565b5f63ffffffff821115611a5e576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260206004820152602481018390526044016103e6565b5f60208284031215611ae3575f80fd5b5035919050565b6001600160a01b03811681146103f8575f80fd5b5f60208284031215611b0e575f80fd5b813561112a81611aea565b5f8060408385031215611b2a575f80fd5b8235611b3581611aea565b946020939093013593505050565b5f8060408385031215611b54575f80fd5b50508035926020909101359150565b5f60208284031215611b73575f80fd5b815161112a81611aea565b5f60208284031215611b8e575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561065f5761065f611b95565b8181038181111561065f5761065f611b95565b5f8085851115611bf6575f80fd5b83861115611c02575f80fd5b5050820193919092039150565b80357fffffffff000000000000000000000000000000000000000000000000000000008116906004841015611c6e577fffffffff00000000000000000000000000000000000000000000000000000000808560040360031b1b82161691505b5092915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f1916010192915050565b6001600160801b03828116828216039081111561065f5761065f611b95565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b63ffffffff818116838216019081111561065f5761065f611b95565b5f82518060208501845e5f920191825250919050565b80518015158114610b51575f80fd5b5f8060408385031215611d51575f80fd5b611d5a83611d31565b9150602083015163ffffffff81168114611d72575f80fd5b809150509250929050565b5f60208284031215611d8d575f80fd5b61112a82611d3156fea2646970667358221220991f061165563e31b8f4368a6cc276cdc32c8f3e6af7492afff7e1a727d9f45664736f6c634300081a003300000000000000000000000041cfe273c51e2c1391f9efa5ce7236810323eadc