Witness

Verified contract

Active on Base with 97,579 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
--
0xd311ccfe0148c19f03fabee3c7664f0c0c1e33d78cb7a5ac75938fe5636d1c6b
0x7e004063d8282598c4c196329f2ddbbdeb13f622a694dd02f499d9075d261ae9
0xfbd45c8abc9d875a39a68d161ff83e400fbb32fd9f5dcd1b4f3947eec8943b8e
0xa29801a5c0ddc75b64c46ccd9360e1443b8714cde552c78cb3d0f3f329095442
0x044deb7f03bf9ac4890b06995b3c427fed3109f341a8fe18cca2e502c9ef0512
0xee5ded4690a05655ee68a22dd02dc46dffc9cf6de4dd64be60002fbcd61301f5
0xa496f16fc6db6514f3b0077f45d8a972d8ddedaef98cb3f9847251d2dec8df08
0x0dd4d592038853eb90d0b8ba8bc16d4291200ee0ce3f77788629139fd34096c9
0x274ea1386d52c48d33bc35b4f8df02817e1a1ab393bab071207a8492152fa6c6
0x54640f822240520964eb80d474fd6a97cd5bae89ef91a3f8525fe0f0977f66f7

Functions
Getter at block 22734954
UPDATER_ROLE(view returns (uint256)
1
currentRoot(view returns (bytes32)
0x8f9631498f369c1685b16360c7c762997d2ebb25d4db1ad1cec33f11bd666279
getCurrentTreeState(view returns (bytes32uint256)
(0x8f9631498f369c1685b16360c7c762997d2ebb25d4db1ad1cec33f11bd666279, 31294590)
getLastUpdateBlock(view returns (uint256)
22734914
getLastUpdateTime(view returns (uint256)
1732259175
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(