103: EMC Perps: propagate Phoenix TWAP warnings through the tree to Perpetual Contracts

This commit is contained in:
2026-10-26 06:38:53 +01:00
parent e71a8daa8d
commit cfb49ed896
22 changed files with 797 additions and 7696 deletions
+35 -5
View File
@@ -444,9 +444,11 @@ og alarmer beholder deres afhængigheder og cache.
Servicen læser asynkront ved start og venter 60 sekunder efter hvert fuldført gennemløb.
Runder overlapper ikke og afhænger ikke af EMC's synlighed. Jupiter-overblikket bruger
ét REST-opslag pr. wallet. Phoenix bruger trader-state, metadata, én mark price pr.
unikt åbent marked, ét TWAP-opslag, når der er positioner, og et risikolæs pr. synlig
konto. Lokal trader-adresseafledning bruger den eksisterende Solana-afhængighed.
ét REST-opslag pr. wallet. Phoenix bruger trader-state og ét TWAP-opslag for wallets
med eksisterende subaccounts, også uden åbne positioner. Metadata hentes ved positioner eller fyldte
TWAP-ordrer med resterende delordrer; én mark price hentes pr. unikt åbent marked,
og der foretages et risikolæs pr. synlig konto. Lokal trader-adresseafledning bruger
den eksisterende Solana-afhængighed.
Begge har 10 sekunders request-timeout; Phoenix bevarer fælles
pacing og 429-cooldown. En fuld opdatering tager opslagstid plus pausen, ikke nødvendigvis
ét minut. Implementeringens `close()` afbryder worker'en; consumer-API'et har kun læsning.
@@ -463,7 +465,7 @@ EMC viser **Position | Risk | Direction | Margin | Collateral | Leverage | Expos
under den synlige rod **Perpetual Contracts**. Isolerede positioner har wallet → venue →
position; Phoenix Cross har wallet → venue → Cross → position. Positionens konto-ID
bestemmer identitet og tilhørsforhold, aldrig instrumentteksten. Wallets følger den
hidtidige konfiguration med Jupiter før Phoenix. En venue uden positioner eller Cross-konti
hidtidige konfiguration med Jupiter før Phoenix. En venue uden positioner, Cross-konti eller TWAP-advarsler
skjules og vises igen, når der kommer indhold. Skjulte venues indgår fortsat i snapshot
og totaler; deres læsestatus findes på wallet-rækkens tooltip. En Cross-konto med kapital
holder derfor Phoenix synlig, selv uden åbne positioner. Eksisterende foldestatus, markering og
@@ -471,7 +473,7 @@ rækkeobjekter bevares; kun ændrede rækkeværdier eller børn opdateres, også
ældes i et ellers uændret snapshot. Vinduesstart er 1100 × 600,
og smallere vinduer kan scrolle vandret, når kolonnernes minimumsbredder kræver det.
TWAP vises kun på en eksisterende Phoenix-position, når ordren selv har et faktisk
TWAP-progress vises på en eksisterende Phoenix-position, når ordren selv har et faktisk
fill og resterende delordrer. Ufyldte ordrer opretter ingen rækker og vises heller
ikke på en position, som allerede fandtes. Progressbaren måler udførte delordrer;
teksten er estimeret resterende tid fra seneste TWAP-observation, fx `≈ 28:32:10`
@@ -519,6 +521,34 @@ EMC spørger hver miljøservice straks ved åbning og hvert tredje sekund uden a
JavaFX-tråden. Skjul/luk stopper kun EMC-polling. Der er ingen sample-data, Refresh-knap,
handel, signering, kontoaktivering eller automatisk genstart af Hub'en i denne læsevej.
### TWAP-advarsler
En fyldt Phoenix-TWAP med resterende delordrer, som mangler markedsmetadata eller
ikke matcher en åben position, bevares som en advarsel. TWAP-cellen viser en lille
orange trekant med udråbstegn og kort tekst. Advarslen står på positionen, når
ordren sikkert kan tilknyttes den; ellers på den ejende Cross-gruppe. Gruppen
bevares også uden kapital eller positioner. En umatchet isoleret ordre står på
Phoenix med sit korrekte subaccount i tooltip, aldrig på en opdigtet Cross-konto.
En matchet ordre uden brugbart estimat for næste udførelse viser en timing-advarsel
sammen med sin progressbar; det er ikke bevis på, at udførelsen er stoppet.
Advarsler samles op gennem **position → Cross → Phoenix → wallet → Perpetual
Contracts**, eller den faktiske isolerede gren uden Cross. Hvert niveau tæller
hver underliggende ordre én gang, også når undergrene er foldet sammen. Flere
ordrer vises med antal. Tooltip kan rulles og bliver stående, mens markøren er over
cellen eller detaljerne. Det identificerer wallet, konto/position, årsag,
TWAP-adresse, asset/subaccount, rå tællere/fills og oprindeligt observationstidspunkt.
Ukendte symboler, enheder, dollarværdier og tider opfindes ikke. Marginrisiko og
kapitaltotaler ændres ikke af advarslerne.
Ordren skal stadig selv have faktiske fills og resterende delordrer. Ufyldte og
færdige ordrer er skjult, også i gruppeoptællinger. Succesfulde opslag rydder løste
advarsler helt op gennem træet og bevarer de øvrige. Fejl bevarer tidligere data og
markerer berørte advarsler og opsummeringer `retained`; efter fem minutter eller ved
fremtidigt tidsstempel markeres de `stale`. Originale tider bevares, også ved fejl i
EMC's snapshot-læsning. Alderskontrol bruger eksisterende UI-polling; fem minutter
er en datakvalitetsgrænse, ikke en udførelsesfrist. Se [Phoenix-læsningen](PhoenixPerps.md#twap-observations).
### Risiko i Perps
Risk står ved positionsnavnet og bruger tekst og en statusprik, mens Long/Short-