Witness

Verified contract

Active on Base with 85,891 txns
Deployed by via 0xe986dfdf at 10576562
Slot
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
ERC-20
--
ERC-20
--
ERC-20
--
ERC-20
--
0xb8133a441099fefb807a76332db589a3f5cd7b93213a57dfb33bda616a9d0a3a
0x15da8038ea7cd7fa46d0ac592395ceeae582194c5e84da81d75076c8f6563dcf
0x0fc7f7d0a226757d473c9503ee87d73760a94213a36adece0e3000f2e3e1672c
0x9cc113696e80b505fbee7285ef23a836677b71f0610a2100f78389927ab089aa
0x18ffee6ad164e6ea8bacd92b7e0d89b42096a49e78eec8fe8f13a03cc1e912e5
0x3afce3cec622db0bf65511fd336738ee9072dd8bd0e3096c4c5b1622453d9848
0xb0df7527bec4967ff098b02c4aeb61d21477410de54e56248a987fd7a01ba464
0xb2f64ead9dae099be96c705016cd22c43b00c0be45d053efbb4871e97bdf5c7e
0x3597f2e555f9f3d1f9b95c0dcbeba92d7121f17dbdaaff8416055aac7b24feb5
0x701ac551e960d9f37af7adb98caed163fab04742a133c990b0ef9e30fbb5470e

Functions
Getter at block 21823133
UPDATER_ROLE(view returns (uint256)
1
currentRoot(view returns (bytes32)
0x4755a27f70b5fb6035ed6d5ccb8115ee76547a78d4314dc677862b3bcce204f2
getCurrentTreeState(view returns (bytes32uint256)
(0x4755a27f70b5fb6035ed6d5ccb8115ee76547a78d4314dc677862b3bcce204f2, 30868720)
getLastUpdateBlock(view returns (uint256)
21823053
getLastUpdateTime(view returns (uint256)
1730435453
owner(view returns (address result)
0x10e859116a6388a7d0540a1bc1247ae599d24f16
Read-only
hasAllRoles(address useruint256 rolesview returns (bool)
hasAnyRole(address useruint256 rolesview returns (bool)
ownershipHandoverExpiresAt(address pendingOwnerview returns (uint256 result)
rolesOf(address userview returns (uint256 roles)
rootCache(bytes32 rootview returns (uint256)
rootInfo(bytes32 rootview returns (struct RootInfo)
safeVerifyProof(struct Proof proofview returns (bool isValid)
verifyProof(struct Proof proofview 
State-modifying
cancelOwnershipHandover(payable 
completeOwnershipHandover(address pendingOwnerpayable 
grantRoles(address useruint256 rolespayable 
renounceOwnership(payable 
renounceRoles(uint256 rolespayable 
requestOwnershipHandover(payable 
revokeRoles(address useruint256 rolespayable 
transferOwnership(address newOwnerpayable 
updateTreeRoot(uint256 newSizebytes32[] oldRangebytes32[] newRange
Events
OwnershipHandoverCanceled(address indexed pendingOwner
OwnershipHandoverRequested(address indexed pendingOwner
OwnershipTransferred(address indexed oldOwneraddress indexed newOwner
RolesUpdated(address indexed useruint256 indexed roles
RootUpdated(bytes32 indexed newRootuint256 indexed newSize
Constructor
constructor(address owner
Fallback and receive
fallback(
Errors
AlreadyInitialized(
InvalidProofBadLeftRange(
InvalidProofBadRightRange(
InvalidProofLeafIdxOutOfBounds(
InvalidProofUnrecognizedRoot(
InvalidUpdateNewRangeMismatchWrongLength(
InvalidUpdateOldRangeMismatchShouldBeEmpty(
InvalidUpdateOldRangeMismatchWrongCurrentRoot(
InvalidUpdateOldRangeMismatchWrongLength(
InvalidUpdateTreeSizeMustGrow(
NewOwnerIsZeroAddress(
NoHandoverRequest(
Unauthorized(