Bytecode-generated storage layout

We've generated a storage layout (with no variable labels) from this contract's bytecode. We've also started a backfill to track the inferred variables.

ERC1967Proxy

Verified contract

Proxy

Active on Base with 1,680 txns
Deployed by via 0xcecd9924 at 20832011
Slot
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
-
variable spans 49 additional slots
ERC-20
Value $100,018.09
0xd2fa570d3f6926fa00a31fc81da076206318e9e851acf2730f27dd4bbb9e3631
0x04149804679acca27a0f27fbb840e1dc36d9ffa80ac3a2fecc56429ed2088265
0xa113253bd49bb6dfe5b4077fa924b949f0109ec75d3f8845ce66030d0db8ed0e
0xfa3c2296df51af1eb6114bb31c980c5741df90295a01b82b13718c2a7f33d04e
0x048b85340aa364c456c7f1d0fbe5797be9cf3fdc5232d1c67cb280a4e0c8b1a4
0xfac510f548de9b9e9f850db342846b636a5780caacf94df98c7f0804f9b25a82
0x3513c593b6142fb98cbe4d484578d7c9bd4d3a2d0f5b9c7d9a4bb97c46a3b611
0xee457dac378a20fe2c4d9d3187419104e7a496ba7dbc0602400cd6dbcfa9d08b
0x3233abcc2bf9d3c1035ce66f55b4a8bbb9db21796515cf989b056db453c3f9d1
0x8acab76b37b11a8aa9f9883b9f01de2719f8683403e6dd6c204f78d234c9889d

Functions
Getter at block 22904557
DEFAULT_ADMIN_ROLE(view returns (bytes32)
0x0000000000000000000000000000000000000000000000000000000000000000
EARLY_UNSTAKE_BASE_FEE_PERCENTAGE(view returns (uint32)
15000000
UPGRADE_ADMIN(view returns (bytes32)
0xab0a819bf57ef52a248771805d8714ae8e073962cc1b48f9667beb971fb3a2c7
UPGRADE_INTERFACE_VERSION(view returns (string)
5.0.0
getStakingTiers(view returns (struct StakingTier[])
[(7776000, 110, 50), (15552000, 130, 70), (31104000, 150, 100)]
getTokenStakerCount(view returns (uint256)
337
getTreasury(view returns (address)
0x61d6e794782129715713eb44426082ef092a2174
getVaultStakerCount(view returns (uint256)
998
 
proxiableUUID(view returns (bytes32)
treasury(view returns (address)
0x61d6e794782129715713eb44426082ef092a2174
vaultVesting(view returns (address)
0x3fa190499ee2fea9b9c4d3bfefb5c868fa72ded4
zapToken(view returns (address)
0xf56b3b3972f2f154555a0b62ff5a22b7b2a3c90b
Read-only
calculateEarlyUnstakeFee(uint256 tokensStakeduint256 timeStakeduint256 expiresAtuint256 timeNowpure returns (uint256)
checkIfWithinGracePeriod(uint256 expiresAtuint256 stakeDurationuint256 timeNowpure returns (bool)
getRoleAdmin(bytes32 roleview returns (bytes32)
getStakingTier(uint32 indexview returns (struct StakingTier)
getTokenStake(address useruint32 tierIndexview returns (struct TokenStake)
getTokenStakerByIndex(uint256 indexview returns (address)
getTokenStakerIdFromAddress(address userview returns (uint256)
getUserTokenStakes(address userview returns (struct TokenStake[])
getUserVaultStakes(address userview returns (struct VaultStake[])
getVaultStake(address useruint32 tierIndexview returns (struct VaultStake)
getVaultStakerByIndex(uint256 indexview returns (address)
getVaultStakerIdFromAddress(address userview returns (uint256)
hasRole(bytes32 roleaddress accountview returns (bool)
stakingTiers(uint32view returns (uint256 durationuint32 vaultBonusPoolMultiplieruint32 standardPoolNegativeMultiplier)
supportsInterface(bytes4 interfaceIdview returns (bool)
tokenStaker(uint256view returns (address walletbool isActive)
tokenStakerId(addressview returns (uint256)
tokenStakes(addressuint32view returns (uint32 tierIndexuint256 tokensStakeduint256 stakedAtuint256 unstakedAtuint256 expiresAtbool autoRelock)
userTokenStakeCount(addressview returns (uint32)
userVaultStakeCount(addressview returns (uint32)
vaultStaker(uint256view returns (address walletbool isActive)
vaultStakerId(addressview returns (uint256)
vaultStakes(addressuint32view returns (uint32 tierIndexuint32 vaultsStakeduint256 stakedAtuint256 expiresAtuint256 unstakedAtbool autoRelock)
State-modifying
grantRole(bytes32 roleaddress account
initialize(address _zapTokenaddress _vaultVestingaddress multisigaddress _treasury
renounceRole(bytes32 roleaddress callerConfirmation
restakeTokens(uint32 tierIndex
restakeVaults(uint32 tierIndex
revokeRole(bytes32 roleaddress account
setTreasuryAddress(address newTreasury
stakeTokens(uint32 tierIndexuint256 amountToStakebool autoRelock
stakeVaults(uint32 tierIndexuint32 amountToStakebool autoRelock
unstakeTokens(uint32 tierIndex
unstakeVaults(uint32 tierIndex
upgradeToAndCall(address newImplementationbytes datapayable 
Events
Upgraded(address indexed implementation
Initialized(uint64 version
RoleAdminChanged(bytes32 indexed rolebytes32 indexed previousAdminRolebytes32 indexed newAdminRole
RoleGranted(bytes32 indexed roleaddress indexed accountaddress indexed sender
RoleRevoked(bytes32 indexed roleaddress indexed accountaddress indexed sender
Staked(address indexed useruint256 amountuint256 durationbool autoRelock
Unstaked(address indexed useruint256 amountuint256 earlyUnstakeFeebool isVault
Upgraded(address indexed implementation
Constructor
constructor(address implementationbytes _data
Fallback and receive
fallback(
Errors
AddressEmptyCode(address target
ERC1967InvalidImplementation(address implementation
ERC1967NonPayable(
FailedInnerCall(
AccessControlBadConfirmation(
AccessControlUnauthorizedAccount(address accountbytes32 neededRole
AddressEmptyCode(address target
ERC1967InvalidImplementation(address implementation
ERC1967NonPayable(
FailedInnerCall(
InvalidInitialization(
NotInitializing(
ReentrancyGuardReentrantCall(
UUPSUnauthorizedCallContext(
UUPSUnsupportedProxiableUUID(bytes32 slot