bridge indexing · withdrawal
FA withdrawals · standard
flowchart TD
subgraph MICH["L2 · MICHELSON"]
direction TB
USER_M(["User"]):::actor-mich
NAC["Call Gateway.call_evmTzKT · transaction · Gateway"]:::mich
USER_M --> NAC
end
subgraph EVM["L2 · EVM"]
direction TB
USER_E(["User"]):::actor-evm
WB["Call FABridge.withdrawEVM node · transaction · 0xff…02"]:::evm
EV["✓Event WithdrawalEVM node · event · 0xff…02✓ etherlink.on_withdraw✚ EtherlinkWithdrawOperation"]:::evm
TB["Call Token.burnEVM node · call · ERC-20"]:::evm
BURN["✓Event TransferEVM node · event · ERC-20✓ etherlink.on_transfer✎ EtherlinkTokenHolder"]:::evm
USER_E --> WB
WB --> EV
WB -->|User → burn| TB
TB --> BURN
end
subgraph KER["ROLLUP / KERNEL"]
direction TB
SOM["Call SendOutboxMessageKernel · precompile · 0xff…03"]:::sys
OUT["✓Rollup outbox messageRollup node · outbox · Rollup✓ rollup_message_index"]:::sys
SOM --> OUT
end
subgraph L1["L1 · MICHELSON"]
direction TB
PUB["Rollup publishTzKT · transaction · Rollup"]:::l1
CEM["✓Rollup cementTzKT · transaction · Rollup✓ tezos.on_cement_commitment✚ RollupCementedCommitment"]:::l1
EXE["✓Rollup executeTzKT · transaction · Rollup✓ tezos.on_rollup_execute✚ TezosWithdrawOperation"]:::l1
WD["Call Ticketer.withdrawTzKT · transaction · FA-Ticketer"]:::l1
TT["Call Token.transferTzKT · transaction · FA-Token"]:::l1
USER_L1(["User"]):::actor
WT(["Watchtower"]):::actor
CEM -.-> EXE
EXE -->|ticket| WD
WD -->|Ticketer → User| TT
TT --> USER_L1
end
NAC -->|NAC| WB
WB --> SOM
OUT --> PUB
PUB -.->|⏳ ~14 days · refutation window| CEM
WT --> EXE
class EV indexed
class BURN indexed
class OUT indexed
class CEM indexed
class EXE indexed
class NAC faded
class WB faded
class TB faded
class SOM faded
class PUB faded
class WD faded
class TT faded
class WT faded
class USER_M faded
class USER_E faded
class USER_L1 faded
classDef l1 fill:#e8836b1f,stroke:#e8836b,stroke-width:1.5px;
classDef evm fill:#5aa6e01f,stroke:#5aa6e0,stroke-width:1.5px;
classDef mich fill:#6fbf731f,stroke:#6fbf73,stroke-width:1.5px;
classDef sys fill:#8b919c1f,stroke:#8b919c,stroke-width:1.5px;
classDef actor fill:transparent,stroke:#e8836b,stroke-width:1.5px;
classDef actor-mich fill:transparent,stroke:#6fbf73,stroke-width:1.5px;
classDef actor-evm fill:transparent,stroke:#5aa6e0,stroke-width:1.5px;
classDef indexed stroke-width:2px;
classDef faded stroke-width:1.5px;
linkStyle 0 stroke:#6fbf73,stroke-width:2.4px;
linkStyle 1 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 2 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 3 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 4 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 5 stroke:#8b919c,stroke-width:2.4px;
linkStyle 6 stroke:#e8836b,stroke-width:2.4px,stroke-dasharray:6 5;
linkStyle 7 stroke:#e8836b,stroke-width:2.4px;
linkStyle 8 stroke:#e8836b,stroke-width:2.4px;
linkStyle 9 stroke:#e8836b,stroke-width:2.4px;
linkStyle 10 stroke:#6fbf73,stroke-width:2.4px;
linkStyle 11 stroke:#5aa6e0,stroke-width:2.4px;
linkStyle 12 stroke:#8b919c,stroke-width:2.4px;
linkStyle 13 stroke:#e8836b,stroke-width:2.4px,stroke-dasharray:6 5;
linkStyle 14 stroke:#e8836b,stroke-width:2.4px;
Legend
Hue
L2 Michelson
L2 EVM
Kernel / outbox
L1 rollup
Decision
✓ indexed
not indexed
Status
⏳ ~14 days refutation window