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 7 txns
Deployed by via 0x03b0caf2 at 23793967
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
Native
Value $0.18
ERC-20
Value $0
0x68020bf82c17435cb051bb151529ce98ba56a356bb9e525e6326fbdf7a65b977
0x6eb52b2d698e2088ce619c4dcf4a273d8233a4185c0d6b6af5be4ba0b0e7e2c1
0x1f0c62ab3ce839bff44db73d73b42532fc55498e07f4f9881824a9c3cb65182d
0x37b7f205fb16f182522f2d28cebc4bca83b950b04e39fbc2e52281d14c1f89ae
0xef2a0e6ff6a76d95075c3f63fbe4e212df54b57187b6fb3449f5b30e564f8591
0x24a8892f55f3f1ff2b8b4a0facfe65049602b34dee4ece713375a6f59c36ede5
0x19ff6aeb4ed6d292e0d2d65e83d4abe6ecf22418022e756dd5178515e6c9eaf7

Functions
Getter at block 23891832
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)
1734480000
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