---
# System prepended metadata

title: intmax block 仕様

---

# intmax block 仕様

### transaction

tx_hash
calldata
public_key
nonce

### accepted tx

position: block の何番めか

### block

parent_block_hash
transactions
block_hash
block_number
world_state_root


### status

```
 +-> Failed                              +-> Rejected  +-> Rejected
 |                                       |             |
-+-----------+-> Pending ---> Executing -+-> Accepted -+-> Confirmed
 |           |
 +-> Queued -+
```

```rust=
pub enum TransactionStatus {
    /// operator が tx を受け取ったが, 実行に失敗したもの
    Rejected,

    /// operator が tx を受け取ったが nonce が大きすぎるもの
    Queued,

    /// operator が tx を受け取ってから rollup が始まるまで
    Pending,

    /// rollup が始まってから rollup block が公開される（pre-consensus）まで
    Executing,

    /// rollup block が公開されてから Ethereum 上で検証されるまで
    Accepted,

    /// Ethereum 上で検証されたもの
    Confirmed,
}
```

Failed は operator が不適切な tx を拒否したとき.

## /diff/update/ 以後の処理

tx を受け取って, 不適切でなければ Pending として保管する.
rollup block を作るときは<s> status を Executing に変更しつつ</s>取得する.
rollup block を Layer 1 に書き込めたら, そこに含まれていた tx を Accepted に変更する. Layer 1 での検証が確認できたら Confirmed に変更する.
<s>Executed まで到達したが, ZKP を作成する途中でサーバーがダウンした場合, 再起動後にそれらを Pending に戻してやり直す.</s>
Accepted まで到達したが, 実はその rollup tx が正しくなかった場合, いったんそれらを Pending に戻してやり直す.

###### tags: ``
