99: Add read-only Phoenix Perps positions to EvelynPerpsService
This commit is contained in:
+25
-12
@@ -436,24 +436,37 @@ Price Index beregnes og vises, mens de øvrige fem felter fortsat er nul. Legacy
|
||||
|
||||
`EvelynPerpsService` udleverer et immutable `PerpsSnapshot` gennem det parameterløse
|
||||
`getPositionsSnapshot()`. Læsning foretager ingen integrationskald. Hub'en starter separate processer
|
||||
`evelyn.perps.prod` og `evelyn.perps.test` og injicerer de tilsvarende eksisterende `JupiterPerpsService`-views.
|
||||
`evelyn.perps.prod` og `evelyn.perps.test`, injicerer de tilsvarende eksisterende `JupiterPerpsService`-views
|
||||
og en fælles `PhoenixPerpsService` uden positionscache registreret som `phoenix.perps.default`.
|
||||
`PerpsWalletConfiguration` indeholder en `SolanaWalletId`-adresse, der også bruges som række-ID og label.
|
||||
Hub'en ejer de hardcodede lister: seks PROD-adresser og én TEST-adresse fra issue #98.
|
||||
Begge integrationer læser de samme wallets i det pågældende miljø.
|
||||
|
||||
Servicen henter åbne Jupiter-positioner asynkront ved start og venter 60 sekunder efter hvert gennemløb,
|
||||
så runder ikke overlapper. Den eksisterende Solana-cache med 60 sekunders TTL bevares. Data er derfor ikke
|
||||
øjeblikkelige børsdata. Positionskontoen er stabilt ID; retning og `positionSize()` vises, kendte mints
|
||||
bliver SOL-PERP/BTC-PERP/ETH-PERP, og ukendte mints vises som adressen. Positioner sorteres efter konto.
|
||||
Servicen henter åbne Jupiter- og Phoenix-positioner asynkront ved start og venter 60 sekunder efter hvert
|
||||
fuldført gennemløb, så runder ikke overlapper. Den eksisterende Solana-cache med 60 sekunders TTL bevares
|
||||
for Jupiter. Phoenix læses gennem REST med 10 sekunders timeout pr. request, mindst ét sekund mellem
|
||||
request-start på tværs af miljøer og fælles cooldown ved HTTP 429. Data er periodiske snapshots.
|
||||
|
||||
Før første vellykkede opslag er der ingen positioner. Hver wallets succes publiceres i et nyt snapshot;
|
||||
fejl logges og bevarer den wallets sidste data uden at afbryde de øvrige. Et vellykket tomt svar fjerner
|
||||
positionerne, men bevarer wallet/Jupiter-gruppen. Der vises ingen indikator for forældede data.
|
||||
Implementationens `close()` afbryder worker'en; consumer-API'et indeholder kun læsning.
|
||||
Jupiters positionskonto er stabilt ID; retning og `positionSize()` vises, kendte mints bliver
|
||||
SOL-PERP/BTC-PERP/ETH-PERP, og ukendte mints vises som adressen. Positioner sorteres efter konto.
|
||||
Phoenix bruger authority-wallet og trader PDA index 0 med alle returnerede cross/isolated-subaccounts.
|
||||
Kun nonzero-positioner medtages. ID og sortering bygger på PDA-index, subaccount-index og markedssymbol;
|
||||
sekvensnumre indgår ikke. Retningen kommer fra signed quantity, label er fx SOL-PERP, og USD-størrelsen er
|
||||
absolut base-mængde gange mark price, beregnet med decimalpræcision. Se [Phoenix-integrationen](PhoenixPerps.md)
|
||||
for dokumenterede enheder, endpoints og begrænsninger.
|
||||
|
||||
Før første vellykkede opslag er der ingen positioner. Succes publiceres i et nyt snapshot pr. wallet/venue;
|
||||
fejl logges og bevarer netop den kombinations sidste data. De øvrige venues og wallets forsøges stadig.
|
||||
Et vellykket tomt svar fjerner kun den pågældende venues positioner og bevarer gruppen.
|
||||
Fejl i HTTP, authentication, svarformat eller konvertering er ikke tomme porteføljer.
|
||||
Der vises ingen indikator for forældede data. Implementationens `close()` afbryder worker'en;
|
||||
consumer-API'et indeholder kun læsning.
|
||||
|
||||
EMC spørger hver miljøservice straks ved åbning og hvert tredje sekund uden at blokere JavaFX-tråden.
|
||||
Skjul/luk stopper kun EMC-polling; services fortsætter. Træstruktur, tre kolonner, farver, formatering,
|
||||
foldestatus og markering bevares for eksisterende rækker. Nye/lukkede positioner afstemmes efter ID.
|
||||
Der er ingen sample-positioner, Phoenix-eksempler, sample-tekster, Refresh-knap eller handel.
|
||||
Skjul/luk stopper kun EMC-polling; services fortsætter. Træet er wallet → venue → position med Jupiter før
|
||||
Phoenix og uden et ekstra subaccount-niveau. Tre kolonner, farver, formatering, foldestatus og markering
|
||||
bevares for eksisterende rækker. Nye/lukkede positioner afstemmes efter ID.
|
||||
Der er ingen sample-data, Refresh-knap, handel, signering eller kontoaktivering i denne læsevej.
|
||||
|
||||
Den kanoniske systembeskrivelse findes i
|
||||
[Evelyn: services og status](../../r35157_docs/projects/evelyn/README.md#evelynperpsservice).
|
||||
|
||||
Reference in New Issue
Block a user