# 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: ``