TaikoData
Config
struct Config {
uint256 chainId;
uint256 maxNumProposedBlocks;
uint256 ringBufferSize;
uint256 maxVerificationsPerTx;
uint64 blockMaxGasLimit;
uint64 maxTransactionsPerBlock;
uint64 maxBytesPerTxList;
uint256 txListCacheExpiry;
uint256 proofCooldownPeriod;
uint256 systemProofCooldownPeriod;
uint256 realProofSkipSize;
uint256 ethDepositGas;
uint256 ethDepositMaxFee;
uint64 minEthDepositsPerBlock;
uint64 maxEthDepositsPerBlock;
uint96 maxEthDepositAmount;
uint96 minEthDepositAmount;
bool relaySignalRoot;
}
StateVariables
struct StateVariables {
uint64 blockFee;
uint64 genesisHeight;
uint64 genesisTimestamp;
uint64 numBlocks;
uint64 lastVerifiedBlockId;
uint64 nextEthDepositToProcess;
uint64 numEthDeposits;
}
BlockMetadataInput
struct BlockMetadataInput {
bytes32 txListHash;
address beneficiary;
uint32 gasLimit;
uint24 txListByteStart;
uint24 txListByteEnd;
uint8 cacheTxListInfo;
}
BlockMetadata
struct BlockMetadata {
uint64 id;
uint64 timestamp;
uint64 l1Height;
bytes32 l1Hash;
bytes32 mixHash;
bytes32 txListHash;
uint24 txListByteStart;
uint24 txListByteEnd;
uint32 gasLimit;
address beneficiary;
address treasury;
struct TaikoData.EthDeposit[] depositsProcessed;
}
BlockEvidence
struct BlockEvidence {
bytes32 metaHash;
bytes32 parentHash;
bytes32 blockHash;
bytes32 signalRoot;
bytes32 graffiti;
address prover;
uint32 parentGasUsed;
uint32 gasUsed;
uint16 verifierId;
bytes proof;
}
ForkChoice
struct ForkChoice {
bytes32 key;
bytes32 blockHash;
bytes32 signalRoot;
uint64 provenAt;
address prover;
uint32 gasUsed;
}
Block
struct Block {
mapping(uint256 => struct TaikoData.ForkChoice) forkChoices;
uint64 blockId;
uint64 proposedAt;
uint24 nextForkChoiceId;
uint24 verifiedForkChoiceId;
bytes32 metaHash;
address proposer;
}
TxListInfo
struct TxListInfo {
uint64 validSince;
uint24 size;
}
EthDeposit
struct EthDeposit {
address recipient;
uint96 amount;
uint64 id;
}
State
struct State {
mapping(uint256 => struct TaikoData.Block) blocks;
mapping(uint256 => mapping(bytes32 => mapping(uint32 => uint256))) forkChoiceIds;
mapping(address => uint256) taikoTokenBalances;
mapping(bytes32 => struct TaikoData.TxListInfo) txListInfo;
struct TaikoData.EthDeposit[] ethDeposits;
uint64 genesisHeight;
uint64 genesisTimestamp;
uint16 __reserved70;
uint48 __reserved71;
uint64 __reserved72;
uint64 __reserved80;
uint64 __reserved81;
uint64 numBlocks;
uint64 nextEthDepositToProcess;
uint64 blockFee;
uint64 __reserved90;
uint64 lastVerifiedBlockId;
uint64 __reserved91;
uint256[42] __gap;
}