0 txs
1 call
constructor
constructor(address _initialRescuer, address _initialExecutor, uint32 _periodDuration, uint32 _nBuckets, uint128 _cap)
functions
bucketIndex
viewfunction bucketIndex() view returns (uint32)
buckets
viewfunction buckets(uint256) view returns (uint256)
cap
viewfunction cap() view returns (uint128)
currentUtilisation
viewfunction currentUtilisation() view returns (uint256 amount)
executor
viewfunction executor() view returns (address)
explicitFunctionAccess
viewfunction explicitFunctionAccess(address, bytes4) view returns (bool)
inRescueMode
viewfunction inRescueMode() view returns (bool)
MAX_BUCKETS
viewfunction MAX_BUCKETS() view returns (uint32)
nBuckets
viewfunction nBuckets() view returns (uint32)
periodDuration
viewfunction periodDuration() view returns (uint32)
rescuer
viewfunction rescuer() view returns (address)
secondsPerBucket
viewfunction secondsPerBucket() view returns (uint32)
acceptExecutor
nonpayablefunction acceptExecutor()
acceptRescuer
nonpayablefunction acceptRescuer()
preCheck
nonpayablefunction preCheck(address, uint256 amount)
proposeNewExecutor
nonpayablefunction proposeNewExecutor(address account)
proposeNewRescuer
nonpayablefunction proposeNewRescuer(address account)
setConfig
nonpayablefunction setConfig(uint32 _periodDuration, uint32 _nBuckets, uint128 _cap)
setExplicitAccess
nonpayablefunction setExplicitAccess(address allowedCaller, tuple[] access)
setRescueMode
nonpayablefunction setRescueMode(bool value)
updateCap
nonpayablefunction updateCap(uint128 newCap)
events
CapSet
event CapSet(uint128 cap)
ConfigSet
event ConfigSet(uint32 periodDuration, uint32 nBuckets, uint128 cap)
ExplicitAccessSet
event ExplicitAccessSet(address indexed account, bytes4 indexed fnSelector, bool indexed value)
NewExecutorAccepted
event NewExecutorAccepted(address indexed oldExecutor, address indexed newExecutor)
NewExecutorProposed
event NewExecutorProposed(address indexed oldExecutor, address indexed oldProposedExecutor, address indexed newProposedExecutor)
NewRescuerAccepted
event NewRescuerAccepted(address indexed oldRescuer, address indexed newRescuer)
NewRescuerProposed
event NewRescuerProposed(address indexed oldRescuer, address indexed oldProposedRescuer, address indexed newProposedRescuer)
RescueModeSet
event RescueModeSet(bool indexed value)
errors
CapBreached
error CapBreached(uint256 totalRequested, uint128 cap)
ExpectedNonZero
error ExpectedNonZero()
InvalidAccess
error InvalidAccess()
InvalidAddress
error InvalidAddress()
InvalidParam
error InvalidParam()
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001bf938038062001bf98339810160408190526200003491620002fd565b84846001600160a01b0382166200005e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038116620000865760405163e6c4247b60e01b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031603620000b95760405163e6c4247b60e01b815260040160405180910390fd5b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000f2838383620000fd565b5050505050620003f5565b8263ffffffff166000036200012557604051631536c32360e21b815260040160405180910390fd5b600062000133838562000393565b63ffffffff1611156200015957604051633494a40d60e21b815260040160405180910390fd5b610fa063ffffffff831611156200018357604051633494a40d60e21b815260040160405180910390fd5b6005805463ffffffff808516600160801b0263ffffffff60801b199092169190911790915560048054918516600160a01b0263ffffffff60a01b19909216919091179055620001d38284620003b9565b600580547fffffffff00000000ffffffffffffffff0000000000000000000000000000000063ffffffff93909316600160a01b02929092167fffffffff0000000000000000ffffffff00000000000000000000000000000000909216919091176001600160801b03831617905560005b8263ffffffff1681101562000276576001600682610fa081106200026b576200026b620003df565b015560010162000243565b506040805163ffffffff8581168252841660208201526001600160801b0383168183015290517f9ecb31d34ba64f7242f8e6c17081f9236985a7bc47951f5ded0c975c43a4d8b59181900360600190a1505050565b80516001600160a01b0381168114620002e357600080fd5b919050565b805163ffffffff81168114620002e357600080fd5b600080600080600060a086880312156200031657600080fd5b6200032186620002cb565b94506200033160208701620002cb565b93506200034160408701620002e8565b92506200035160608701620002e8565b60808701519092506001600160801b03811681146200036f57600080fd5b809150509295509295909350565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff80841680620003ad57620003ad6200037d565b92169190910692915050565b600063ffffffff80841680620003d357620003d36200037d565b92169190910492915050565b634e487b7160e01b600052603260045260246000fd5b6117f480620004056000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80636ae845ec116100d8578063b470aade1161008c578063d9a349c111610066578063d9a349c1146103a3578063daeccc79146103b6578063fc2c0c40146103e457600080fd5b8063b470aade14610348578063bfccf0ec14610370578063c34c08e51461038357600080fd5b806393edc024116100bd57806393edc024146103015780639adaafbf146103145780639b51fb0d1461032757600080fd5b80636ae845ec146102cd5780638112c4af146102f957600080fd5b80631f2114051161012f57806338a631831161011457806338a631831461024d578063421a835f146102925780635eaf665d146102a557600080fd5b80631f21140514610208578063355274ea1461021057600080fd5b806307feef6e1161016057806307feef6e146101a457806315aaea17146101e25780631810fe7f146101eb57600080fd5b8063032ef9011461017c57806307f184f114610191575b600080fd5b61018f61018a3660046113eb565b6103ec565b005b61018f61019f366004611431565b61049b565b6005546101c890700100000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6101c8610fa081565b6003546101f89060ff1681565b60405190151581526020016101d9565b61018f6105d3565b60055461022c906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016101d9565b60005461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d9565b61018f6102a0366004611480565b6106f2565b6005546101c89074010000000000000000000000000000000000000000900463ffffffff1681565b6005546101c8907801000000000000000000000000000000000000000000000000900463ffffffff1681565b61018f610766565b61018f61030f3660046114c3565b6108a6565b61018f6103223660046114ed565b610af4565b61033a610335366004611508565b610bcd565b6040519081526020016101d9565b6004546101c89074010000000000000000000000000000000000000000900463ffffffff1681565b61018f61037e366004611521565b610be5565b60015461026d9073ffffffffffffffffffffffffffffffffffffffff1681565b61018f6103b1366004611431565b610dec565b6101f86103c43660046115d7565b600260209081526000928352604080842090915290825290205460ff1681565b61033a610f31565b60005473ffffffffffffffffffffffffffffffffffffffff16331461043d576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051811515907f18f4a9a726c72020fd959c636d2fd464c6cefe90afeaea3c830b971614cf70b690600090a2600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ec576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610539576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff808416926101009004169033907f374d23b359cab0f8963c5c1715a6de7974f53af00aecc27de50d93906b70943e90600090a46003805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b60045473ffffffffffffffffffffffffffffffffffffffff163314610624576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff163303610675576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154604051339173ffffffffffffffffffffffffffffffffffffffff16907fe963dc9c0d2165b080440a5d2665566142f2426b1ea15f3da8390b0fd336b06490600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600480549091169055565b610720336000357fffffffff0000000000000000000000000000000000000000000000000000000016611025565b610756576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107618383836110e9565b505050565b600354610100900473ffffffffffffffffffffffffffffffffffffffff1633146107bc576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015473ffffffffffffffffffffffffffffffffffffffff16330361080d576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff07131157ebea15896dc89264eb9a7572e67cc9fad6b855015730fcec10704e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600380547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169055565b6108d4336000357fffffffff0000000000000000000000000000000000000000000000000000000016611025565b61090a576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000906109389074010000000000000000000000000000000000000000900463ffffffff1642611668565b60055490915063ffffffff78010000000000000000000000000000000000000000000000008204811691700100000000000000000000000000000000900481169083168214610a2457600061098e828486611367565b90505b8363ffffffff168110156109d757600160068363ffffffff1683600101816109bb576109bb61160a565b06610fa081106109cd576109cd61167c565b0155600101610991565b50600580547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000063ffffffff8616021790555b600084610a3083611393565b610a3a91906116ab565b6005549091506fffffffffffffffffffffffffffffffff16811115610aae576005546040517fe0594838000000000000000000000000000000000000000000000000000000008152600481018390526fffffffffffffffffffffffffffffffff909116602482015260440160405180910390fd5b8460068363ffffffff168663ffffffff1681610acc57610acc61160a565b0663ffffffff16610fa08110610ae457610ae461167c565b0180549091019055505050505050565b610b22336000357fffffffff0000000000000000000000000000000000000000000000000000000016611025565b610b58576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83169081179091556040519081527ff4908ebd3d07d72528127c80ce926b5dc3cf23216a6daeffcccf763842c07ded9060200160405180910390a150565b600681610fa08110610bde57600080fd5b0154905081565b610c13336000357fffffffff0000000000000000000000000000000000000000000000000000000016611025565b610c49576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316610c96576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915260008082526020820152819060005b82811015610de457848482818110610cc957610cc961167c565b905060400201803603810190610cdf91906116be565b91508160200151151582600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff167ff5736e75de2c751f775d4c5ed517289f77074f8c337f451ba4c0c3ed1dd7f9ad60405160405180910390a460208281015173ffffffffffffffffffffffffffffffffffffffff8816600090815260028352604080822086517fffffffff000000000000000000000000000000000000000000000000000000001683529093529190912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055610ddd81611740565b9050610caf565b505050505050565b610e1a336000357fffffffff0000000000000000000000000000000000000000000000000000000016611025565b610e50576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610e9d576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045460015460405173ffffffffffffffffffffffffffffffffffffffff8085169381169216907f4857570a90fe0a0fc580e89a287e77576141ac8e2e8b3710cd26db44f44156c190600090a4600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6005546000908190610f619074010000000000000000000000000000000000000000900463ffffffff1642611668565b60055490915063ffffffff780100000000000000000000000000000000000000000000000082048116917001000000000000000000000000000000009004166000610fab82611393565b90508263ffffffff168463ffffffff161461101d576000610fcd838587611367565b90505b8463ffffffff1681101561101b57600160068463ffffffff168360010181610ffa57610ffa61160a565b06610fa0811061100c5761100c61167c565b01540390910390600101610fd0565b505b949350505050565b60035460009060ff1615611057575060005473ffffffffffffffffffffffffffffffffffffffff8381169116146110e3565b60015473ffffffffffffffffffffffffffffffffffffffff848116911614806110d2575073ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b156110df575060016110e3565b5060005b92915050565b8263ffffffff16600003611129576040517f54db0c8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006111358385611778565b63ffffffff161115611173576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fa063ffffffff831611156111b5576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005805463ffffffff808516700100000000000000000000000000000000027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff909216919091179091556004805491851674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff909216919091179055611251828461179b565b600580547fffffffff00000000ffffffffffffffff0000000000000000000000000000000063ffffffff939093167401000000000000000000000000000000000000000002929092167fffffffff0000000000000000ffffffff00000000000000000000000000000000909216919091176fffffffffffffffffffffffffffffffff831617905560005b8263ffffffff16811015611309576001600682610fa081106112ff576112ff61167c565b01556001016112db565b506040805163ffffffff8581168252841660208201526fffffffffffffffffffffffffffffffff83168183015290517f9ecb31d34ba64f7242f8e6c17081f9236985a7bc47951f5ded0c975c43a4d8b59181900360600190a1505050565b600083820363ffffffff808216908516106113825783611384565b805b63ffffffff1695945050505050565b6000805b8263ffffffff168110156113c857600681610fa081106113b9576113b961167c565b01549190910190600101611397565b5063ffffffff909116900390565b803580151581146113e657600080fd5b919050565b6000602082840312156113fd57600080fd5b611406826113d6565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146113e657600080fd5b60006020828403121561144357600080fd5b6114068261140d565b803563ffffffff811681146113e657600080fd5b80356fffffffffffffffffffffffffffffffff811681146113e657600080fd5b60008060006060848603121561149557600080fd5b61149e8461144c565b92506114ac6020850161144c565b91506114ba60408501611460565b90509250925092565b600080604083850312156114d657600080fd5b6114df8361140d565b946020939093013593505050565b6000602082840312156114ff57600080fd5b61140682611460565b60006020828403121561151a57600080fd5b5035919050565b60008060006040848603121561153657600080fd5b61153f8461140d565b9250602084013567ffffffffffffffff8082111561155c57600080fd5b818601915086601f83011261157057600080fd5b81358181111561157f57600080fd5b8760208260061b850101111561159457600080fd5b6020830194508093505050509250925092565b80357fffffffff00000000000000000000000000000000000000000000000000000000811681146113e657600080fd5b600080604083850312156115ea57600080fd5b6115f38361140d565b9150611601602084016115a7565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000826116775761167761160a565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b808201808211156110e3576110e3611639565b6000604082840312156116d057600080fd5b6040516040810181811067ffffffffffffffff8211171561171a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052611726836115a7565b8152611734602084016113d6565b60208201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361177157611771611639565b5060010190565b600063ffffffff8084168061178f5761178f61160a565b92169190910692915050565b600063ffffffff808416806117b2576117b261160a565b9216919091049291505056fea2646970667358221220629677e63a1621bf1ea31058ad3cac4da1d464b05ac844ec68dbfdc4d95b3ecc64736f6c634300081300330000000000000000000000009f90430179d9b67341bfa50559bc7b8e35629f1b000000000000000000000000b1e8ab0a81aadf632a653e46caeda1593d71d1430000000000000000000000000000000000000000000000000000000000016da0000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000069e10de76676d0800000