Solidity Support
Arbitrum Rollup supports EVM transactions, and therefore allows you to trustlessly deploy Solidity contracts (as well as Vyper or any other language that compile to EVM). Arbitrum supports almost all Solidity code as expected with a few exceptions that we detail below.
Differences from Solidity on Ethereum
Although Arbitrum supports Solidity code, there are differences in the effects of a few operations, including language features that don't make much sense in the Layer 2 context.
tx.gasprice
will return 1blockhash(x)
will always return zeroblock.coinbase
will return zeroblock.difficulty
will return the constant 2500000000000000block.gaslimit
will return the constant 10000000000gasleft
will return the amount of ArbGas remaining
Time
Arbitrum supports block.number
and block.timestamp
. For the semantics of these features in the Arbitrum context, please see Time in Arbitrum.