Lockers
Lockers
This library manages a custom storage implementation for a queue that tracks current lockers. The "sentinel" storage slot for this data structure, always passed in as IPoolManager.LockData storage self, stores not just the current length of the queue but also the global count of non-zero deltas across all lockers. The values of the data structure start at OFFSET, and each value is a locker address.
LOCK_DATA_SLOT
uint256 LOCK_DATA_SLOT
struct LockData { /// @notice The current number of active lockers uint128 length; /// @notice The total number of nonzero deltas over all active + completed lockers uint128 nonzeroDeltaCount; }
LOCKERS_SLOT
uint256 LOCKERS_SLOT
LOCKER_STRUCT_SIZE
uint256 LOCKER_STRUCT_SIZE
HOOK_ADDRESS_SLOT
uint256 HOOK_ADDRESS_SLOT
NONZERO_DELTA_COUNT_OFFSET
uint256 NONZERO_DELTA_COUNT_OFFSET
LENGTH_MASK
uint256 LENGTH_MASK
push
function push(address locker, address lockCaller) internal
Pushes a locker onto the end of the queue, and updates the sentinel storage slot.
lockData
function lockData() internal view returns (uint128 l, uint128 nonzeroDeltaCount)
length
function length() internal view returns (uint128 l)
pop
function pop() internal
Pops a locker off the end of the queue. Note that no storage gets cleared.
getLocker
function getLocker(uint256 i) internal view returns (address locker)
getLockCaller
function getLockCaller(uint256 i) internal view returns (address locker)
getCurrentLocker
function getCurrentLocker() internal view returns (address)
getCurrentLockCaller
function getCurrentLockCaller() internal view returns (address)
incrementNonzeroDeltaCount
function incrementNonzeroDeltaCount() internal
decrementNonzeroDeltaCount
function decrementNonzeroDeltaCount() internal
getCurrentHook
function getCurrentHook() internal view returns (contract IHooks currentHook)
getHook
function getHook(uint256 i) internal view returns (address hook)
setCurrentHook
function setCurrentHook(contract IHooks currentHook) internal returns (bool set)
clearCurrentHook
function clearCurrentHook() internal