L2 Quirks
L2s often have different definitions for certain fields inside blocks. If you are deploying a game with Paima on top of one of these L2s, you need to understand the meaning of these values to avoid tipfalls. To facilitate these, we've generated a table of the meaning of these values for the most commons L2s.
Arbitrum
- Block number: When you get a block, it contains two fields:
number
which is simply an increasing value starting from 0l1BlockNumber
underlying L1 block
- Block timestamp:
block.timestamp
is similar in behavior to L1, but two different blocks in L2 can have the sameblock.timestamp
, unlike in L1. This is because Arbitrum One produces about 4 blocks a second. If each block needed a new timestamp it would get way out of sync with the real time because it's denominated in seconds and would need to increase 4 times a second. - Block hash: Arbitrum’s L2 block hash is calculated using the same function as Ethereum, but just over Arbitrum's modified block format created by the sequencer