Overview
flowchart TD
AA[validate inbound traffic IP address, request payload, and signatures] -->|success| A
AA -->|faliure| F[revert]
A[is deposit?] -->|yes| B[ verify approvals, check balance, EOA<->SA mapping]
A -->|no| C[is withdrawal && is withdrawal hold?]
B -->|success| D[send to relayer]
B -->|failure| F
D -->|success| E["update equity (MySQL)"]
E --> O["post event (BigQuery)"]
D -->|failure| F[revert]
C -->|yes| F["revert"]
C -->|no| G[is closing trade && is perp?]
G -->|no| J["perform risk check"]
G -->|yes| I["update accrued funding"]
%% Links available outside of diagram:
%% - Risk check process: ./sequencer-risk-check.md
%% - Funding rate process: ../fundingRateService.md
I --> J
J -->|failure| F
J -->|success| H["update equity (MySQL)"]
H --> P[is withdrawal?]
P -->|yes| K[send to relayer]
K -->|failure| L["credit equity (MySQL)"]
K -->|success| M[send tx. confirmation]
L --> F
M --> N["post event (BigQuery)"]
P --> |no| N