1_总览

Arbitrum致力于与以太坊兼容。智能合约在字节码层面是兼容的,但系统的一些特定层面与EVM有所不同。

有些操作码的行为略有不同,见3_Solidity支持Arbitrum中的时间燃气在L2上也与以太坊不同。其他不同请见特殊特性

以太坊账户

Nounce

每个提交到Arbitrum的交易都会销毁一个nounce,除非该交易格式不正确或者没有所需的nounce。

L1到L2充值

以太可以通过两种方式充值:retryable ticket或者L2储备资金经过L1调用。对终端用户而言看起来差不多,但仍有细微区别。

当充值资产时可以将资产充值到某个合约地址中而不执行其fallback函数——类似于合约执行自毁时将资金发送到另一个合约地址。

JSON RPC API

Arbitrum API致力于成为eth spec的超集。当使用API的时候你会找到所有的常见字段,以及其他针对Arbitrum的特定接口。

交易接受者

交易接受者包含下列额外字段

L1区块高度

该交易的L1区块编号,详见Arbitrum中的时间

费用统计

一个总结当前转账费用的对象。包含消耗了多少个单位,出价价格,和每单位价格。

Arbgas费会根据用户与Arbitrum交互的情况而定价,但下列表格可以作为通用参考:

字段 成本来源 含义
l1Transaction 提交至L1收件箱的固定成本 提交给L1收件箱会有一定成本,该成本通过聚合器的批量交易提交来摊薄。
l1Calldata L1交易的calldata 每条L1转账附带的calldata都有成本。会对聚合器支付的成本进行补偿。
l2storage L2的存储空间 每个存储slot写入非0的值都会支付成本
l2Computation L2上的计算 每单位运算向用户收取的费用(以arbgas计量)

更多详情请见燃气洞悉Arbitrum

返回数据

下表包含了智能合约的返回值或回滚原因。

Return Code Meaning
0 交易成功
1 EVM回滚
2 Arbitrum过于拥堵,无法执行交易
3 以gasPrice为价格支付maxGas时余额不足
4 执行余额不足
5 交易nounce错误
6 交易格式错误
7 无法部署至特定地址(特殊防御机制,应该永远不被触发)
8 超过gas limit
9 提供的ArbGas不够支付L1成本(基础tx成本+calldata成本)
10 交易低于最低ArbGas需求
11 交易的ArbGas价格设置过低
255 未知错误

4_提款2_特殊特性