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.

KnightSafeProxy

Verified contract

Proxy

Active on Base with 9 txns
Deployed by via 0x5a0ff7ff at 22388531
Slot
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
-
variable spans 1 additional slot
-
variable spans 1 additional slot
ERC-20
Value $40.25
0x2c0afeeeb4416150dedf9c00d4ad171367b359f61f5bf34dbaf57840881fa937
0x25d6b6e9be94b03307b8d548f8e25aecc57d556163a5702551fb2b2e3a0700df
0x8e31a9fc64e513be22314c13970d7ea4d19aaf8afb068bf7674604d75c016514
0x826d0459644052e731efe53ec4fcccae506605f8c88539d276dfd4225e4c4f8c
0x98e4be80f6a906573d2376122179c3675b468b620a2df56b7e162811cadd8c60
0x9ffc20a84aa9a64add8944629dd926f65ea4fa2258f0fef7715b9ce1c373c14b
0xc92717f50d6c238c99bd7656bb68538dfd0dfc0fd587bd71b838949b3ea7358a
0xff122f33a6f11c6d3d3da172c3c7d384fb8d3a7593e98427853d8db36f964f0a
0x53abf738ba3d795d2f7a84247459d3fbacb7904bac02f3c383e676441747af68

Functions
Getter at block 23902925
VERSION(view returns (string)
2.0.0
accountVolumeSpent(view returns (uint256)
0
dailyVolumeSpent(view returns (uint256)
0
getActivePolicyIds(view returns (uint256[])
[0, 1, 2]
getAdmins(view returns (address[])
[]
 
getAllPolicyLimit(view returns (uint256[]uint256[]uint256[])
getControlCenter(view returns (address)
0x97479a238518498b393c3f5918d590e2bf0e34da
getIsTakeoverInProgress(view returns (bool)
false
getNextSettingRequestId(view returns (uint256)
0
getNextTransactionRequestId(view returns (uint256)
0
getOwner(view returns (address)
0x7b22fab60a5a7356aa15d2e20c4e5ac19e673258
getTakeoverStatus(view returns (addressbooluint256uint256)
(0x0000000000000000000000000000000000000000, false, 0, 0)
getTakeoverTimestamp(view returns (uint256)
0
getTotalVolumeSpent(view returns (uint256)
0
lastDailyVolumeDate(view returns (uint256)
1734566400
nextPolicyId(view returns (uint256)
3
paused(view returns (bool)
false
Read-only
getDailyVolumeSpent(uint256 policyIdview returns (uint256)
getKnightSafeAnalyserAddress(uint256 policyIdaddress whitelistAddressview returns (address)
getMaxSpendingLimit(uint256 policyIdview returns (uint256)
getPolicyUpdateDate(uint256 policyIdview returns (uint256)
getSettingRequest(uint256 reqIdview returns (struct SettingUtilsRequest)
getTraders(uint256 policyIdview returns (address[])
getTransactionRequest(uint256 reqIdview returns (struct TransactionRequest)
getWhitelistAddresses(uint256 policyIdview returns (address[])
isActivePolicy(uint256 policyIdview returns (bool)
isAdmin(address adminview returns (bool)
isPolicyOrGlobalWhitelistAddress(uint256 policyIdaddress _addressview returns (bool)
isPolicyWhitelistAddress(uint256 policyIdaddress _addressview returns (bool)
isTrader(uint256 policyIdaddress traderview returns (bool)
isValidSignature(bytes32 _hashbytes _signatureview returns (bytes4)
validateTradingAccess(uint256 policyIdbool useGlobalWhitelistaddress tobytes dataview returns (address[] addressesuint256[] amounts)
State-modifying
upgradeTo(address implementationreturns (address)
addAdmin(address admin
addTrader(uint256 policyIdaddress trader
cancelSettingByReqId(uint256 reqId
cancelTransactionByReqId(uint256 onBehalfOfPolicyIduint256 reqId
confirmTakeover(
createPolicy(
executeSettingByReqId(uint256 reqIdreturns (bool success)
executeTransaction(uint256 onBehalfOfPolicyIdbool useGlobalWhitelistaddress touint256 valuebytes data
executeTransactionByReqId(uint256 onBehalfOfPolicyIdbool useGlobalWhitelistuint256 reqId
initialize(address owneraddress controlCenteraddress fallbackHandler
instantTakeover(
multicall(bytes[] datareturns (bytes[] results)
pause(
reduceSpendingLimit(uint256 policyIduint256 maxSpendingLimit
rejectSettingByReqId(uint256 reqId
rejectTransactionByReqId(uint256 onBehalfOfPolicyIdbool useGlobalWhitelistuint256 reqId
removeAdmin(address admin
removePolicy(uint256 policyId
removeTrader(uint256 policyIdaddress trader
removeWhitelist(uint256 policyIdaddress whitelistAddress
requestSetting(uint8 selectorbytes paramreturns (uint256 reqId)
requestTakeover(
requestTransaction(uint256 onBehalfOfPolicyIdaddress touint256 valuebytes datareturns (uint256 reqId)
resetDailySpent(uint256 policyId
revokeTakeover(
setBackupOwner(address backupOwneruint256 takeoverDelayIsSecond
setMaxSpendingLimit(uint256 policyIduint256 maxSpendingLimit
unpause(
updateControlCenter(address controlCenter
updateFallbackHandler(address handler
updateWhitelist(uint256 policyIdaddress whitelistAddressaddress officialAnalyserAddress
validatePolicyLimit(uint256 policyIduint256 volume
validateTradingLimit(address[] addressesuint256[] amountsuint256 valuereturns (uint256)
Events
Upgraded(address indexed implementation
Paused(address account
Unpaused(address account
Constructor
constructor(address implementation
Fallback and receive
fallback(
fallback(
receive(
Errors
AddressEmptyCode(address target
AddressIsNotKnightSafeImplementation(address _address
ERC1967InvalidImplementation(address implementation
ERC1967NonPayable(
FailedInnerCall(
IsNullValue(
Unauthorized(address msgSenderstring role
AddressAlreadyExist(address _address
AddressEmptyCode(address target
AddressIsNotKnightSafeAnalyser(address _address
AddressIsReadOnlyWhitelist(uint256 policyIdaddress _address
AddressNotExist(address _address
AddressNotInWhitelist(uint256 policyIdaddress _address
ECDSAInvalidSignature(
ECDSAInvalidSignatureS(bytes32 s
EnforcedPause(
ExceedMaxTradingVolume(uint256 txnVolumeuint256 maxVolume
ExceedPolicyVolume(uint256 policyIduint256 volume
ExecutionFailedWith(bytes data
ExpectedPause(
FailedInnerCall(
FeatureNotSupport(string plan
InvalidAddress(address _address
InvalidLength(
InvalidOperation(
InvalidReqId(uint256 reqId
InvalidSettingStatus(
InvalidTakeoverStatus(bool inProgress
InvalidTransactionStatus(
InvalidValue(
MaxPolicyCountReached(uint256 maxPolicyCount
PolicyNotExist(uint256 policyId
SelectorNotSupport(
TakeoverIsNotReady(
Unauthorized(address msgSenderstring role