1 tx
2 calls
constructor
constructor(address _admin, address _vault, address _asset, address _operator, address _feeReceiver)
functions
allPendingWithdrawers
viewfunction allPendingWithdrawers(bool _isRapid, uint256 _epoch) view returns (address[])
asset
viewfunction asset() view returns (address)
exchangePriceRate
viewfunction exchangePriceRate() view returns (uint256)
feeReceiver
viewfunction feeReceiver() view returns (address)
MF_ONE
viewfunction MF_ONE() view returns (address)
operator
viewfunction operator() view returns (address)
owner
viewfunction owner() view returns (address)
pendingWithdrawers
viewfunction pendingWithdrawers(uint256 _limit, uint256 _offset, bool _isRapid, uint256 _epoch) view returns (address[] result_)
pendingWithdrawersCount
viewfunction pendingWithdrawersCount(bool _isRapid, uint256 _epoch) view returns (uint256)
PRECISION
viewfunction PRECISION() view returns (uint256)
USDC
viewfunction USDC() view returns (address)
vault
viewfunction vault() view returns (address)
withdrawalRequest
viewfunction withdrawalRequest(address _user, bool _isRapid, uint256 _epoch) view returns (uint256)
withdrawalRequests
viewfunction withdrawalRequests(address[] _users, bool _isRapid, uint256 _epoch) view returns (uint256[] shares_)
cancelWithdraw
nonpayablefunction cancelWithdraw(address _user, bool _isRapid, uint256 _epoch)
confirmWithdrawal
nonpayablefunction confirmWithdrawal(address[] _users, uint256 _totalGasTokenAmount, bool _isRapid, uint256 _epoch, uint256 _fairExchangePrice)
refundWithdraw
nonpayablefunction refundWithdraw(address[] _users, bool _isRapid, uint256 _epoch)
registerWithdrawal
nonpayablefunction registerWithdrawal(address _user, uint256 _shares, bool _isRapid, uint256 _epoch)
renounceOwnership
nonpayablefunction renounceOwnership()
sweep
nonpayablefunction sweep(address _token)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateExchangePriceRate
nonpayablefunction updateExchangePriceRate(uint256 _newRate)
updateFeeReceiver
nonpayablefunction updateFeeReceiver(address _newFeeReceiver)
updateOperator
nonpayablefunction updateOperator(address _newOperator)
events
ConfirmWithdrawal
event ConfirmWithdrawal(address[] users, uint256[] amounts, bool isRapid)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RegisterWithdrawal
event RegisterWithdrawal(address indexed user, uint256 shares, bool isRapid)
Sweep
event Sweep(address token)
UpdateExchangePriceRate
event UpdateExchangePriceRate(uint256 oldRate, uint256 newRate)
UpdateFeeReceiver
event UpdateFeeReceiver(address oldFeeReceiver, address newFeeReceiver)
UpdateOperator
event UpdateOperator(address oldOperator, address newOperator)
errors
CallerNotOperator
error CallerNotOperator()
CallerNotVault
error CallerNotVault()
ExceededExchangePriceRate
error ExceededExchangePriceRate()
FailedCall
error FailedCall()
IncorrectState
error IncorrectState()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidAsset
error InvalidAsset()
InvalidFeeReceiver
error InvalidFeeReceiver()
InvalidLength
error InvalidLength()
InvalidNewOperator
error InvalidNewOperator()
InvalidShares
error InvalidShares()
InvalidVault
error InvalidVault()
InvalidWithdrawalUser
error InvalidWithdrawalUser()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60e0604090808252346101a45760a081611dd580380380916100218285610213565b8339810103126101a4576100348161024a565b6100406020830161024a565b61004b84840161024a565b91610064608061005d6060870161024a565b950161024a565b6001600160a01b039182169182156101fc575f549560018060a01b03199380858916175f5582895198167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a38185169687156101ed5750818616156101dc5781169182156101cb57169283156101ba579160049593916020959360a052816001541617600155600254161760025560c0528351928380926371f53e3560e11b82525afa9081156101b0575f9161017a575b5060805261012c60075551611b76908161025f82396080518181816105520152610ade015260a051818181610138015281816102090152818161040301528181610bb501528181610d62015261108d015260c05181818161047c01526112090152f35b90506020813d6020116101a8575b8161019560209383610213565b810103126101a457515f610117565b5f80fd5b3d9150610188565b82513d5f823e3d90fd5b8651633480121760e21b8152600490fd5b875163ba0cdec560e01b8152600490fd5b8751636448d6e960e11b8152600490fd5b630681d31960e51b8152600490fd5b8651631e4fbdf760e01b81525f6004820152602490fd5b601f909101601f19168101906001600160401b0382119082101761023657604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a45756fe604060808152600480361015610013575f80fd5b5f3560e01c90816301681a62146112665781630d8ea7791461123857816338d52e0f146111f5578163567a28eb14611057578163570ca7351461102f578163715018a614610fd857816389a3027114610faa5781638da5cb5b14610f835781639ba8da4d14610f305781639bcc73d514610e125781639bdd95a514610dea5781639e28aa1e14610b23578163a2869d3314610b01578163aaf5eb6814610ac7578163ac7475ed14610a33578163b3f0067414610a0b578163ba0c1d9e146109e2578163baf396a3146109c4578163c69bebe414610930578163d71da93a14610395578163e1e4a8201461034f578163e4fcba53146101f0578163f2fde38b1461016b575063fbfa77cf14610125575f80fd5b34610167575f36600319011261016757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b905034610167576020366003190112610167576101866113d1565b9061018f61189d565b6001600160a01b039182169283156101da5750505f548260018060a01b03198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b8234610167576101ff36611505565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811695909390923387900361033f57156102bd57815f5260209260068452610264865f2095831680966001915f520160205260405f2054151590565b156102af57505f956102899183885260058552868820868952855286882054916118c8565b8085526006825261029c838587206119e2565b5084526005815282842091845252812055005b85516336c1731960e01b8152fd5b9194815f526020928684526102e6865f2095821680966001915f520160205260405f2054151590565b1561032f575f969161030b9184895260038652878920878a52865287892054916118c8565b818652825261031c838587206119e2565b5084526003815282842091845252812055005b85516336c1731960e01b81528790fd5b855163edd7338f60e01b81528490fd5b82346101675760803660031901126101675761037e610391926103706113e7565b606435916024359035611777565b9051918291602083526020830190611538565b0390f35b82346101675760a036600319011261016757813567ffffffffffffffff8111610167576103c59036908401611495565b916024906103d16113e7565b600180546001600160a01b039560843595606435949093909288163303610920578151634f32ba0f60e11b81526020957f00000000000000000000000000000000000000000000000000000000000000008a169187818a81865afa908115610916575f916108e9575b50808a11156108c45760075490612710918201908183116108b2578b929161046191611739565b04105b6108a25785888c93855f955f915b6107c3575b50508c7f0000000000000000000000000000000000000000000000000000000000000000169b8a8d8951958680926370a0823160e01b9788835230908301525afa9384156107b9578c8b938f9293898f958d905f9a610778575b509160a49493915f935198899788966329edcc9560e21b885287015285015260448401523060648401523060848401525af1801561076e57898d938c938e9361073c575b5089519485938492835230908301525afa908115610732579085949392915f916106fd575b50610582929394506105789161054f91611718565b937f00000000000000000000000000000000000000000000000000000000000000008095611aa7565b968c51903561174c565b9761058d8c51611574565b965f855b61060b575b506106098c8c8f8d6105fe917f2db61eff9c6c40f57c0ab0bbe8ac5b538b61fee00af4651ea72995ed2e985c438f8f8f8f6105ed8151948594606086526105e0606087018a611538565b9186830390870152611414565b911515908301520390a15190611739565b9160025416906118c8565b005b8d518110156106f8579085828f8f8f8f968f938f908f94938f8d9c9b8a9f9e8f8d61066a946106779a6106418b6106729a6115de565b51169c8d9c156106de57610665945f5260058152815f20908d5f52525f2054611aa7565b611718565b9586916118c8565b6115de565b528a156106b257855f5260068d52610691818b5f206119e2565b50855f5260058d52895f20905f528c525f898120555b019091929394610591565b855f52848d526106c4818b5f206119e2565b50855f5260038d52895f20905f528c525f898120556106a7565b610665945f5260038152815f20908d5f52525f2054611aa7565b610596565b809295508a8092503d831161072b575b6107178183611447565b81010312610167575184939061054f61053a565b503d61070d565b86513d5f823e3d90fd5b9250935050813d8311610767575b6107548183611447565b8101031261016757888a898d935f610515565b503d61074a565b87513d5f823e3d90fd5b9950505093925093505084813d83116107b2575b6107968183611447565b810103126101675792519289918b918e918e91898c60a46104d1565b503d61078c565b88513d5f823e3d90fd5b9592909593919351861015610897575050861561085857825f52600689526108098d8d6107f3878a5f20936115de565b5116906001915f520160205260405f2054151590565b15610848578461083a81928f8f60058e895f525261082a898c5f20936115de565b51165f528c52885f20549061176a565b945b019188928e8c93610472565b85516336c1731960e01b81528a90fd5b825f528989526108708d8d6107f3878a5f20936115de565b15610848578461089181928f8f60038e895f525261082a898c5f20936115de565b9461083c565b91948e939193610477565b835163c8d1ba3d60e01b81528890fd5b8860118c634e487b7160e01b5f52525ffd5b60075490612710918203908282116108b2578b92916108e291611739565b0411610464565b90508781813d831161090f575b6109008183611447565b8101031261016757518c61043a565b503d6108f6565b85513d5f823e3d90fd5b815163a5523ee560e01b81528690fd5b82346101675760203660031901126101675761094a6113d1565b61095261189d565b6001600160a01b038181169384156109b6575060025492516001600160a01b0391841682168152911660208201527f2861448678f0be67f11bfb5481b3e3b4cfeb3acc6126ad60a05f95bfc653066690604090a16001600160a01b03191617600255005b8351633480121760e21b8152fd5b8234610167575f366003190112610167576020906007549051908152f35b82346101675780600319360112610167576103919061037e610a02611405565b6024359061165e565b8234610167575f3660031901126101675760025490516001600160a01b039091168152602090f35b823461016757602036600319011261016757610a4d6113d1565b610a5561189d565b6001600160a01b03818116938415610ab9575060015492516001600160a01b0391841682168152911660208201527ff7fa3b6184cd955c4d8db1b118f541d29ad3cde98ac41ffac1864077b27acc5b90604090a16001600160a01b03191617600155005b835163ba0cdec560e01b8152fd5b8234610167575f36600319011261016757602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b823461016757602090610b1c610b1636611505565b91611615565b9051908152f35b90503461016757606036600319011261016757803567ffffffffffffffff811161016757610b549036908301611495565b610b5c6113f6565b926044359260018060a01b039260019484600154163303610dda575f96865b610b8157005b8251881015610609578015610d0a57815f526006976020898152610bac875f20896107f385896115de565b15610cfa5780887f00000000000000000000000000000000000000000000000000000000000000001689610be085896115de565b51169b865f5260059c8d84528a5f208c610bfa888c6115de565b51165f5284528a5f2054610c0e91846118c8565b865f528252885f208a610c21868a6115de565b5116610c2c916119e2565b50855f528b8252885f208a610c41868a6115de565b51165f528252885f205f905589610c5885896115de565b51169b865f528252885f208a610c6e868a6115de565b51165f9081529083528990205489516317f7a13f60e01b81526001600160a01b03909d16898e0190815260208101919091528c91908290819060400103915a905f91f1998a1561076e57899a610ccb575b505087905b0197610b7b565b90809299503d8311610cf3575b610ce28183611447565b810103126101675787965f80610cbf565b503d610cd8565b86516336c1731960e01b81528690fd5b815f526020848152610d23865f20886107f38c886115de565b15610dca578888999188610d388b94886115de565b5116855f52610d876003918284528a5f208c610d54878c6115de565b51165f5284528a5f2054908c7f0000000000000000000000000000000000000000000000000000000000000000166118c8565b855f52878252610da6895f208b610d9e868b6115de565b5116906119e2565b50855f528152875f209089610dbb84896115de565b51165f52525f87812055610cc4565b85516336c1731960e01b81528590fd5b835163a5523ee560e01b81528390fd5b8234610167578060031936011261016757602090610b1c610e09611405565b602435906115f2565b90503461016757606036600319011261016757803567ffffffffffffffff9182821161016757366023830112156101675781810135928311610167576024820192600592602436918360051b01011161016757610e6d6113f6565b92604435928215610f225750610e8282611574565b945f5b838110610ea1578751602080825281906103919082018a611414565b6001908615610ee957855f526020848152895f2090838060a01b03610ecf610eca858a896115a6565b6115ca565b165f5252885f2054610ee1828a6115de565b525b01610e85565b855f52602060038152895f2090838060a01b03610f0a610eca858a896115a6565b165f5252885f2054610f1c828a6115de565b52610ee3565b865163251f56a160e21b8152fd5b905034610167576020366003190112610167577f0cb8015ebf85599d66f3d9854f9c653d3ee533ac89f4e6f87dc197d49f8d1a3d903591610f6f61189d565b6007548151908152836020820152a1600755005b8234610167575f366003190112610167575f5490516001600160a01b039091168152602090f35b8234610167575f366003190112610167576020905173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488152f35b34610167575f36600319011261016757610ff061189d565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b8234610167575f3660031901126101675760015490516001600160a01b039091168152602090f35b8234610167576080366003190112610167576110716113d1565b906024359161107e6113e7565b6001600160a01b0391906064357f0000000000000000000000000000000000000000000000000000000000000000841633036111e55785156111d557811561115b57805f526006602052845f20906110e785851680936001915f520160205260405f2054151590565b61114b577fd6f0288f08233808252b21b601334769d771b0051462006ae10645eb8a8e1114969750805f52600660205261112382875f20611979565b505f526005602052845f20905f5260205285845f20555b8351958652151560208601521692a2005b8551630508c93960e41b81528890fd5b805f5286602052845f209061118185851680936001915f520160205260405f2054151590565b61114b577fd6f0288f08233808252b21b601334769d771b0051462006ae10645eb8a8e11149697815f526020526111ba82875f20611979565b505f526003602052845f20905f5260205285845f205561113a565b8451636edcc52360e01b81528790fd5b845163edd7338f60e01b81528790fd5b8234610167575f36600319011261016757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610167575f366003190112610167576020905173238a700ed6165261cf8b2e544ba797bc11e466ba8152f35b9050346101675760209081600319360112610167576112836113d1565b61128b61189d565b83516370a0823160e01b815230818401526001600160a01b039190911691908381602481865afa8015610916575f906113a2575b6112cb915033846118c8565b47806112fd575b50507f807273efecfbeb7ae7d3a2189d1ed5a7db80074eed86e7d80b10bb925cd1db739251908152a1005b804710611385575f80808093335af1903d1561137d573d9167ffffffffffffffff831161136a5785519261133a601f8201601f1916870185611447565b83523d5f8685013e5b6112d25791509192825115155f1461135d57505080519101fd5b5163d6bda27560e01b8152fd5b604182634e487b7160e01b5f525260245ffd5b606091611343565b60449250844790519263cf47918160e01b84528301526024820152fd5b508381813d83116113ca575b6113b88183611447565b81010312610167576112cb90516112bf565b503d6113ae565b600435906001600160a01b038216820361016757565b60443590811515820361016757565b60243590811515820361016757565b60043590811515820361016757565b9081518082526020808093019301915f5b828110611433575050505090565b835185529381019392810192600101611425565b90601f8019910116810190811067ffffffffffffffff82111761146957604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116114695760051b60200190565b9080601f830112156101675760209082356114af8161147d565b936114bd6040519586611447565b81855260208086019260051b82010192831161016757602001905b8282106114e6575050505090565b81356001600160a01b03811681036101675781529083019083016114d8565b6060906003190112610167576004356001600160a01b038116810361016757906024358015158103610167579060443590565b9081518082526020808093019301915f5b828110611557575050505090565b83516001600160a01b031685529381019392810192600101611549565b9061157e8261147d565b61158b6040519182611447565b828152809261159c601f199161147d565b0190602036910137565b91908110156115b65760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101675790565b80518210156115b65760209160051b010190565b15611606575f52600660205260405f205490565b5f52600460205260405f205490565b91901561163d575f52600560205260405f209060018060a01b03165f5260205260405f205490565b5f52600360205260405f209060018060a01b03165f5260205260405f205490565b156116bf575f526020600660205260405f209060405180928391602082549182815201915f5260205f20935f905b8282106116a5575050506116a292500382611447565b90565b85548452600195860195879550938101939091019061168c565b5f526020600460205260405f209060405180928391602082549182815201915f5260205f20935f905b8282106116fe575050506116a292500382611447565b8554845260019586019587955093810193909101906116e8565b9190820391821161172557565b634e487b7160e01b5f52601160045260245ffd5b8181029291811591840414171561172557565b8115611756570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161172557565b9192831561188b57805f52600660205260405f20545b808310801590611883575b61187957826117a691611718565b92808411611871575b506117b98361147d565b936040916117ca6040519687611447565b8486526117d68561147d565b60209290601f190136888501375f5b8681106117f6575050505050505090565b600190821561183c57835f526006855261181c865f20611816838a61176a565b90611964565b838060a01b0391549060031b1c16611834828b6115de565b525b016117e5565b835f5260048552611853865f20611816838a61176a565b838060a01b0391549060031b1c1661186b828b6115de565b52611836565b92505f6117af565b5050505050606090565b508315611798565b805f52600460205260405f205461178d565b5f546001600160a01b031633036118b057565b60405163118cdaa760e01b8152336004820152602490fd5b60405163a9059cbb60e01b60208083019182526001600160a01b0394909416602483015260448083019590955293815290925f91611907606482611447565b519082855af115611959575f513d61195057506001600160a01b0381163b155b61192e5750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415611927565b6040513d5f823e3d90fd5b80548210156115b6575f5260205f2001905f90565b5f8281526001820160205260409020546119dc57805490600160401b82101561146957826119c76119b1846001809601855584611964565b819391549060031b91821b915f19901b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f2054908115155f14611a9f575f19918083018181116117255782549084820191821161172557818103611a6a575b50505080548015611a5657820191611a388383611964565b909182549160031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611a8a611a7a6119b19386611964565b90549060031b1c92839286611964565b90555f528460205260405f20555f8080611a20565b505050505f90565b90915f198383099280830292838086109503948086039514611b335784831115611b1b5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050906116a2925061174c56fea2646970667358221220d40fa6280282dca5210b0d7341546fad9adc3f0be692138f1e298391e340608164736f6c634300081900330000000000000000000000008fa9aa69a6e94c1cd49fbf214c833b2911d02553000000000000000000000000c9ecc74110850168fc7373c2586e5a525b02b02f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c8cbde5d482b6b1dd330992fe7b29ea9106aa92d000000000000000000000000c554747ffde2e378a562a09f2f72f4121c1d493d