Commit d99c99c4 authored by inphi's avatar inphi

fix labels; add storage width to storage layout

parent 02a7f5a8
......@@ -37,6 +37,7 @@ type AbiSpecStorageLayoutEntry = {
slot: number
offset: number
type: string
bytes: number
}
const sortKeys = (obj: any) => {
if (typeof obj !== 'object' || obj === null) {
......@@ -104,8 +105,14 @@ const main = async () => {
const storageLayout: AbiSpecStorageLayoutEntry[] = []
for (const storageEntry of artifact.storageLayout.storage) {
// convert ast-based type to solidity type
const typ = artifact.storageLayout.types[storageEntry.type]
if (typ === undefined) {
throw new Error(`undefined type for ${contractName}:${storageEntry.label}`)
}
storageLayout.push({
label: storageEntry.label,
label: typ.label,
bytes: typ.numberOfBytes,
offset: storageEntry.offset,
slot: storageEntry.slot,
type: storageEntry.type,
......
[
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "addresses",
"bytes": "32",
"label": "mapping(bytes32 => address)",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_bytes32,t_address)"
......
[
{
"label": "owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
......
[
{
"label": "attestations",
"bytes": "32",
"label": "mapping(address => mapping(address => mapping(bytes32 => bytes)))",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))"
......
[
{
"label": "totalProcessed",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "0",
"type": "t_uint256"
......
[
{
"label": "blocks",
"bytes": "32",
"label": "mapping(uint256 => struct BlockOracle.BlockInfo)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_uint256,t_struct(BlockInfo)81594_storage)"
"type": "t_mapping(t_uint256,t_struct(BlockInfo)81992_storage)"
}
]
\ No newline at end of file
[
{
"label": "_delay",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"label": "_queuedAt",
"bytes": "32",
"label": "mapping(bytes32 => uint256)",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_bytes32,t_uint256)"
......
[
{
"label": "owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "whitelist",
"bytes": "32",
"label": "mapping(address => bool)",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_bool)"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "51",
"type": "t_address"
},
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "52",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "gameImpls",
"bytes": "32",
"label": "mapping(GameType => contract IDisputeGame)",
"offset": 0,
"slot": "101",
"type": "t_mapping(t_userDefinedValueType(GameType)85641,t_contract(IDisputeGame)83315)"
"type": "t_mapping(t_userDefinedValueType(GameType)86039,t_contract(IDisputeGame)83713)"
},
{
"label": "_disputeGames",
"bytes": "32",
"label": "mapping(Hash => GameId)",
"offset": 0,
"slot": "102",
"type": "t_mapping(t_userDefinedValueType(Hash)85623,t_userDefinedValueType(GameId)85635)"
"type": "t_mapping(t_userDefinedValueType(Hash)86021,t_userDefinedValueType(GameId)86033)"
},
{
"label": "_disputeGameList",
"bytes": "32",
"label": "GameId[]",
"offset": 0,
"slot": "103",
"type": "t_array(t_userDefinedValueType(GameId)85635)dyn_storage"
"type": "t_array(t_userDefinedValueType(GameId)86033)dyn_storage"
}
]
\ No newline at end of file
[
{
"label": "owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "drips",
"bytes": "32",
"label": "mapping(string => struct Drippie.DripState)",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_string_memory_ptr,t_struct(DripState)88682_storage)"
"type": "t_mapping(t_string_memory_ptr,t_struct(DripState)89080_storage)"
}
]
\ No newline at end of file
[
{
"label": "_nonces",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "_db",
"bytes": "32",
"label": "mapping(bytes32 => struct Attestation)",
"offset": 0,
"slot": "50",
"type": "t_mapping(t_bytes32,t_struct(Attestation)43501_storage)"
"type": "t_mapping(t_bytes32,t_struct(Attestation)55167_storage)"
},
{
"label": "_timestamps",
"bytes": "32",
"label": "mapping(bytes32 => uint64)",
"offset": 0,
"slot": "51",
"type": "t_mapping(t_bytes32,t_uint64)"
},
{
"label": "_revocationsOffchain",
"bytes": "32",
"label": "mapping(address => mapping(bytes32 => uint64))",
"offset": 0,
"slot": "52",
"type": "t_mapping(t_address,t_mapping(t_bytes32,t_uint64))"
},
{
"label": "__gap",
"bytes": "1504",
"label": "uint256[47]",
"offset": 0,
"slot": "53",
"type": "t_array(t_uint256)47_storage"
......
[
{
"label": "modules",
"bytes": "32",
"label": "mapping(contract IFaucetAuthModule => struct Faucet.ModuleConfig)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_contract(IFaucetAuthModule)89603,t_struct(ModuleConfig)89280_storage)"
"type": "t_mapping(t_contract(IFaucetAuthModule)90001,t_struct(ModuleConfig)89678_storage)"
},
{
"label": "timeouts",
"bytes": "32",
"label": "mapping(contract IFaucetAuthModule => mapping(bytes32 => uint256))",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_contract(IFaucetAuthModule)89603,t_mapping(t_bytes32,t_uint256))"
"type": "t_mapping(t_contract(IFaucetAuthModule)90001,t_mapping(t_bytes32,t_uint256))"
},
{
"label": "nonces",
"bytes": "32",
"label": "mapping(bytes32 => mapping(bytes32 => bool))",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_bytes32,t_mapping(t_bytes32,t_bool))"
......
[
{
"label": "createdAt",
"bytes": "8",
"label": "Timestamp",
"offset": 0,
"slot": "0",
"type": "t_userDefinedValueType(Timestamp)85631"
"type": "t_userDefinedValueType(Timestamp)86029"
},
{
"label": "status",
"bytes": "1",
"label": "enum GameStatus",
"offset": 8,
"slot": "0",
"type": "t_enum(GameStatus)85647"
"type": "t_enum(GameStatus)86045"
},
{
"label": "bondManager",
"bytes": "20",
"label": "contract IBondManager",
"offset": 9,
"slot": "0",
"type": "t_contract(IBondManager)83238"
"type": "t_contract(IBondManager)83636"
},
{
"label": "l1Head",
"bytes": "32",
"label": "Hash",
"offset": 0,
"slot": "1",
"type": "t_userDefinedValueType(Hash)85623"
"type": "t_userDefinedValueType(Hash)86021"
},
{
"label": "claimData",
"bytes": "32",
"label": "struct IFaultDisputeGame.ClaimData[]",
"offset": 0,
"slot": "2",
"type": "t_array(t_struct(ClaimData)83452_storage)dyn_storage"
"type": "t_array(t_struct(ClaimData)83850_storage)dyn_storage"
},
{
"label": "proposals",
"bytes": "128",
"label": "struct IFaultDisputeGame.OutputProposals",
"offset": 0,
"slot": "3",
"type": "t_struct(OutputProposals)83467_storage"
"type": "t_struct(OutputProposals)83865_storage"
},
{
"label": "claims",
"bytes": "32",
"label": "mapping(ClaimHash => bool)",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_userDefinedValueType(ClaimHash)85627,t_bool)"
"type": "t_mapping(t_userDefinedValueType(ClaimHash)86025,t_bool)"
},
{
"label": "subgames",
"bytes": "32",
"label": "mapping(uint256 => uint256[])",
"offset": 0,
"slot": "8",
"type": "t_mapping(t_uint256,t_array(t_uint256)dyn_storage)"
},
{
"label": "subgameAtRootResolved",
"bytes": "1",
"label": "bool",
"offset": 0,
"slot": "9",
"type": "t_bool"
......
[
{
"label": "_balances",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "_allowances",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"label": "_totalSupply",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"label": "_name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"label": "_symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "4",
"type": "t_string_storage"
},
{
"label": "_nonces",
"bytes": "32",
"label": "mapping(address => struct Counters.Counter)",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_address,t_struct(Counter)49915_storage)"
"type": "t_mapping(t_address,t_struct(Counter)51095_storage)"
},
{
"label": "_PERMIT_TYPEHASH_DEPRECATED_SLOT",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "6",
"type": "t_bytes32"
},
{
"label": "_delegates",
"bytes": "32",
"label": "mapping(address => address)",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_address,t_address)"
},
{
"label": "_checkpoints",
"bytes": "32",
"label": "mapping(address => struct ERC20Votes.Checkpoint[])",
"offset": 0,
"slot": "8",
"type": "t_mapping(t_address,t_array(t_struct(Checkpoint)47061_storage)dyn_storage)"
"type": "t_mapping(t_address,t_array(t_struct(Checkpoint)48241_storage)dyn_storage)"
},
{
"label": "_totalSupplyCheckpoints",
"bytes": "32",
"label": "struct ERC20Votes.Checkpoint[]",
"offset": 0,
"slot": "9",
"type": "t_array(t_struct(Checkpoint)47061_storage)dyn_storage"
"type": "t_array(t_struct(Checkpoint)48241_storage)dyn_storage"
},
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "10",
"type": "t_address"
......
[
{
"label": "number",
"bytes": "8",
"label": "uint64",
"offset": 0,
"slot": "0",
"type": "t_uint64"
},
{
"label": "timestamp",
"bytes": "8",
"label": "uint64",
"offset": 8,
"slot": "0",
"type": "t_uint64"
},
{
"label": "basefee",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"label": "hash",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "2",
"type": "t_bytes32"
},
{
"label": "sequenceNumber",
"bytes": "8",
"label": "uint64",
"offset": 0,
"slot": "3",
"type": "t_uint64"
},
{
"label": "batcherHash",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "4",
"type": "t_bytes32"
},
{
"label": "l1FeeOverhead",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "5",
"type": "t_uint256"
},
{
"label": "l1FeeScalar",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "6",
"type": "t_uint256"
......
[
{
"label": "spacer_0_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 20,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 21,
"slot": "0",
"type": "t_bool"
},
{
"label": "spacer_1_0_1600",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "spacer_51_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "51",
"type": "t_address"
},
{
"label": "spacer_52_0_1568",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "52",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "spacer_101_0_1",
"bytes": "1",
"label": "bool",
"offset": 0,
"slot": "101",
"type": "t_bool"
},
{
"label": "spacer_102_0_1568",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "102",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "spacer_151_0_32",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "151",
"type": "t_uint256"
},
{
"label": "spacer_152_0_1568",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "152",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "spacer_201_0_32",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "201",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "spacer_202_0_32",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "202",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "successfulMessages",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "203",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "xDomainMsgSender",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "204",
"type": "t_address"
},
{
"label": "msgNonce",
"bytes": "30",
"label": "uint240",
"offset": 0,
"slot": "205",
"type": "t_uint240"
},
{
"label": "failedMessages",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "206",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "__gap",
"bytes": "1344",
"label": "uint256[42]",
"offset": 0,
"slot": "207",
"type": "t_array(t_uint256)42_storage"
......
[
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "0",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "deposits",
"bytes": "32",
"label": "mapping(address => mapping(address => mapping(uint256 => bool)))",
"offset": 0,
"slot": "49",
"type": "t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))"
......
[
{
"label": "totalProcessed",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "0",
"type": "t_uint256"
......
[
{
"label": "spacer_0_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "spacer_1_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "1",
"type": "t_address"
},
{
"label": "deposits",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"label": "__gap",
"bytes": "1504",
"label": "uint256[47]",
"offset": 0,
"slot": "3",
"type": "t_array(t_uint256)47_storage"
......
[
{
"label": "spacer_0_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 20,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 21,
"slot": "0",
"type": "t_bool"
},
{
"label": "spacer_1_0_1600",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "spacer_51_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "51",
"type": "t_address"
},
{
"label": "spacer_52_0_1568",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "52",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "spacer_101_0_1",
"bytes": "1",
"label": "bool",
"offset": 0,
"slot": "101",
"type": "t_bool"
},
{
"label": "spacer_102_0_1568",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "102",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "spacer_151_0_32",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "151",
"type": "t_uint256"
},
{
"label": "spacer_152_0_1568",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "152",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "spacer_201_0_32",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "201",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "spacer_202_0_32",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "202",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "successfulMessages",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "203",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "xDomainMsgSender",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "204",
"type": "t_address"
},
{
"label": "msgNonce",
"bytes": "30",
"label": "uint240",
"offset": 0,
"slot": "205",
"type": "t_uint240"
},
{
"label": "failedMessages",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "206",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "__gap",
"bytes": "1344",
"label": "uint256[42]",
"offset": 0,
"slot": "207",
"type": "t_array(t_uint256)42_storage"
......
[
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "0",
"type": "t_array(t_uint256)49_storage"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "startingBlockNumber",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"label": "startingTimestamp",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"label": "l2Outputs",
"bytes": "32",
"label": "struct Types.OutputProposal[]",
"offset": 0,
"slot": "3",
"type": "t_array(t_struct(OutputProposal)86496_storage)dyn_storage"
"type": "t_array(t_struct(OutputProposal)86894_storage)dyn_storage"
}
]
\ No newline at end of file
[
{
"label": "spacer_0_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "spacer_1_0_20",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "1",
"type": "t_address"
},
{
"label": "deposits",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"label": "__gap",
"bytes": "1504",
"label": "uint256[47]",
"offset": 0,
"slot": "3",
"type": "t_array(t_uint256)47_storage"
......
[
{
"label": "sentMessages",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "msgNonce",
"bytes": "30",
"label": "uint240",
"offset": 0,
"slot": "1",
"type": "t_uint240"
......
[
{
"label": "_balances",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "_allowances",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"label": "_totalSupply",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"label": "_name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"label": "_symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "4",
"type": "t_string_storage"
......
[
{
"label": "sentMessages",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_bytes32,t_bool)"
......
[
{
"label": "_balances",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "_allowances",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"label": "_totalSupply",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"label": "_name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"label": "_symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "4",
"type": "t_string_storage"
},
{
"label": "l1Token",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "5",
"type": "t_address"
},
{
"label": "l2Bridge",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "6",
"type": "t_address"
......
[
{
"label": "lastLive",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "ownersBefore",
"bytes": "64",
"label": "struct EnumerableSet.AddressSet",
"offset": 0,
"slot": "1",
"type": "t_struct(AddressSet)53836_storage"
"type": "t_struct(AddressSet)55016_storage"
}
]
\ No newline at end of file
[
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "mintPermittedAfter",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "1",
"type": "t_uint256"
......
[
{
"label": "_balances",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "_allowances",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"label": "_totalSupply",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"label": "_name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"label": "_symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "4",
"type": "t_string_storage"
......
[
{
"label": "_name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"label": "_symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
},
{
"label": "_owners",
"bytes": "32",
"label": "mapping(uint256 => address)",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_uint256,t_address)"
},
{
"label": "_balances",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "3",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "_tokenApprovals",
"bytes": "32",
"label": "mapping(uint256 => address)",
"offset": 0,
"slot": "4",
"type": "t_mapping(t_uint256,t_address)"
},
{
"label": "_operatorApprovals",
"bytes": "32",
"label": "mapping(address => mapping(address => bool))",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_address,t_mapping(t_address,t_bool))"
},
{
"label": "_ownedTokens",
"bytes": "32",
"label": "mapping(address => mapping(uint256 => uint256))",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_address,t_mapping(t_uint256,t_uint256))"
},
{
"label": "_ownedTokensIndex",
"bytes": "32",
"label": "mapping(uint256 => uint256)",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_uint256,t_uint256)"
},
{
"label": "_allTokens",
"bytes": "32",
"label": "uint256[]",
"offset": 0,
"slot": "8",
"type": "t_array(t_uint256)dyn_storage"
},
{
"label": "_allTokensIndex",
"bytes": "32",
"label": "mapping(uint256 => uint256)",
"offset": 0,
"slot": "9",
"type": "t_mapping(t_uint256,t_uint256)"
},
{
"label": "baseTokenURI",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "10",
"type": "t_string_storage"
......
[
{
"label": "isOptimismMintableERC721",
"bytes": "32",
"label": "mapping(address => bool)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_bool)"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "params",
"bytes": "32",
"label": "struct ResourceMetering.ResourceParams",
"offset": 0,
"slot": "1",
"type": "t_struct(ResourceParams)75595_storage"
"type": "t_struct(ResourceParams)75993_storage"
},
{
"label": "__gap",
"bytes": "1536",
"label": "uint256[48]",
"offset": 0,
"slot": "2",
"type": "t_array(t_uint256)48_storage"
},
{
"label": "l2Sender",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "50",
"type": "t_address"
},
{
"label": "finalizedWithdrawals",
"bytes": "32",
"label": "mapping(bytes32 => bool)",
"offset": 0,
"slot": "51",
"type": "t_mapping(t_bytes32,t_bool)"
},
{
"label": "provenWithdrawals",
"bytes": "32",
"label": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)",
"offset": 0,
"slot": "52",
"type": "t_mapping(t_bytes32,t_struct(ProvenWithdrawal)74655_storage)"
"type": "t_mapping(t_bytes32,t_struct(ProvenWithdrawal)75053_storage)"
},
{
"label": "paused",
"bytes": "1",
"label": "bool",
"offset": 0,
"slot": "53",
"type": "t_bool"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "51",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "_name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "101",
"type": "t_string_storage"
},
{
"label": "_symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "102",
"type": "t_string_storage"
},
{
"label": "_owners",
"bytes": "32",
"label": "mapping(uint256 => address)",
"offset": 0,
"slot": "103",
"type": "t_mapping(t_uint256,t_address)"
},
{
"label": "_balances",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "104",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "_tokenApprovals",
"bytes": "32",
"label": "mapping(uint256 => address)",
"offset": 0,
"slot": "105",
"type": "t_mapping(t_uint256,t_address)"
},
{
"label": "_operatorApprovals",
"bytes": "32",
"label": "mapping(address => mapping(address => bool))",
"offset": 0,
"slot": "106",
"type": "t_mapping(t_address,t_mapping(t_address,t_bool))"
},
{
"label": "__gap",
"bytes": "1408",
"label": "uint256[44]",
"offset": 0,
"slot": "107",
"type": "t_array(t_uint256)44_storage"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "151",
"type": "t_array(t_uint256)50_storage"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "_HASHED_NAME",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "1",
"type": "t_bytes32"
},
{
"label": "_HASHED_VERSION",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "2",
"type": "t_bytes32"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "3",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "commitmentTimestamps",
"bytes": "32",
"label": "mapping(bytes32 => uint256)",
"offset": 0,
"slot": "53",
"type": "t_mapping(t_bytes32,t_uint256)"
},
{
"label": "usedNonces",
"bytes": "32",
"label": "mapping(address => mapping(bytes32 => bool))",
"offset": 0,
"slot": "54",
"type": "t_mapping(t_address,t_mapping(t_bytes32,t_bool))"
},
{
"label": "inviteCounts",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "55",
"type": "t_mapping(t_address,t_uint256)"
......
[
{
"label": "preimageLengths",
"bytes": "32",
"label": "mapping(bytes32 => uint256)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_bytes32,t_uint256)"
},
{
"label": "preimageParts",
"bytes": "32",
"label": "mapping(bytes32 => mapping(uint256 => bytes32))",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_bytes32,t_mapping(t_uint256,t_bytes32))"
},
{
"label": "preimagePartOk",
"bytes": "32",
"label": "mapping(bytes32 => mapping(uint256 => bool))",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_bytes32,t_mapping(t_uint256,t_bool))"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "51",
"type": "t_address"
},
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "52",
"type": "t_array(t_uint256)49_storage"
......
[
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"label": "proxyType",
"bytes": "32",
"label": "mapping(address => enum ProxyAdmin.ProxyType)",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_enum(ProxyType)92592)"
"type": "t_mapping(t_address,t_enum(ProxyType)92990)"
},
{
"label": "implementationName",
"bytes": "32",
"label": "mapping(address => string)",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_address,t_string_storage)"
},
{
"label": "addressManager",
"bytes": "20",
"label": "contract AddressManager",
"offset": 0,
"slot": "3",
"type": "t_contract(AddressManager)84130"
"type": "t_contract(AddressManager)84528"
},
{
"label": "upgrading",
"bytes": "1",
"label": "bool",
"offset": 20,
"slot": "3",
"type": "t_bool"
......
[
{
"label": "implementationName",
"bytes": "32",
"label": "mapping(address => string)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_string_storage)"
},
{
"label": "addressManager",
"bytes": "32",
"label": "mapping(address => contract AddressManager)",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_contract(AddressManager)84130)"
"type": "t_mapping(t_address,t_contract(AddressManager)84528)"
}
]
\ No newline at end of file
[
{
"label": "_registry",
"bytes": "32",
"label": "mapping(bytes32 => struct SchemaRecord)",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_bytes32,t_struct(SchemaRecord)45881_storage)"
"type": "t_mapping(t_bytes32,t_struct(SchemaRecord)57547_storage)"
},
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)49_storage"
......
[
{
"label": "totalProcessed",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "0",
"type": "t_uint256"
......
[
{
"label": "_initialized",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"label": "_initializing",
"bytes": "1",
"label": "bool",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"label": "__gap",
"bytes": "1600",
"label": "uint256[50]",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"label": "_owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "51",
"type": "t_address"
},
{
"label": "__gap",
"bytes": "1568",
"label": "uint256[49]",
"offset": 0,
"slot": "52",
"type": "t_array(t_uint256)49_storage"
},
{
"label": "overhead",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "101",
"type": "t_uint256"
},
{
"label": "scalar",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "102",
"type": "t_uint256"
},
{
"label": "batcherHash",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "103",
"type": "t_bytes32"
},
{
"label": "gasLimit",
"bytes": "8",
"label": "uint64",
"offset": 0,
"slot": "104",
"type": "t_uint64"
},
{
"label": "_resourceConfig",
"bytes": "32",
"label": "struct ResourceMetering.ResourceConfig",
"offset": 0,
"slot": "105",
"type": "t_struct(ResourceConfig)75608_storage"
"type": "t_struct(ResourceConfig)76006_storage"
}
]
\ No newline at end of file
[
{
"label": "owner",
"bytes": "20",
"label": "address",
"offset": 0,
"slot": "0",
"type": "t_address"
......
[
{
"label": "_status",
"bytes": "32",
"label": "uint256",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"label": "shell",
"bytes": "32",
"label": "bytes32",
"offset": 0,
"slot": "1",
"type": "t_bytes32"
......
[
{
"label": "name",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"label": "symbol",
"bytes": "32",
"label": "string",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
},
{
"label": "decimals",
"bytes": "1",
"label": "uint8",
"offset": 0,
"slot": "2",
"type": "t_uint8"
},
{
"label": "balanceOf",
"bytes": "32",
"label": "mapping(address => uint256)",
"offset": 0,
"slot": "3",
"type": "t_mapping(t_address,t_uint256)"
},
{
"label": "allowance",
"bytes": "32",
"label": "mapping(address => mapping(address => uint256))",
"offset": 0,
"slot": "4",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment