@reyaxyz/common 0.376.0 → 0.378.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/types/types.d.ts +11 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/realized-balance.d.ts +12 -14
- package/dist/types/utils/realized-balance.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/realized-balance.js +21 -19
- package/dist/utils/realized-balance.js.map +1 -1
- package/package.json +2 -2
- package/src/types.ts +11 -0
- package/src/utils/realized-balance.ts +21 -25
package/README.md
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
|
|
7
7
|
| Statements | Branches | Functions | Lines |
|
|
8
8
|
| --------------------------- | ----------------------- | ------------------------- | ----------------- |
|
|
9
|
-
|  |  |  |  |
|
|
10
10
|
|
package/dist/types/types.d.ts
CHANGED
|
@@ -450,15 +450,26 @@ export type TokenInfo = {
|
|
|
450
450
|
isOFT?: boolean;
|
|
451
451
|
};
|
|
452
452
|
export type GetReyaCheckerResult = {
|
|
453
|
+
/** Season 1 Reya Chain Points. */
|
|
453
454
|
isEligibleForRcp: boolean;
|
|
455
|
+
/** Season 2 Reya Chain Points. */
|
|
456
|
+
isEligibleForRcpS2: boolean;
|
|
454
457
|
isEligibleForVltz: boolean;
|
|
455
458
|
isEligibleForCommunity: boolean;
|
|
459
|
+
/** Past competitions paid directly in REYA. */
|
|
460
|
+
isEligibleForCompetitions: boolean;
|
|
456
461
|
};
|
|
462
|
+
/** Claim-now amounts in REYA; `total` is the sum of the categories. */
|
|
457
463
|
export type TgeAllocatedAmount = {
|
|
458
464
|
total: number;
|
|
459
465
|
vltz: number;
|
|
466
|
+
/** Season 1 Reya Chain Points. */
|
|
460
467
|
rcp: number;
|
|
468
|
+
/** Season 2 Reya Chain Points. */
|
|
469
|
+
rcpS2: number;
|
|
461
470
|
community: number;
|
|
471
|
+
/** Past competitions paid directly in REYA. */
|
|
472
|
+
competitions: number;
|
|
462
473
|
};
|
|
463
474
|
export type TrancheInfo = {
|
|
464
475
|
trancheId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["types.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,22 +57,20 @@ export declare function positionAdjustmentTrackers<T extends Pick<RealizedBalanc
|
|
|
57
57
|
/** Mirrors perpOB updatePerpPosition, including PRBMath truncation at each step. */
|
|
58
58
|
export declare function calculateSettledPositionPnl(position: RealizedBalancePosition, trackers: RealizedBalanceTrackers | undefined, onGuarded?: () => void): BigNumber;
|
|
59
59
|
/**
|
|
60
|
-
* Raw E18 funding on an open position since
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
60
|
+
* Raw E18 funding on an open position since its size last changed (a fill,
|
|
61
|
+
* liquidation or ADL unwind): the funding Core settles into the position's
|
|
62
|
+
* realized PnL at its next change (`computeFundingCashflow` in perpOB), from
|
|
63
|
+
* the position's stored funding value to the market trackers. The settled
|
|
64
|
+
* balance already counts it (`calculateSettledPositionPnl`), so this
|
|
65
|
+
* attributes it to the position and must never be added to a balance.
|
|
66
|
+
* Positive means the position received funding.
|
|
65
67
|
*
|
|
66
|
-
* The stored base over the multiplier
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
68
|
+
* The stored base over the stored multiplier is the same ratio as the
|
|
69
|
+
* ADL-adjusted base over the current multiplier, so no ADL adjustment is
|
|
70
|
+
* needed. Market trackers behind the position's own snapshot accrue nothing,
|
|
71
|
+
* as in settlement.
|
|
70
72
|
*/
|
|
71
|
-
export declare function
|
|
72
|
-
average_entry_funding_value: {
|
|
73
|
-
toString(): string;
|
|
74
|
-
} | null;
|
|
75
|
-
}, trackers: RealizedBalanceTrackers | undefined): BigNumber;
|
|
73
|
+
export declare function calculatePositionFundingSinceChange(position: RealizedBalancePosition, trackers: RealizedBalanceTrackers | undefined): BigNumber;
|
|
76
74
|
/**
|
|
77
75
|
* Returns raw E18 PnL aligned to collateral units. The instrument floors EACH
|
|
78
76
|
* market's PnL to quote-token precision before Core aggregates collateral info.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realized-balance.d.ts","sourceRoot":"/","sources":["utils/realized-balance.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;IAClC,IAAI,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,aAAa,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,eAAe,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,UAAU,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C,wFAAwF;IACxF,YAAY,CAAC,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,4EAA4E;AAC5E,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,SAAS,GAAG,cAAc;gBADlC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAAG,cAAc;CAWrD;AAaD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,EACvD,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,GACrD,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,IAAI,CACZ,uBAAuB,EACrB,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,GAC5B,6BAA6B,GAC7B,aAAa,CAChB,EAED,QAAQ,EAAE,IAAI,CACZ,uBAAuB,EACvB,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CACxD,EACD,QAAQ,EAAE,CAAC,GACV,CAAC,CAgBH;AAOD,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,EAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,SAAS,CAuEX;AAED
|
|
1
|
+
{"version":3,"file":"realized-balance.d.ts","sourceRoot":"/","sources":["utils/realized-balance.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,kEAAkE;AAClE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;IAClC,IAAI,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,aAAa,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,eAAe,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,UAAU,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1C,wFAAwF;IACxF,YAAY,CAAC,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,4EAA4E;AAC5E,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,SAAS,GAAG,cAAc;gBADlC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAAG,cAAc;CAWrD;AAaD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,EACvD,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,GACrD,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,IAAI,CACZ,uBAAuB,EACrB,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,GAC5B,6BAA6B,GAC7B,aAAa,CAChB,EAED,QAAQ,EAAE,IAAI,CACZ,uBAAuB,EACvB,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CACxD,EACD,QAAQ,EAAE,CAAC,GACV,CAAC,CAgBH;AAOD,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,EAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,SAAS,CAuEX;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,SAAS,CAqBX;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,uBAAuB,EAAE,EACpC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAC1D,kBAAkB,EAAE,MAAM,EAC1B,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,SAAS,CAaX"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"/","sources":["types.ts"],"names":[],"mappings":"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","sourcesContent":["import { TradingApiSource, Replication } from './trading-api-types';\nimport { Stringified } from './api-types';\n\nimport {\n CoreCommandsEIP712SignatureAndPayload,\n EIP712Signature,\n} from './transactions';\nimport { JsonRpcSigner, Signer } from 'ethers';\n\nexport type Address = Lowercase<string>;\nexport type TokenName = Uppercase<string>;\n\n// -- Markets --\nexport type MarketOrderInfo = {\n counterpartyAccountIds: number[];\n exchangeId: number;\n};\n\nexport type MarketEntity = {\n id: number;\n ticker: string;\n underlyingAsset: string;\n quoteToken: string;\n quoteTokenId: string;\n markPrice: number;\n isActive: boolean;\n maxLeverage: number;\n volume24H: number;\n priceChange24H: number;\n priceChange24HPercentage: number;\n marketPriceDeviation: number;\n openInterest: number;\n fundingRate: number;\n fundingRateAnnualized: number;\n description: string;\n orderInfo: MarketOrderInfo;\n tickSizeDecimals: number;\n minOrderSize: number;\n minOrderSizeBase: number;\n baseSpacing: number;\n priceSpacing: number;\n longOI: number;\n shortOI: number;\n longSkewPercentage: number;\n shortSkewPercentage: number;\n availableLong: number;\n availableShort: number;\n};\n\nexport enum ReyaChainId {\n reyaNetwork = 1729,\n reyaLocal = 31337,\n reyaCronos = 89346162,\n}\n\nexport enum MoneyInOutChainId {\n // mainnet\n ethereumMainnet = 1,\n opMainnet = 10,\n polygonMainnet = 137,\n arbitrumOne = 42161,\n baseMainnet = 8453,\n // testnet\n arbitrumSepolia = 421614,\n opSepolia = 11155420,\n ethereumSepolia = 11155111,\n}\n\nexport enum CandlesResolution {\n ONE_MINUTE = '1MIN',\n FIVE_MINUTES = '5MINS',\n FIFTEEN_MINUTES = '15MINS',\n THIRTY_MINUTES = '30MINS',\n ONE_HOUR = '1HOUR',\n FOUR_HOURS = '4HOURS',\n ONE_DAY = '1DAY',\n}\n\n// -- Candles --\nexport interface Candle {\n id: string;\n startedAt: string;\n ticker: string;\n resolution: CandlesResolution;\n low: string;\n high: string;\n open: string;\n close: string;\n baseTokenVolume: string;\n usdVolume: string;\n trades: number;\n startingOpenInterest: string;\n}\n\n// -- Account --\n\nexport type Status = 'OPEN' | 'CLOSED' | 'LIQUIDATED' | 'FILLED';\nexport type Side = 'long' | 'short';\n\nexport type CollateralEntity = {\n token: string;\n address: string;\n percentage: number;\n balance: number;\n balanceRUSD: number;\n balanceWithHaircutRUSD: number;\n exchangeRate: number;\n exchangeRateWithHaircut: number;\n exchangeRateChange24HPercentage: number;\n yieldPercentage?: number;\n};\n\nexport type CollateralWithHaircut = {\n address: string;\n priceHaircut: number;\n};\n\nexport type MarginRatioHealth = 'danger' | 'healthy' | 'warning';\n\nexport type MarginAccountEntity = {\n id: number;\n name: string;\n marginRatioHealth: MarginRatioHealth;\n marginRatioPercentage: number;\n marginRatioHealthDangerThreshold: number;\n marginRatioHealthWarningThreshold: number;\n isApproachingLiquidation: boolean;\n isLiquidationImminent: boolean;\n totalBalance: number;\n liquidationMarginRequirement: number;\n totalBalanceUnderlyingAsset: string;\n totalBalanceChange24HPercentage: number;\n totalBalanceWithHaircut: number;\n livePnL: number;\n livePnLUnderlyingAsset: string;\n realizedPnL: number;\n realizedPnLUnderlyingAsset: string;\n realizedPnlHistoryTotal: number;\n totalPositionsCount: number;\n collaterals: CollateralEntity[];\n positions?: PositionEntity[];\n};\n\nexport type StrippedMarginAccountEntity = Pick<\n MarginAccountEntity,\n 'id' | 'name'\n>;\n\n// PRO-126 Bug 5: `ConditionalOrdersInfo` and the\n// `PositionEntity.conditionalOrdersInfo` field that surfaced\n// pending SL/TP info on positions were retired alongside the\n// `OrdersGateway.execute` / conditional-orders DB pipeline. The\n// off-chain API no longer has a backing source for live trigger\n// metadata; once the ME exposes pending trigger info via its own\n// surface, an equivalent field can be reintroduced sourcing from\n// there.\n\nexport type PositionEntity = {\n id: number;\n side: Side;\n size: number;\n base: number;\n price: number;\n markPrice: number;\n orderStatus: Status;\n realisedPnl: number;\n priceVariationPnl: number;\n livePnL: number;\n fundingPnl: number;\n unrealisedPnl: number;\n liquidationPrice: number;\n marketId: number;\n accountId: number;\n};\n\nexport type OrderHistoryType =\n | 'long-trade'\n | 'short-trade'\n | 'long-liquidation'\n | 'short-liquidation';\n\nexport type OrderHistoryEntity = {\n id: string;\n action: OrderHistoryType;\n orderType: 'market';\n base: number;\n executionPrice: number;\n realisedPnl?: number | null;\n priceVariationPnl: number;\n fundingPnl: number;\n fees: number;\n openingFees: number;\n timestamp: number;\n marketId?: number;\n xpEarned: number;\n};\n\nexport type ApyDetails = {\n dailyApy: number;\n weeklyApy: number;\n monthlyApy: number;\n yearlyApy: number;\n};\n\nexport type LpPoolEntity = {\n id: number;\n name: string;\n description: string;\n longDescription: string;\n readMoreLink: string;\n currentAPY: number;\n apyDetails: ApyDetails;\n apyChange24H: number;\n tokenAddress: Address;\n token: string;\n minDepositAmount: number;\n minWithdrawAmount: number;\n stepSize: number;\n allowedChainsForLiquidity: MoneyInOutChainId[];\n moneyInOutConfiguration: MoneyInOutConfiguration;\n};\n\nexport type MoneyInOutConfiguration = {\n [key in MoneyInOutChainId]?: {\n minWithdrawAmount?: number;\n };\n};\n\nexport type MoneyInOutConfigurationPerTokenName = {\n [key in TokenName]?: MoneyInOutConfiguration;\n};\n\nexport type LpWithdrawBalanceEntity = {\n withdrawableBalance: number;\n poolSharePrice: number;\n accountShareBalance: number;\n balanceBreakdown: {\n [coinName: string]: {\n balance: number;\n priceTokenToRusd: number;\n tokenAddress: string;\n };\n };\n};\n\nexport type TransactionHistoryType = 'deposit' | 'withdrawal';\n\nexport type LpTransactionHistoryEntity = {\n id: number;\n type: TransactionHistoryType;\n token: string;\n share: number;\n tokenAddress: string;\n amount: number;\n transactionLink: string;\n timestamp: number;\n};\n\nexport type TokenEntity = {\n name: TokenName;\n address: Address;\n};\n\n// --- Lp Pool Balance ---\nexport enum LpBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\n// - LP Account Performance -\nexport type GetLpPoolPerformanceChartDataResult = {\n capitalInvestedData: {\n timestampInMs: number;\n value: number;\n }[];\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n balance: number;\n balanceChangePercentage: number;\n capitalInvested: number;\n capitalInvestedChangePercentage: number;\n};\n\nexport type SocketTokenConnectors = {\n deposit: Address;\n withdraw: Address;\n};\n\nexport type GetSocketConnectorsParams = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n};\n\nexport type GetSocketVaultParams = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n};\n\nexport type GetMoneyInOutChainIdFromReyaConnectorParams = {\n reyaChainId: ReyaChainId;\n tokenName: TokenName;\n socketConnector: Address;\n};\n\nexport type GetSocketBridgeTimeParams = {\n moneyInOutChainId: MoneyInOutChainId;\n};\n\nexport type GetSocketBridgeTimeResult = {\n bridgeTimeInMS: number;\n};\n\nexport type GetSocketWithdrawMsgGasLimitParams = {\n moneyInOutChainId: MoneyInOutChainId;\n};\n\nexport type GetSocketWithdrawMsgGasLimitResult = {\n msgGasLimit: bigint;\n};\n\nexport type SocketDepositFeesEntry = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n fees: bigint;\n};\n\nexport type SocketWithdrawFeesEntry = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n fees: bigint;\n};\n\nexport type SocketDepositFees = {\n fees: bigint;\n feesInUnderlyingToken: number;\n underlyingTokenName: TokenName;\n};\n\nexport type SocketWithdrawFees = {\n fees: bigint;\n feesInUnderlyingToken: number;\n underlyingTokenName: TokenName;\n};\n\nexport type GetSocketWithdrawFeesParams = {\n reyaChainId: ReyaChainId;\n tokenAddress: TokenEntity['address'];\n};\n\nexport type GetSocketWithdrawFeesResult = {\n fees: number;\n};\n\n// --- Margin Account Balance ---\nexport enum MarginAccountBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\nexport type GetMarginAccountBalanceChartDataResult = {\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n balance: number;\n balanceChangePercentage: number;\n};\n\n// --- Margin Account Collaterals Balance ---\nexport enum MarginAccountCollateralsBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\nexport type GetMarginAccountCollateralsBalanceChartDataResult = {\n data: {\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n token: string;\n }[];\n balance: number;\n balanceChangePercentage: number;\n};\n\nexport type OwnerMetadataEntity = {\n address: Address;\n coreSigNonce: number;\n poolSigNonce: number;\n};\n\nexport type GetAllMarginAccountsBalanceChartDataResult = {\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n balance: number;\n balanceChangePercentage: number;\n};\n\nexport enum AllMarginAccountsBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\n// --- Funding Rate History ----\nexport enum FundingRateHistoryGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\nexport type GetFundingRateChartDataResult = {\n fundingRateData: {\n timestampInMs: number;\n value: number;\n }[];\n fundingRate: number;\n};\nexport type GetCurrentFundingRateResult = {\n value: number;\n timestamp: number;\n};\n\nexport type GetInstantPoolPriceResult = {\n poolPrice: number;\n poolSlippage: number;\n oraclePrice: number;\n};\n\nexport type GetBalancesForBridgeArgs = {\n walletAddress: string;\n};\n\nexport type SignatureData = {\n signature: string;\n timestamp: number;\n walletAddress: Address;\n version: string;\n};\n\nexport type SaveSignatureResult = {\n signatureSavedSuccessfully: boolean;\n};\n\n// --- Community ----\nexport type VoteDetailsEntity = {\n id: number;\n startDate: number; // timestamp in UTC milliseconds\n endDate: number; // timestamp in UTC milliseconds\n percentageToPass: number; // Example: 4%\n yesCount: number;\n noCount: number;\n voteCountToPass: number; // Example: 1453\n slug: string;\n title: string;\n // Free text, each newline represents paragraph. UI splits by \\n atm to keep stuff simple\n description: string;\n};\n\nexport type VoteContractDetailsEntity = {\n id: number;\n contractAddress: Address;\n};\n\nexport type VoteStatusEntity = {\n votingPower: number;\n hasVoted: boolean;\n};\n\nexport type GetLpTvlResult = {\n currentTVL: number;\n currentLiquidity: number;\n};\n\nexport type Rank = {\n rankNumber: number;\n rankLetter: string;\n rankName: string;\n};\n\nexport type RankTrading = {\n rankNumber: number;\n rankName: string;\n};\n\nexport type GetWalletReferralDetailsParams = {\n address: string;\n};\n\nexport type GetWalletReferralDetailsResult = {\n totalReferralsCount: number;\n totalReferralXP: number;\n tradingRebateFee: number;\n tradingXp: number;\n liquidityXp: number;\n isAffiliate: boolean;\n};\n\nexport type GetWalletReferralCodeParams = {\n address: string;\n};\n\nexport type GetWalletReferralCodeResult = {\n referralCode: string;\n};\n\nexport type TokenEntityWithMinValue = TokenEntity & {\n minDepositAmount: number;\n minWithdrawAmount: number;\n minTransferAmount: number;\n};\n\nexport type TokenInfo = {\n name: TokenName;\n address: Address;\n decimals: number;\n isRUSDUnderlying: boolean;\n minDepositAmount: number;\n minWithdrawAmount: number;\n minTransferAmount: number;\n whitelistedWalletOnly?: boolean;\n isElixirToken?: boolean;\n isLmToken?: boolean;\n isPoolToken?: boolean;\n isOFT?: boolean;\n};\n\nexport type GetReyaCheckerResult = {\n isEligibleForRcp: boolean;\n isEligibleForVltz: boolean;\n isEligibleForCommunity: boolean;\n};\n\nexport type TgeAllocatedAmount = {\n total: number;\n vltz: number;\n rcp: number;\n community: number;\n};\n\nexport type TrancheInfo = {\n trancheId: number;\n amount: number;\n deadlineMs: number;\n released: boolean;\n};\n\n/**\n * The TGE distributor's claiming settings (`getConfiguration()`'s\n * `claimingConfig`). Every field is the contract's uint256 as a decimal\n * string: timestamps and durations in seconds, and `lockMultiplier` as the\n * raw UD60x18 value (\"2000000000000000000\" is 2x).\n */\nexport type TgeDistributionConfig = {\n /** Seconds from a lock until its single tranche falls due. */\n lockDuration: string;\n lockMultiplier: string;\n /** Seconds between a claim's tranches. */\n streamInterval: string;\n /** Tranches per claim; the first is paid in the claim transaction. */\n streamTranchesCount: string;\n /** Claims and locks are accepted from this time (unix seconds)... */\n startTimestamp: string;\n /** ...until this time (unix seconds), both inclusive. */\n endTimestamp: string;\n};\n\nexport type GetTgeClaimingInfoResult = {\n wallet: string;\n amount: TgeAllocatedAmount;\n hasClaimed?: boolean;\n hasLocked?: boolean;\n distributorContract?: string;\n merkleRoot?: string;\n tranches?: TrancheInfo[];\n /** Null when the distributor could not be read. */\n config: TgeDistributionConfig | null;\n};\n\nexport type TgeClaimTokensResult = {\n success: boolean;\n wallet: string;\n amount: TgeAllocatedAmount;\n transactionHash: string;\n};\n\n// --- TOS ----\n\nexport type TRMRiskAssessment = {\n accountExternalId: string;\n address: string;\n addressRiskIndicators: TMRRiskIndicator[];\n addressSubmitted: string;\n chain: string;\n entities: unknown[];\n trmAppUrl: string;\n};\n\nexport type TMRRiskIndicator = {\n category: string;\n categoryId: string;\n categoryRiskScoreLevel: number;\n categoryRiskScoreLevelLabel: string;\n incomingVolumeUsd: string;\n outgoingVolumeUsd: string;\n riskType: string;\n totalVolumeUsd: string;\n};\n\n// todo: deprecate after 1st tac client is deprecated\nexport type ToSVersionDetails = {\n text: string;\n version: string;\n creationTimestamp: number; // in MS\n};\n\nexport type ToSProductVersionDetails = {\n shortText: string;\n longText: string;\n version: string;\n creationTimestamp: number; // in MS\n product: string;\n};\n\nexport type SocketBridgeTransactionPoolStatus =\n | 'pending'\n | 'confirmed'\n | 'failed';\n\nexport type IpInfo = {\n ip: string;\n hostname: string;\n city: string;\n region: string;\n country: string;\n loc: string;\n org: string;\n postal: string;\n timezone: string;\n privacy: {\n vpn: boolean;\n proxy: boolean;\n tor: boolean;\n relay: boolean;\n hosting: boolean;\n service: string;\n };\n countryCode: string;\n countryFlag: {\n emoji: string;\n unicode: string;\n };\n countryFlagURL: string;\n countryCurrency: {\n code: string;\n symbol: string;\n };\n continent: {\n code: string;\n name: string;\n };\n isEU: boolean;\n};\n\nexport interface CandleMessage {\n /** Stringified JSON object of all events to be streamed. */\n contents: string;\n /** Clob pair id of the Candle message. */\n\n clobPairId: string;\n /** Resolution of the candle update. */\n\n resolution: string;\n /** Version of the websocket message. */\n\n version: string;\n}\n\nexport interface PriceMessage {\n contents: string;\n assetPairId: string;\n version: string;\n}\n\nexport interface FundingRateMessage {\n contents: string;\n assetPairId: string;\n version: string;\n}\n\nexport interface MarketsUpdateMessage {\n contents: string;\n version: string;\n id: string;\n}\n\nexport enum CandleResolution {\n ONE_MINUTE = '1MIN',\n FIVE_MINUTES = '5MINS',\n FIFTEEN_MINUTES = '15MINS',\n THIRTY_MINUTES = '30MINS',\n ONE_HOUR = '1HOUR',\n FOUR_HOURS = '4HOURS',\n ONE_DAY = '1DAY',\n}\n\nexport type TransactionExecutionMetadata = {\n accountName?: string;\n accountSource?: string;\n accountId?: number;\n marketId?: number;\n destinationType?: 'pool' | 'account';\n action?:\n | 'matchOrder'\n | 'closeOrder'\n | 'createAccount'\n | 'ioc-order-ui'\n | 'ioc-order-api-v2'\n | 'ioc-reduce-only-order-ui'\n | 'ioc-reduce-only-order-api-v2'\n | 'enable-api-wallet'\n | 'disable-api-wallet';\n tradeSource?: 'reya' | 'rage' | 'other';\n sender?: string;\n clientSentTimestamp?: number; // Timestamp (ms) when client sent the request\n clientTimezone?: string; // Client's timezone (e.g., 'America/New_York', 'Europe/London')\n matchOrder?: {\n eip712Payload: CoreCommandsEIP712SignatureAndPayload['payload'];\n userEIP712Signature: EIP712Signature;\n };\n};\n\nexport type TransactionExecutionOutput = {\n txHash: string | null;\n txSubmitted?: boolean;\n errorMessage?: string;\n /**\n * Structured error discriminator surfaced by the slim\n * `executeReyaTransaction` core. One of\n * `TRANSACTION_FAILED_TO_SEND` (pre-send: wallet manager rejected),\n * `RECEIPT_NOT_FOUND` (post-send: receipt fetch failed),\n * `TRANSACTION_REVERTED` (post-send: receipt.status === 0), or\n * `FAILED_FILL` (post-send: FailedUnifiedFillBytes / FailedFillBytes).\n * Optional — populated when the slim core returned a discriminated\n * failure. May coexist with a non-null `txHash` on post-send failures\n * (the on-chain hash is surfaced for `RECEIPT_NOT_FOUND`,\n * `TRANSACTION_REVERTED`, and `FAILED_FILL`). UI consumers should prefer\n * `errorMessage` for display; this field is for analytics + logs.\n *\n * `FAILED_ORDER` (used to be: FailedOrderBytes) is retired alongside\n * the legacy `OrdersGateway.execute` IOC handler in PRO-126 Bug 5.\n */\n errorCode?: string;\n accountId?: string | null;\n coreSigNonce?: string | null;\n poolSigNonce?: string | null;\n miscellaneous?: {\n tradeXpBoost?: number;\n lotteryXpBoost?: number;\n xpNftAwarded?: boolean;\n xpEarned?: number;\n };\n tradeDetails?: {\n executionPrice?: number;\n base?: number;\n };\n positions?: {\n market_id: string;\n account_id: string;\n base: string | null;\n realized_pnl: string | null;\n last_price: string | null;\n position_data_last_price_data_timestamp: string | null;\n funding_value: string | null;\n base_multiplier: string | null;\n adl_unwind_price: string | null;\n transaction_hash: string;\n block_timestamp: string | null;\n block_number: string;\n unique_id: string | null;\n }[];\n orders?: {\n id: string;\n market_id: string | null;\n account_id: string | null;\n order_base: string | null;\n fee: string | null;\n price: string | null;\n type: string;\n processed: boolean;\n transaction_hash: string;\n block_timestamp: string | null;\n block_number: string;\n source: string | null;\n unique_id: string | null;\n }[];\n accounts?: Omit<\n Stringified<TradingApiSource['wallet/:address/accounts']['response'][0]>,\n 'status'\n >[];\n //orderAndPositionUpdate?: Stringified<PassivePerpOrderAndPositionUpdate>[];\n};\n\nexport type CanonicalReleaseStatus = 'pending' | 'ready' | 'completed';\n\ntype PendingWithdrawalStatus = {\n status: 'pending';\n};\n\ntype ReadyWithdrawalStatus = {\n status: 'ready';\n txHash: string;\n};\n\nexport type PendingWithdrawal = {\n tokenAmount: number;\n} & (PendingWithdrawalStatus | ReadyWithdrawalStatus);\n\n// PRO-126 Bug 5 retired the legacy `OrdersGatewayOrderType` enum (the\n// 8-field `ConditionalOrderDetails` typehash discriminator). The\n// on-chain `OrdersGateway.execute` selector that consumed those values\n// is gone; every order class now uses `OrderType` below, whose values\n// mirror the on-chain `OrderType` enum in\n// orders-gateway/src/libraries/DataTypes.sol.\nexport enum OrderType {\n Limit = 0,\n StopLoss = 1,\n TakeProfit = 2,\n}\n\n// Matches the on-chain `MarketType` enum. Used to discriminate spot vs perp\n// in unified off-chain code paths and with the market-id namespace helpers in\n// packages/common-backend/src/market-id-namespace.\nexport enum MarketType {\n Spot = 0,\n Perp = 1,\n}\n\n// Canonical on-chain V3 codes, also written by the pre-cutover V2 indexer.\nexport { CanonicalExecutionType as ExecutionType } from './canonical-execution-type';\n\nexport enum ConditionalOrderType {\n STOP_LOSS = 0,\n TAKE_PROFIT = 1,\n LIMIT_ORDER = 2,\n}\n\nexport type ConditionalOrderTypeName =\n | 'Stop Loss'\n | 'Take Profit'\n | 'Limit Order';\n\nexport enum ConditionalOrderStatus {\n PENDING = 'pending',\n FILLED = 'filled',\n CANCELLED = 'cancelled',\n REJECTED = 'rejected',\n}\n\nexport enum TierType {\n REGULAR = 'REGULAR',\n VIP = 'VIP',\n}\n\nexport type ConditionalOrder = {\n orderId: string;\n accountId: number;\n marketId: number;\n orderType: ConditionalOrderTypeName;\n isLong: boolean;\n triggerPrice: number;\n signerWallet: string;\n nonce: string;\n signature: string;\n eip712Signature: EIP712Signature;\n status: ConditionalOrderStatus;\n creationTimestampMs: number;\n lastUpdateTimestampMs: number;\n base: number;\n exchangeId: number;\n inputs: string;\n counterpartyAccountId: number;\n};\n\nexport type UnifiedConditionalOrderType = {\n orderId: string;\n accountId: number;\n marketId: number;\n base: number | null; // null when order is cancelled\n isLong: boolean;\n price: number;\n status: ConditionalOrderStatus;\n orderType: ConditionalOrderTypeName;\n timestampMs: number;\n};\n\nexport type IsDiscordLinkedParams = {\n address: string;\n};\nexport type IsDiscordLinkedResult = {\n isLinked: boolean;\n};\nexport type LinkDiscordParams = {\n discordAccessToken: string;\n signer: Signer | JsonRpcSigner;\n};\nexport type LinkDiscordResult = void;\nexport type UnlinkDiscordParams = {\n address: string;\n discordAccessToken: string;\n};\nexport type UnlinkDiscordResult = void;\nexport type ClaimDiscordRankParams = {\n address: string;\n discordAccessToken: string;\n};\nexport type ClaimDiscordRankResult = void;\n\nexport type IsDiscordRankClaimedParams = {\n address: string;\n};\nexport type IsDiscordRankClaimedResult = {\n isClaimed: boolean;\n};\n\nexport interface ApiErrorResponse {\n response: {\n status: number;\n data: {\n error: string;\n };\n };\n}\n\n// ref: https://github.com/tkhq/sdk/blob/08e2b8c30848498ed0850aa1e1ede67775b001e5/packages/http/src/__generated__/\n// services/coordinator/public/v1/public_api.types.ts\nexport type V1Attestation = {\n /** @description The cbor encoded then base64 url encoded id of the credential. */\n credentialId: string;\n /** @description A base64 url encoded payload containing metadata about the signing context and the challenge. */\n clientDataJson: string;\n /** @description A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses. */\n attestationObject: string;\n /** @description The type of authenticator transports. */\n transports: V1AuthenticatorTransport[];\n};\n\nexport type V1AuthenticatorTransport =\n | 'AUTHENTICATOR_TRANSPORT_BLE'\n | 'AUTHENTICATOR_TRANSPORT_INTERNAL'\n | 'AUTHENTICATOR_TRANSPORT_NFC'\n | 'AUTHENTICATOR_TRANSPORT_USB'\n | 'AUTHENTICATOR_TRANSPORT_HYBRID';\n\n// on-chain events (consider pushing into a separate file)\nexport type MatchOrderDetails = {\n uniqueId: string;\n transactionHash: string;\n accountId: number;\n marketId: number;\n sizeNotional: number;\n base: number;\n price: number;\n};\n\nexport type GetLpPoolPositionRPCResponse = {\n poolPositionShareBalance: number; // amount of srUSD in the pool held by the account\n poolPositionBalance: number; // amount of rUSD in the pool held by the account\n poolTotalBalance: number; // total amount of rUSD in the pool\n sharePrice: number; // share price of the pool\n};\n\ninterface MatchOrderFees {\n protocolFeeCredit: bigint;\n exchangeFeeCredit: bigint;\n takerFeeDebit: bigint;\n makerPayments: bigint[];\n referrerFeeCredit: bigint;\n}\n\ninterface PositionDataOld {\n base: bigint;\n realizedPnL: bigint;\n lastPriceData: {\n price: bigint;\n timestamp: bigint;\n };\n trackers: {\n fundingValue: bigint;\n baseMultiplier: bigint;\n adlUnwindPrice: bigint;\n };\n}\n\nexport interface PassivePerpOrderAndPositionUpdate {\n id: string;\n marketId: bigint;\n accountId: bigint;\n counterpartyAccountId: bigint;\n executedBase: bigint;\n matchOrderFees: MatchOrderFees;\n executedPrice: bigint;\n referrerAccountId: bigint;\n isMatchOrder: boolean;\n liquidationType: bigint;\n positionData: PositionDataOld;\n counterpartyPositionData: PositionDataOld;\n blockTimestamp: bigint;\n blockNumber: string;\n transactionHash: string;\n uniqueId: bigint;\n}\n\nexport type ConfiguredAssetPair =\n | 'ETHUSD'\n | 'WSTETHUSD'\n | 'WBTCUSD'\n | 'BTCUSD' // Localnet's mock BTC collateral feed\n | 'USDCUSD'\n | 'USDEUSD'\n | 'SUSDEUSD'\n | 'DEUSDUSD'\n | 'SDEUSDDEUSD'\n | 'REYALM#AMBERUSDC'\n | 'REYALM#HEDGEUSDC'\n | 'SRUSDRUSD_RR'\n | 'REYAPOOL#1'\n | 'REYARUSD'\n | 'SREYARUSD'\n | 'ETHUSDMARK'\n | 'BTCUSDMARK'\n | 'SOLUSDMARK'\n | 'ARBUSDMARK'\n | 'OPUSDMARK'\n | 'AVAXUSDMARK'\n | 'MKRUSDMARK'\n | 'LINKUSDMARK'\n | 'AAVEUSDMARK'\n | 'CRVUSDMARK'\n | 'UNIUSDMARK'\n | 'SUIUSDMARK'\n | 'TIAUSDMARK'\n | 'SEIUSDMARK'\n | 'ZROUSDMARK'\n | 'XRPUSDMARK'\n | 'WIFUSDMARK'\n | '1000PEPEUSDMARK'\n | 'POPCATUSDMARK'\n | 'DOGEUSDMARK'\n | '1000SHIBUSDMARK'\n | '1000BONKUSDMARK'\n | 'APTUSDMARK'\n | 'BNBUSDMARK'\n | 'JTOUSDMARK'\n | 'ADAUSDMARK'\n | 'LDOUSDMARK'\n | 'POLUSDMARK'\n | 'NEARUSDMARK'\n | 'FTMUSD'\n | 'ENAUSDMARK'\n | 'EIGENUSDMARK'\n | 'PENDLEUSDMARK'\n | 'GOATUSDMARK'\n | 'GRASSUSDMARK'\n | '1000NEIROUSDMARK'\n | 'DOTUSDMARK'\n | 'LTCUSDMARK'\n | 'PYTHUSDMARK'\n | 'JUPUSDMARK'\n | 'PENGUUSDMARK'\n | 'TRUMPUSDMARK'\n | 'HYPEUSDMARK'\n | 'VIRTUALUSDMARK'\n | 'AI16ZUSDMARK'\n | 'AIXBTUSDMARK'\n | 'SUSDMARK'\n | 'FARTCOINUSDMARK'\n | 'GRIFFAINUSDMARK'\n | 'WLDUSDMARK'\n | 'ATOMUSDMARK'\n | 'APEUSDMARK'\n | 'TONUSDMARK'\n | 'ONDOUSDMARK'\n | 'TRXUSDMARK'\n | 'INJUSDMARK'\n | 'MOVEUSDMARK'\n | 'BERAUSDMARK'\n | 'LAYERUSDMARK'\n | 'TAOUSDMARK'\n | 'IPUSDMARK'\n | 'MEUSDMARK'\n | 'PUMPUSDMARK'\n | 'MORPHOUSDMARK'\n | 'SYRUPUSDMARK'\n | 'AEROUSDMARK'\n | 'KAITOUSDMARK'\n | 'ZORAUSDMARK'\n | 'PROVEUSDMARK'\n | 'PAXGUSDMARK'\n | 'YZYUSDMARK'\n | 'XPLUSDMARK'\n | 'WLFIUSDMARK'\n | 'LINEAUSDMARK'\n | 'MEGAUSDMARK'\n | 'LITUSDMARK'\n // RWA mark feed identities on every supported chain; publication is separate.\n | RwaMarkAssetPair;\n\ntype SpotPair<T extends string> = T extends `${infer Base}USDMARK`\n ? `${Base}USD`\n : never;\n\n/**\n * Base assets of the RWA perpetual markets (ids 76-94; registration is a separate per-chain release gate). Stork publishes each as a pair of\n * USDC-quoted feeds, so neither is ever divided by USDCUSD.\n */\nexport type RwaStorkAsset =\n | 'XAU'\n | 'XAG'\n | 'WTI'\n | 'AAPL'\n | 'MSFT'\n | 'GOOGL'\n | 'AMZN'\n | 'NVDA'\n | 'META'\n | 'TSLA'\n | 'SPY'\n | 'QQQ'\n | 'SPCX'\n | 'MU'\n | 'CRCL'\n | 'INTC'\n | 'HOOD'\n | 'AMD'\n | 'MSTR';\n\n/**\n * Stork actual-mark feed. It is each RWA market's on-chain `oracleNodeId`, the\n * reference for the mark-push and fill collars, so the oracle updater pushes it.\n */\nexport type RwaMarkAssetPair = `${RwaStorkAsset}USDC_MK`;\n\n/**\n * Stork exchange-index feed. Only the matching engine and the API index price\n * read it; nothing on-chain references it.\n */\nexport type RwaIndexAssetPair = `${RwaStorkAsset}USDC_IDX`;\n\n/** Internal cache keys whose prices mirror an existing reference feed. */\nexport type MirroredAssetPair =\n | 'REYALM#KEYROCKRUSD'\n | 'REYALM#FLOWRUSD'\n | 'REYALM#SELINIRUSD';\n\n/** Includes Stork spot feeds and mirrored price cache keys. */\nexport type AssetPair =\n | ConfiguredAssetPair\n | SpotPair<ConfiguredAssetPair>\n | RwaIndexAssetPair\n | MirroredAssetPair\n // Historical/cache input only; no active producer owns this retired key.\n | 'REYALM#SELINIUSDC';\n\nexport type ContractId = string;\n\nexport type Price = {\n symbol: number;\n oraclePrice: string;\n poolPrice: string | null;\n updatedAt: number;\n};\n\nexport type MarketPrice = {\n marketId: number;\n /** @deprecated No longer written; will be removed when V1 prices endpoints are dropped. */\n price?: string;\n /**\n * ME mark price (E18), despite the name — the pool-price task has written the\n * matching-engine mark here since the perpOB rewire. Surfaced as the v2\n * `MarketSummary.markPrice`. The genuine index price is `indexPrice`.\n */\n oraclePrice: string;\n /**\n * Orderbook mid (E18). Absent on an empty or one-sided book — there is\n * deliberately no mark-price fallback, because publishing the mark under the\n * name \"mid\" makes a book with no two-sided quote indistinguishable from one\n * trading exactly at the mark. Consumers must treat it as optional, the same\n * way `SpotMarketSummary.throttledMidPrice` has always been treated.\n */\n poolPrice?: string;\n /**\n * Stork reference/index price (E18), rUSD-quoted on a USDC basis. Explicit\n * USDC feeds pass through; USD feeds are divided by a fresh USDCUSD value.\n * Absent when the feed has no fresh tick, a required cross-rate is unusable, and on\n * markets with no Stork feed, so consumers must treat it as optional rather\n * than substituting a stale value.\n */\n indexPrice?: string;\n /** When this row was written (Unix ms); rewritten on every flush. */\n updatedAt: number;\n /**\n * Source time of `oraclePrice` (Unix ms): the matching engine's own mark\n * timestamp. Absent on rows written before it was recorded.\n */\n oraclePriceUpdatedAt?: number;\n};\n\nexport type CollateralPrice = {\n address: string;\n oraclePrice: string;\n /** When this row was written (Unix ms); rewritten on every flush. */\n updatedAt: number;\n /**\n * Source time of `oraclePrice` (Unix ms): the oldest oracle tick it was\n * derived from. Absent on rows written before it was recorded.\n */\n oraclePriceUpdatedAt?: number;\n};\n\nexport const isMarketPrice = (\n price: MarketPrice | CollateralPrice,\n): price is MarketPrice =>\n Object.prototype.hasOwnProperty.call(price, 'marketId');\n\n// Replication-derived types\ntype Unpacked<T> = T extends (infer U)[] ? U : T;\n\n// PRO-126 Bug 7: `ConditionalOrderSensitive` + `OrderReplicationData`\n// retired with the rest of the `ConditionalOrders` DB pipeline. The\n// `replication:ConditionalOrdersSensitive` channel is no longer\n// subscribed (bun-socket/index.ts) and no longer publishes\n// (common-backend/src/config/database.ts). Order data flows through\n// the ME's `{orders}:changes` stream consumed by AccountOrdersMap;\n// callers should derive types from the ME's protobuf `Order` schema.\n\nexport type Position = Unpacked<Replication['replication:position']['result']>;\n\n// Stringified replication data types for WebSocket transformers\nexport type PositionReplicationData = Stringified<\n Unpacked<Replication['replication:position']['result']>\n>;\n\nexport type PerpExecutionReplicationData = Omit<\n Stringified<Unpacked<Replication['replication:orders']['result']>>,\n 'created_at'\n> & {\n created_at?: string;\n} & FillOwners;\n\nexport type AccountRealBalanceReplicationData = Stringified<\n Unpacked<Replication['replication:account_real_balances']['result']>\n>;\n\n/** Each side's owner, on fill rows from the trades and spot streams (PRO-1172). */\ntype FillOwners = {\n account_owner?: string;\n counterparty_account_owner?: string;\n};\n\nexport type SpotExecutionReplicationData = Stringified<\n Unpacked<Replication['replication:spot_executions']['result']>\n> &\n FillOwners;\n\nexport type ExecutionBustReplicationData = Stringified<\n Unpacked<Replication['replication:execution_busts']['result']>\n>;\n\nexport type MarketDataReplicationData = Stringified<\n Unpacked<Replication['replication:marketData']['result']>\n>;\n\nexport type SpotMarketDataReplicationData = Stringified<\n Unpacked<Replication['replication:spotMarketData']['result']>\n>;\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"/","sources":["types.ts"],"names":[],"mappings":"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","sourcesContent":["import { TradingApiSource, Replication } from './trading-api-types';\nimport { Stringified } from './api-types';\n\nimport {\n CoreCommandsEIP712SignatureAndPayload,\n EIP712Signature,\n} from './transactions';\nimport { JsonRpcSigner, Signer } from 'ethers';\n\nexport type Address = Lowercase<string>;\nexport type TokenName = Uppercase<string>;\n\n// -- Markets --\nexport type MarketOrderInfo = {\n counterpartyAccountIds: number[];\n exchangeId: number;\n};\n\nexport type MarketEntity = {\n id: number;\n ticker: string;\n underlyingAsset: string;\n quoteToken: string;\n quoteTokenId: string;\n markPrice: number;\n isActive: boolean;\n maxLeverage: number;\n volume24H: number;\n priceChange24H: number;\n priceChange24HPercentage: number;\n marketPriceDeviation: number;\n openInterest: number;\n fundingRate: number;\n fundingRateAnnualized: number;\n description: string;\n orderInfo: MarketOrderInfo;\n tickSizeDecimals: number;\n minOrderSize: number;\n minOrderSizeBase: number;\n baseSpacing: number;\n priceSpacing: number;\n longOI: number;\n shortOI: number;\n longSkewPercentage: number;\n shortSkewPercentage: number;\n availableLong: number;\n availableShort: number;\n};\n\nexport enum ReyaChainId {\n reyaNetwork = 1729,\n reyaLocal = 31337,\n reyaCronos = 89346162,\n}\n\nexport enum MoneyInOutChainId {\n // mainnet\n ethereumMainnet = 1,\n opMainnet = 10,\n polygonMainnet = 137,\n arbitrumOne = 42161,\n baseMainnet = 8453,\n // testnet\n arbitrumSepolia = 421614,\n opSepolia = 11155420,\n ethereumSepolia = 11155111,\n}\n\nexport enum CandlesResolution {\n ONE_MINUTE = '1MIN',\n FIVE_MINUTES = '5MINS',\n FIFTEEN_MINUTES = '15MINS',\n THIRTY_MINUTES = '30MINS',\n ONE_HOUR = '1HOUR',\n FOUR_HOURS = '4HOURS',\n ONE_DAY = '1DAY',\n}\n\n// -- Candles --\nexport interface Candle {\n id: string;\n startedAt: string;\n ticker: string;\n resolution: CandlesResolution;\n low: string;\n high: string;\n open: string;\n close: string;\n baseTokenVolume: string;\n usdVolume: string;\n trades: number;\n startingOpenInterest: string;\n}\n\n// -- Account --\n\nexport type Status = 'OPEN' | 'CLOSED' | 'LIQUIDATED' | 'FILLED';\nexport type Side = 'long' | 'short';\n\nexport type CollateralEntity = {\n token: string;\n address: string;\n percentage: number;\n balance: number;\n balanceRUSD: number;\n balanceWithHaircutRUSD: number;\n exchangeRate: number;\n exchangeRateWithHaircut: number;\n exchangeRateChange24HPercentage: number;\n yieldPercentage?: number;\n};\n\nexport type CollateralWithHaircut = {\n address: string;\n priceHaircut: number;\n};\n\nexport type MarginRatioHealth = 'danger' | 'healthy' | 'warning';\n\nexport type MarginAccountEntity = {\n id: number;\n name: string;\n marginRatioHealth: MarginRatioHealth;\n marginRatioPercentage: number;\n marginRatioHealthDangerThreshold: number;\n marginRatioHealthWarningThreshold: number;\n isApproachingLiquidation: boolean;\n isLiquidationImminent: boolean;\n totalBalance: number;\n liquidationMarginRequirement: number;\n totalBalanceUnderlyingAsset: string;\n totalBalanceChange24HPercentage: number;\n totalBalanceWithHaircut: number;\n livePnL: number;\n livePnLUnderlyingAsset: string;\n realizedPnL: number;\n realizedPnLUnderlyingAsset: string;\n realizedPnlHistoryTotal: number;\n totalPositionsCount: number;\n collaterals: CollateralEntity[];\n positions?: PositionEntity[];\n};\n\nexport type StrippedMarginAccountEntity = Pick<\n MarginAccountEntity,\n 'id' | 'name'\n>;\n\n// PRO-126 Bug 5: `ConditionalOrdersInfo` and the\n// `PositionEntity.conditionalOrdersInfo` field that surfaced\n// pending SL/TP info on positions were retired alongside the\n// `OrdersGateway.execute` / conditional-orders DB pipeline. The\n// off-chain API no longer has a backing source for live trigger\n// metadata; once the ME exposes pending trigger info via its own\n// surface, an equivalent field can be reintroduced sourcing from\n// there.\n\nexport type PositionEntity = {\n id: number;\n side: Side;\n size: number;\n base: number;\n price: number;\n markPrice: number;\n orderStatus: Status;\n realisedPnl: number;\n priceVariationPnl: number;\n livePnL: number;\n fundingPnl: number;\n unrealisedPnl: number;\n liquidationPrice: number;\n marketId: number;\n accountId: number;\n};\n\nexport type OrderHistoryType =\n | 'long-trade'\n | 'short-trade'\n | 'long-liquidation'\n | 'short-liquidation';\n\nexport type OrderHistoryEntity = {\n id: string;\n action: OrderHistoryType;\n orderType: 'market';\n base: number;\n executionPrice: number;\n realisedPnl?: number | null;\n priceVariationPnl: number;\n fundingPnl: number;\n fees: number;\n openingFees: number;\n timestamp: number;\n marketId?: number;\n xpEarned: number;\n};\n\nexport type ApyDetails = {\n dailyApy: number;\n weeklyApy: number;\n monthlyApy: number;\n yearlyApy: number;\n};\n\nexport type LpPoolEntity = {\n id: number;\n name: string;\n description: string;\n longDescription: string;\n readMoreLink: string;\n currentAPY: number;\n apyDetails: ApyDetails;\n apyChange24H: number;\n tokenAddress: Address;\n token: string;\n minDepositAmount: number;\n minWithdrawAmount: number;\n stepSize: number;\n allowedChainsForLiquidity: MoneyInOutChainId[];\n moneyInOutConfiguration: MoneyInOutConfiguration;\n};\n\nexport type MoneyInOutConfiguration = {\n [key in MoneyInOutChainId]?: {\n minWithdrawAmount?: number;\n };\n};\n\nexport type MoneyInOutConfigurationPerTokenName = {\n [key in TokenName]?: MoneyInOutConfiguration;\n};\n\nexport type LpWithdrawBalanceEntity = {\n withdrawableBalance: number;\n poolSharePrice: number;\n accountShareBalance: number;\n balanceBreakdown: {\n [coinName: string]: {\n balance: number;\n priceTokenToRusd: number;\n tokenAddress: string;\n };\n };\n};\n\nexport type TransactionHistoryType = 'deposit' | 'withdrawal';\n\nexport type LpTransactionHistoryEntity = {\n id: number;\n type: TransactionHistoryType;\n token: string;\n share: number;\n tokenAddress: string;\n amount: number;\n transactionLink: string;\n timestamp: number;\n};\n\nexport type TokenEntity = {\n name: TokenName;\n address: Address;\n};\n\n// --- Lp Pool Balance ---\nexport enum LpBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\n// - LP Account Performance -\nexport type GetLpPoolPerformanceChartDataResult = {\n capitalInvestedData: {\n timestampInMs: number;\n value: number;\n }[];\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n balance: number;\n balanceChangePercentage: number;\n capitalInvested: number;\n capitalInvestedChangePercentage: number;\n};\n\nexport type SocketTokenConnectors = {\n deposit: Address;\n withdraw: Address;\n};\n\nexport type GetSocketConnectorsParams = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n};\n\nexport type GetSocketVaultParams = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n};\n\nexport type GetMoneyInOutChainIdFromReyaConnectorParams = {\n reyaChainId: ReyaChainId;\n tokenName: TokenName;\n socketConnector: Address;\n};\n\nexport type GetSocketBridgeTimeParams = {\n moneyInOutChainId: MoneyInOutChainId;\n};\n\nexport type GetSocketBridgeTimeResult = {\n bridgeTimeInMS: number;\n};\n\nexport type GetSocketWithdrawMsgGasLimitParams = {\n moneyInOutChainId: MoneyInOutChainId;\n};\n\nexport type GetSocketWithdrawMsgGasLimitResult = {\n msgGasLimit: bigint;\n};\n\nexport type SocketDepositFeesEntry = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n fees: bigint;\n};\n\nexport type SocketWithdrawFeesEntry = {\n moneyInOutChainId: MoneyInOutChainId;\n tokenName: TokenName;\n fees: bigint;\n};\n\nexport type SocketDepositFees = {\n fees: bigint;\n feesInUnderlyingToken: number;\n underlyingTokenName: TokenName;\n};\n\nexport type SocketWithdrawFees = {\n fees: bigint;\n feesInUnderlyingToken: number;\n underlyingTokenName: TokenName;\n};\n\nexport type GetSocketWithdrawFeesParams = {\n reyaChainId: ReyaChainId;\n tokenAddress: TokenEntity['address'];\n};\n\nexport type GetSocketWithdrawFeesResult = {\n fees: number;\n};\n\n// --- Margin Account Balance ---\nexport enum MarginAccountBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\nexport type GetMarginAccountBalanceChartDataResult = {\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n balance: number;\n balanceChangePercentage: number;\n};\n\n// --- Margin Account Collaterals Balance ---\nexport enum MarginAccountCollateralsBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\nexport type GetMarginAccountCollateralsBalanceChartDataResult = {\n data: {\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n token: string;\n }[];\n balance: number;\n balanceChangePercentage: number;\n};\n\nexport type OwnerMetadataEntity = {\n address: Address;\n coreSigNonce: number;\n poolSigNonce: number;\n};\n\nexport type GetAllMarginAccountsBalanceChartDataResult = {\n balanceData: {\n timestampInMs: number;\n value: number;\n }[];\n balance: number;\n balanceChangePercentage: number;\n};\n\nexport enum AllMarginAccountsBalanceGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\n\n// --- Funding Rate History ----\nexport enum FundingRateHistoryGranularity {\n ONE_MINUTE = 60 * 1000,\n ONE_HOUR = 60 * 60 * 1000,\n ONE_DAY = 24 * 60 * 60 * 1000,\n ONE_WEEK = 7 * 24 * 60 * 60 * 1000,\n ONE_MONTH = 30 * 24 * 60 * 60 * 1000,\n ONE_YEAR = 365 * 24 * 60 * 60 * 1000,\n}\nexport type GetFundingRateChartDataResult = {\n fundingRateData: {\n timestampInMs: number;\n value: number;\n }[];\n fundingRate: number;\n};\nexport type GetCurrentFundingRateResult = {\n value: number;\n timestamp: number;\n};\n\nexport type GetInstantPoolPriceResult = {\n poolPrice: number;\n poolSlippage: number;\n oraclePrice: number;\n};\n\nexport type GetBalancesForBridgeArgs = {\n walletAddress: string;\n};\n\nexport type SignatureData = {\n signature: string;\n timestamp: number;\n walletAddress: Address;\n version: string;\n};\n\nexport type SaveSignatureResult = {\n signatureSavedSuccessfully: boolean;\n};\n\n// --- Community ----\nexport type VoteDetailsEntity = {\n id: number;\n startDate: number; // timestamp in UTC milliseconds\n endDate: number; // timestamp in UTC milliseconds\n percentageToPass: number; // Example: 4%\n yesCount: number;\n noCount: number;\n voteCountToPass: number; // Example: 1453\n slug: string;\n title: string;\n // Free text, each newline represents paragraph. UI splits by \\n atm to keep stuff simple\n description: string;\n};\n\nexport type VoteContractDetailsEntity = {\n id: number;\n contractAddress: Address;\n};\n\nexport type VoteStatusEntity = {\n votingPower: number;\n hasVoted: boolean;\n};\n\nexport type GetLpTvlResult = {\n currentTVL: number;\n currentLiquidity: number;\n};\n\nexport type Rank = {\n rankNumber: number;\n rankLetter: string;\n rankName: string;\n};\n\nexport type RankTrading = {\n rankNumber: number;\n rankName: string;\n};\n\nexport type GetWalletReferralDetailsParams = {\n address: string;\n};\n\nexport type GetWalletReferralDetailsResult = {\n totalReferralsCount: number;\n totalReferralXP: number;\n tradingRebateFee: number;\n tradingXp: number;\n liquidityXp: number;\n isAffiliate: boolean;\n};\n\nexport type GetWalletReferralCodeParams = {\n address: string;\n};\n\nexport type GetWalletReferralCodeResult = {\n referralCode: string;\n};\n\nexport type TokenEntityWithMinValue = TokenEntity & {\n minDepositAmount: number;\n minWithdrawAmount: number;\n minTransferAmount: number;\n};\n\nexport type TokenInfo = {\n name: TokenName;\n address: Address;\n decimals: number;\n isRUSDUnderlying: boolean;\n minDepositAmount: number;\n minWithdrawAmount: number;\n minTransferAmount: number;\n whitelistedWalletOnly?: boolean;\n isElixirToken?: boolean;\n isLmToken?: boolean;\n isPoolToken?: boolean;\n isOFT?: boolean;\n};\n\nexport type GetReyaCheckerResult = {\n /** Season 1 Reya Chain Points. */\n isEligibleForRcp: boolean;\n /** Season 2 Reya Chain Points. */\n isEligibleForRcpS2: boolean;\n isEligibleForVltz: boolean;\n isEligibleForCommunity: boolean;\n /** Past competitions paid directly in REYA. */\n isEligibleForCompetitions: boolean;\n};\n\n/** Claim-now amounts in REYA; `total` is the sum of the categories. */\nexport type TgeAllocatedAmount = {\n total: number;\n vltz: number;\n /** Season 1 Reya Chain Points. */\n rcp: number;\n /** Season 2 Reya Chain Points. */\n rcpS2: number;\n community: number;\n /** Past competitions paid directly in REYA. */\n competitions: number;\n};\n\nexport type TrancheInfo = {\n trancheId: number;\n amount: number;\n deadlineMs: number;\n released: boolean;\n};\n\n/**\n * The TGE distributor's claiming settings (`getConfiguration()`'s\n * `claimingConfig`). Every field is the contract's uint256 as a decimal\n * string: timestamps and durations in seconds, and `lockMultiplier` as the\n * raw UD60x18 value (\"2000000000000000000\" is 2x).\n */\nexport type TgeDistributionConfig = {\n /** Seconds from a lock until its single tranche falls due. */\n lockDuration: string;\n lockMultiplier: string;\n /** Seconds between a claim's tranches. */\n streamInterval: string;\n /** Tranches per claim; the first is paid in the claim transaction. */\n streamTranchesCount: string;\n /** Claims and locks are accepted from this time (unix seconds)... */\n startTimestamp: string;\n /** ...until this time (unix seconds), both inclusive. */\n endTimestamp: string;\n};\n\nexport type GetTgeClaimingInfoResult = {\n wallet: string;\n amount: TgeAllocatedAmount;\n hasClaimed?: boolean;\n hasLocked?: boolean;\n distributorContract?: string;\n merkleRoot?: string;\n tranches?: TrancheInfo[];\n /** Null when the distributor could not be read. */\n config: TgeDistributionConfig | null;\n};\n\nexport type TgeClaimTokensResult = {\n success: boolean;\n wallet: string;\n amount: TgeAllocatedAmount;\n transactionHash: string;\n};\n\n// --- TOS ----\n\nexport type TRMRiskAssessment = {\n accountExternalId: string;\n address: string;\n addressRiskIndicators: TMRRiskIndicator[];\n addressSubmitted: string;\n chain: string;\n entities: unknown[];\n trmAppUrl: string;\n};\n\nexport type TMRRiskIndicator = {\n category: string;\n categoryId: string;\n categoryRiskScoreLevel: number;\n categoryRiskScoreLevelLabel: string;\n incomingVolumeUsd: string;\n outgoingVolumeUsd: string;\n riskType: string;\n totalVolumeUsd: string;\n};\n\n// todo: deprecate after 1st tac client is deprecated\nexport type ToSVersionDetails = {\n text: string;\n version: string;\n creationTimestamp: number; // in MS\n};\n\nexport type ToSProductVersionDetails = {\n shortText: string;\n longText: string;\n version: string;\n creationTimestamp: number; // in MS\n product: string;\n};\n\nexport type SocketBridgeTransactionPoolStatus =\n | 'pending'\n | 'confirmed'\n | 'failed';\n\nexport type IpInfo = {\n ip: string;\n hostname: string;\n city: string;\n region: string;\n country: string;\n loc: string;\n org: string;\n postal: string;\n timezone: string;\n privacy: {\n vpn: boolean;\n proxy: boolean;\n tor: boolean;\n relay: boolean;\n hosting: boolean;\n service: string;\n };\n countryCode: string;\n countryFlag: {\n emoji: string;\n unicode: string;\n };\n countryFlagURL: string;\n countryCurrency: {\n code: string;\n symbol: string;\n };\n continent: {\n code: string;\n name: string;\n };\n isEU: boolean;\n};\n\nexport interface CandleMessage {\n /** Stringified JSON object of all events to be streamed. */\n contents: string;\n /** Clob pair id of the Candle message. */\n\n clobPairId: string;\n /** Resolution of the candle update. */\n\n resolution: string;\n /** Version of the websocket message. */\n\n version: string;\n}\n\nexport interface PriceMessage {\n contents: string;\n assetPairId: string;\n version: string;\n}\n\nexport interface FundingRateMessage {\n contents: string;\n assetPairId: string;\n version: string;\n}\n\nexport interface MarketsUpdateMessage {\n contents: string;\n version: string;\n id: string;\n}\n\nexport enum CandleResolution {\n ONE_MINUTE = '1MIN',\n FIVE_MINUTES = '5MINS',\n FIFTEEN_MINUTES = '15MINS',\n THIRTY_MINUTES = '30MINS',\n ONE_HOUR = '1HOUR',\n FOUR_HOURS = '4HOURS',\n ONE_DAY = '1DAY',\n}\n\nexport type TransactionExecutionMetadata = {\n accountName?: string;\n accountSource?: string;\n accountId?: number;\n marketId?: number;\n destinationType?: 'pool' | 'account';\n action?:\n | 'matchOrder'\n | 'closeOrder'\n | 'createAccount'\n | 'ioc-order-ui'\n | 'ioc-order-api-v2'\n | 'ioc-reduce-only-order-ui'\n | 'ioc-reduce-only-order-api-v2'\n | 'enable-api-wallet'\n | 'disable-api-wallet';\n tradeSource?: 'reya' | 'rage' | 'other';\n sender?: string;\n clientSentTimestamp?: number; // Timestamp (ms) when client sent the request\n clientTimezone?: string; // Client's timezone (e.g., 'America/New_York', 'Europe/London')\n matchOrder?: {\n eip712Payload: CoreCommandsEIP712SignatureAndPayload['payload'];\n userEIP712Signature: EIP712Signature;\n };\n};\n\nexport type TransactionExecutionOutput = {\n txHash: string | null;\n txSubmitted?: boolean;\n errorMessage?: string;\n /**\n * Structured error discriminator surfaced by the slim\n * `executeReyaTransaction` core. One of\n * `TRANSACTION_FAILED_TO_SEND` (pre-send: wallet manager rejected),\n * `RECEIPT_NOT_FOUND` (post-send: receipt fetch failed),\n * `TRANSACTION_REVERTED` (post-send: receipt.status === 0), or\n * `FAILED_FILL` (post-send: FailedUnifiedFillBytes / FailedFillBytes).\n * Optional — populated when the slim core returned a discriminated\n * failure. May coexist with a non-null `txHash` on post-send failures\n * (the on-chain hash is surfaced for `RECEIPT_NOT_FOUND`,\n * `TRANSACTION_REVERTED`, and `FAILED_FILL`). UI consumers should prefer\n * `errorMessage` for display; this field is for analytics + logs.\n *\n * `FAILED_ORDER` (used to be: FailedOrderBytes) is retired alongside\n * the legacy `OrdersGateway.execute` IOC handler in PRO-126 Bug 5.\n */\n errorCode?: string;\n accountId?: string | null;\n coreSigNonce?: string | null;\n poolSigNonce?: string | null;\n miscellaneous?: {\n tradeXpBoost?: number;\n lotteryXpBoost?: number;\n xpNftAwarded?: boolean;\n xpEarned?: number;\n };\n tradeDetails?: {\n executionPrice?: number;\n base?: number;\n };\n positions?: {\n market_id: string;\n account_id: string;\n base: string | null;\n realized_pnl: string | null;\n last_price: string | null;\n position_data_last_price_data_timestamp: string | null;\n funding_value: string | null;\n base_multiplier: string | null;\n adl_unwind_price: string | null;\n transaction_hash: string;\n block_timestamp: string | null;\n block_number: string;\n unique_id: string | null;\n }[];\n orders?: {\n id: string;\n market_id: string | null;\n account_id: string | null;\n order_base: string | null;\n fee: string | null;\n price: string | null;\n type: string;\n processed: boolean;\n transaction_hash: string;\n block_timestamp: string | null;\n block_number: string;\n source: string | null;\n unique_id: string | null;\n }[];\n accounts?: Omit<\n Stringified<TradingApiSource['wallet/:address/accounts']['response'][0]>,\n 'status'\n >[];\n //orderAndPositionUpdate?: Stringified<PassivePerpOrderAndPositionUpdate>[];\n};\n\nexport type CanonicalReleaseStatus = 'pending' | 'ready' | 'completed';\n\ntype PendingWithdrawalStatus = {\n status: 'pending';\n};\n\ntype ReadyWithdrawalStatus = {\n status: 'ready';\n txHash: string;\n};\n\nexport type PendingWithdrawal = {\n tokenAmount: number;\n} & (PendingWithdrawalStatus | ReadyWithdrawalStatus);\n\n// PRO-126 Bug 5 retired the legacy `OrdersGatewayOrderType` enum (the\n// 8-field `ConditionalOrderDetails` typehash discriminator). The\n// on-chain `OrdersGateway.execute` selector that consumed those values\n// is gone; every order class now uses `OrderType` below, whose values\n// mirror the on-chain `OrderType` enum in\n// orders-gateway/src/libraries/DataTypes.sol.\nexport enum OrderType {\n Limit = 0,\n StopLoss = 1,\n TakeProfit = 2,\n}\n\n// Matches the on-chain `MarketType` enum. Used to discriminate spot vs perp\n// in unified off-chain code paths and with the market-id namespace helpers in\n// packages/common-backend/src/market-id-namespace.\nexport enum MarketType {\n Spot = 0,\n Perp = 1,\n}\n\n// Canonical on-chain V3 codes, also written by the pre-cutover V2 indexer.\nexport { CanonicalExecutionType as ExecutionType } from './canonical-execution-type';\n\nexport enum ConditionalOrderType {\n STOP_LOSS = 0,\n TAKE_PROFIT = 1,\n LIMIT_ORDER = 2,\n}\n\nexport type ConditionalOrderTypeName =\n | 'Stop Loss'\n | 'Take Profit'\n | 'Limit Order';\n\nexport enum ConditionalOrderStatus {\n PENDING = 'pending',\n FILLED = 'filled',\n CANCELLED = 'cancelled',\n REJECTED = 'rejected',\n}\n\nexport enum TierType {\n REGULAR = 'REGULAR',\n VIP = 'VIP',\n}\n\nexport type ConditionalOrder = {\n orderId: string;\n accountId: number;\n marketId: number;\n orderType: ConditionalOrderTypeName;\n isLong: boolean;\n triggerPrice: number;\n signerWallet: string;\n nonce: string;\n signature: string;\n eip712Signature: EIP712Signature;\n status: ConditionalOrderStatus;\n creationTimestampMs: number;\n lastUpdateTimestampMs: number;\n base: number;\n exchangeId: number;\n inputs: string;\n counterpartyAccountId: number;\n};\n\nexport type UnifiedConditionalOrderType = {\n orderId: string;\n accountId: number;\n marketId: number;\n base: number | null; // null when order is cancelled\n isLong: boolean;\n price: number;\n status: ConditionalOrderStatus;\n orderType: ConditionalOrderTypeName;\n timestampMs: number;\n};\n\nexport type IsDiscordLinkedParams = {\n address: string;\n};\nexport type IsDiscordLinkedResult = {\n isLinked: boolean;\n};\nexport type LinkDiscordParams = {\n discordAccessToken: string;\n signer: Signer | JsonRpcSigner;\n};\nexport type LinkDiscordResult = void;\nexport type UnlinkDiscordParams = {\n address: string;\n discordAccessToken: string;\n};\nexport type UnlinkDiscordResult = void;\nexport type ClaimDiscordRankParams = {\n address: string;\n discordAccessToken: string;\n};\nexport type ClaimDiscordRankResult = void;\n\nexport type IsDiscordRankClaimedParams = {\n address: string;\n};\nexport type IsDiscordRankClaimedResult = {\n isClaimed: boolean;\n};\n\nexport interface ApiErrorResponse {\n response: {\n status: number;\n data: {\n error: string;\n };\n };\n}\n\n// ref: https://github.com/tkhq/sdk/blob/08e2b8c30848498ed0850aa1e1ede67775b001e5/packages/http/src/__generated__/\n// services/coordinator/public/v1/public_api.types.ts\nexport type V1Attestation = {\n /** @description The cbor encoded then base64 url encoded id of the credential. */\n credentialId: string;\n /** @description A base64 url encoded payload containing metadata about the signing context and the challenge. */\n clientDataJson: string;\n /** @description A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses. */\n attestationObject: string;\n /** @description The type of authenticator transports. */\n transports: V1AuthenticatorTransport[];\n};\n\nexport type V1AuthenticatorTransport =\n | 'AUTHENTICATOR_TRANSPORT_BLE'\n | 'AUTHENTICATOR_TRANSPORT_INTERNAL'\n | 'AUTHENTICATOR_TRANSPORT_NFC'\n | 'AUTHENTICATOR_TRANSPORT_USB'\n | 'AUTHENTICATOR_TRANSPORT_HYBRID';\n\n// on-chain events (consider pushing into a separate file)\nexport type MatchOrderDetails = {\n uniqueId: string;\n transactionHash: string;\n accountId: number;\n marketId: number;\n sizeNotional: number;\n base: number;\n price: number;\n};\n\nexport type GetLpPoolPositionRPCResponse = {\n poolPositionShareBalance: number; // amount of srUSD in the pool held by the account\n poolPositionBalance: number; // amount of rUSD in the pool held by the account\n poolTotalBalance: number; // total amount of rUSD in the pool\n sharePrice: number; // share price of the pool\n};\n\ninterface MatchOrderFees {\n protocolFeeCredit: bigint;\n exchangeFeeCredit: bigint;\n takerFeeDebit: bigint;\n makerPayments: bigint[];\n referrerFeeCredit: bigint;\n}\n\ninterface PositionDataOld {\n base: bigint;\n realizedPnL: bigint;\n lastPriceData: {\n price: bigint;\n timestamp: bigint;\n };\n trackers: {\n fundingValue: bigint;\n baseMultiplier: bigint;\n adlUnwindPrice: bigint;\n };\n}\n\nexport interface PassivePerpOrderAndPositionUpdate {\n id: string;\n marketId: bigint;\n accountId: bigint;\n counterpartyAccountId: bigint;\n executedBase: bigint;\n matchOrderFees: MatchOrderFees;\n executedPrice: bigint;\n referrerAccountId: bigint;\n isMatchOrder: boolean;\n liquidationType: bigint;\n positionData: PositionDataOld;\n counterpartyPositionData: PositionDataOld;\n blockTimestamp: bigint;\n blockNumber: string;\n transactionHash: string;\n uniqueId: bigint;\n}\n\nexport type ConfiguredAssetPair =\n | 'ETHUSD'\n | 'WSTETHUSD'\n | 'WBTCUSD'\n | 'BTCUSD' // Localnet's mock BTC collateral feed\n | 'USDCUSD'\n | 'USDEUSD'\n | 'SUSDEUSD'\n | 'DEUSDUSD'\n | 'SDEUSDDEUSD'\n | 'REYALM#AMBERUSDC'\n | 'REYALM#HEDGEUSDC'\n | 'SRUSDRUSD_RR'\n | 'REYAPOOL#1'\n | 'REYARUSD'\n | 'SREYARUSD'\n | 'ETHUSDMARK'\n | 'BTCUSDMARK'\n | 'SOLUSDMARK'\n | 'ARBUSDMARK'\n | 'OPUSDMARK'\n | 'AVAXUSDMARK'\n | 'MKRUSDMARK'\n | 'LINKUSDMARK'\n | 'AAVEUSDMARK'\n | 'CRVUSDMARK'\n | 'UNIUSDMARK'\n | 'SUIUSDMARK'\n | 'TIAUSDMARK'\n | 'SEIUSDMARK'\n | 'ZROUSDMARK'\n | 'XRPUSDMARK'\n | 'WIFUSDMARK'\n | '1000PEPEUSDMARK'\n | 'POPCATUSDMARK'\n | 'DOGEUSDMARK'\n | '1000SHIBUSDMARK'\n | '1000BONKUSDMARK'\n | 'APTUSDMARK'\n | 'BNBUSDMARK'\n | 'JTOUSDMARK'\n | 'ADAUSDMARK'\n | 'LDOUSDMARK'\n | 'POLUSDMARK'\n | 'NEARUSDMARK'\n | 'FTMUSD'\n | 'ENAUSDMARK'\n | 'EIGENUSDMARK'\n | 'PENDLEUSDMARK'\n | 'GOATUSDMARK'\n | 'GRASSUSDMARK'\n | '1000NEIROUSDMARK'\n | 'DOTUSDMARK'\n | 'LTCUSDMARK'\n | 'PYTHUSDMARK'\n | 'JUPUSDMARK'\n | 'PENGUUSDMARK'\n | 'TRUMPUSDMARK'\n | 'HYPEUSDMARK'\n | 'VIRTUALUSDMARK'\n | 'AI16ZUSDMARK'\n | 'AIXBTUSDMARK'\n | 'SUSDMARK'\n | 'FARTCOINUSDMARK'\n | 'GRIFFAINUSDMARK'\n | 'WLDUSDMARK'\n | 'ATOMUSDMARK'\n | 'APEUSDMARK'\n | 'TONUSDMARK'\n | 'ONDOUSDMARK'\n | 'TRXUSDMARK'\n | 'INJUSDMARK'\n | 'MOVEUSDMARK'\n | 'BERAUSDMARK'\n | 'LAYERUSDMARK'\n | 'TAOUSDMARK'\n | 'IPUSDMARK'\n | 'MEUSDMARK'\n | 'PUMPUSDMARK'\n | 'MORPHOUSDMARK'\n | 'SYRUPUSDMARK'\n | 'AEROUSDMARK'\n | 'KAITOUSDMARK'\n | 'ZORAUSDMARK'\n | 'PROVEUSDMARK'\n | 'PAXGUSDMARK'\n | 'YZYUSDMARK'\n | 'XPLUSDMARK'\n | 'WLFIUSDMARK'\n | 'LINEAUSDMARK'\n | 'MEGAUSDMARK'\n | 'LITUSDMARK'\n // RWA mark feed identities on every supported chain; publication is separate.\n | RwaMarkAssetPair;\n\ntype SpotPair<T extends string> = T extends `${infer Base}USDMARK`\n ? `${Base}USD`\n : never;\n\n/**\n * Base assets of the RWA perpetual markets (ids 76-94; registration is a separate per-chain release gate). Stork publishes each as a pair of\n * USDC-quoted feeds, so neither is ever divided by USDCUSD.\n */\nexport type RwaStorkAsset =\n | 'XAU'\n | 'XAG'\n | 'WTI'\n | 'AAPL'\n | 'MSFT'\n | 'GOOGL'\n | 'AMZN'\n | 'NVDA'\n | 'META'\n | 'TSLA'\n | 'SPY'\n | 'QQQ'\n | 'SPCX'\n | 'MU'\n | 'CRCL'\n | 'INTC'\n | 'HOOD'\n | 'AMD'\n | 'MSTR';\n\n/**\n * Stork actual-mark feed. It is each RWA market's on-chain `oracleNodeId`, the\n * reference for the mark-push and fill collars, so the oracle updater pushes it.\n */\nexport type RwaMarkAssetPair = `${RwaStorkAsset}USDC_MK`;\n\n/**\n * Stork exchange-index feed. Only the matching engine and the API index price\n * read it; nothing on-chain references it.\n */\nexport type RwaIndexAssetPair = `${RwaStorkAsset}USDC_IDX`;\n\n/** Internal cache keys whose prices mirror an existing reference feed. */\nexport type MirroredAssetPair =\n | 'REYALM#KEYROCKRUSD'\n | 'REYALM#FLOWRUSD'\n | 'REYALM#SELINIRUSD';\n\n/** Includes Stork spot feeds and mirrored price cache keys. */\nexport type AssetPair =\n | ConfiguredAssetPair\n | SpotPair<ConfiguredAssetPair>\n | RwaIndexAssetPair\n | MirroredAssetPair\n // Historical/cache input only; no active producer owns this retired key.\n | 'REYALM#SELINIUSDC';\n\nexport type ContractId = string;\n\nexport type Price = {\n symbol: number;\n oraclePrice: string;\n poolPrice: string | null;\n updatedAt: number;\n};\n\nexport type MarketPrice = {\n marketId: number;\n /** @deprecated No longer written; will be removed when V1 prices endpoints are dropped. */\n price?: string;\n /**\n * ME mark price (E18), despite the name — the pool-price task has written the\n * matching-engine mark here since the perpOB rewire. Surfaced as the v2\n * `MarketSummary.markPrice`. The genuine index price is `indexPrice`.\n */\n oraclePrice: string;\n /**\n * Orderbook mid (E18). Absent on an empty or one-sided book — there is\n * deliberately no mark-price fallback, because publishing the mark under the\n * name \"mid\" makes a book with no two-sided quote indistinguishable from one\n * trading exactly at the mark. Consumers must treat it as optional, the same\n * way `SpotMarketSummary.throttledMidPrice` has always been treated.\n */\n poolPrice?: string;\n /**\n * Stork reference/index price (E18), rUSD-quoted on a USDC basis. Explicit\n * USDC feeds pass through; USD feeds are divided by a fresh USDCUSD value.\n * Absent when the feed has no fresh tick, a required cross-rate is unusable, and on\n * markets with no Stork feed, so consumers must treat it as optional rather\n * than substituting a stale value.\n */\n indexPrice?: string;\n /** When this row was written (Unix ms); rewritten on every flush. */\n updatedAt: number;\n /**\n * Source time of `oraclePrice` (Unix ms): the matching engine's own mark\n * timestamp. Absent on rows written before it was recorded.\n */\n oraclePriceUpdatedAt?: number;\n};\n\nexport type CollateralPrice = {\n address: string;\n oraclePrice: string;\n /** When this row was written (Unix ms); rewritten on every flush. */\n updatedAt: number;\n /**\n * Source time of `oraclePrice` (Unix ms): the oldest oracle tick it was\n * derived from. Absent on rows written before it was recorded.\n */\n oraclePriceUpdatedAt?: number;\n};\n\nexport const isMarketPrice = (\n price: MarketPrice | CollateralPrice,\n): price is MarketPrice =>\n Object.prototype.hasOwnProperty.call(price, 'marketId');\n\n// Replication-derived types\ntype Unpacked<T> = T extends (infer U)[] ? U : T;\n\n// PRO-126 Bug 7: `ConditionalOrderSensitive` + `OrderReplicationData`\n// retired with the rest of the `ConditionalOrders` DB pipeline. The\n// `replication:ConditionalOrdersSensitive` channel is no longer\n// subscribed (bun-socket/index.ts) and no longer publishes\n// (common-backend/src/config/database.ts). Order data flows through\n// the ME's `{orders}:changes` stream consumed by AccountOrdersMap;\n// callers should derive types from the ME's protobuf `Order` schema.\n\nexport type Position = Unpacked<Replication['replication:position']['result']>;\n\n// Stringified replication data types for WebSocket transformers\nexport type PositionReplicationData = Stringified<\n Unpacked<Replication['replication:position']['result']>\n>;\n\nexport type PerpExecutionReplicationData = Omit<\n Stringified<Unpacked<Replication['replication:orders']['result']>>,\n 'created_at'\n> & {\n created_at?: string;\n} & FillOwners;\n\nexport type AccountRealBalanceReplicationData = Stringified<\n Unpacked<Replication['replication:account_real_balances']['result']>\n>;\n\n/** Each side's owner, on fill rows from the trades and spot streams (PRO-1172). */\ntype FillOwners = {\n account_owner?: string;\n counterparty_account_owner?: string;\n};\n\nexport type SpotExecutionReplicationData = Stringified<\n Unpacked<Replication['replication:spot_executions']['result']>\n> &\n FillOwners;\n\nexport type ExecutionBustReplicationData = Stringified<\n Unpacked<Replication['replication:execution_busts']['result']>\n>;\n\nexport type MarketDataReplicationData = Stringified<\n Unpacked<Replication['replication:marketData']['result']>\n>;\n\nexport type SpotMarketDataReplicationData = Stringified<\n Unpacked<Replication['replication:spotMarketData']['result']>\n>;\n"]}
|
|
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
29
29
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.calculateSettledAccountPnl = exports.
|
|
32
|
+
exports.calculateSettledAccountPnl = exports.calculatePositionFundingSinceChange = exports.calculateSettledPositionPnl = exports.positionAdjustmentTrackers = exports.trackersBehindPosition = exports.SettlementTrackerError = void 0;
|
|
33
33
|
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
34
34
|
/** Structured cause for service metrics; calculation still fails closed. */
|
|
35
35
|
var SettlementTrackerError = /** @class */ (function (_super) {
|
|
@@ -142,36 +142,38 @@ function calculateSettledPositionPnl(position, trackers, onGuarded) {
|
|
|
142
142
|
}
|
|
143
143
|
exports.calculateSettledPositionPnl = calculateSettledPositionPnl;
|
|
144
144
|
/**
|
|
145
|
-
* Raw E18 funding on an open position since
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
145
|
+
* Raw E18 funding on an open position since its size last changed (a fill,
|
|
146
|
+
* liquidation or ADL unwind): the funding Core settles into the position's
|
|
147
|
+
* realized PnL at its next change (`computeFundingCashflow` in perpOB), from
|
|
148
|
+
* the position's stored funding value to the market trackers. The settled
|
|
149
|
+
* balance already counts it (`calculateSettledPositionPnl`), so this
|
|
150
|
+
* attributes it to the position and must never be added to a balance.
|
|
151
|
+
* Positive means the position received funding.
|
|
150
152
|
*
|
|
151
|
-
* The stored base over the multiplier
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
153
|
+
* The stored base over the stored multiplier is the same ratio as the
|
|
154
|
+
* ADL-adjusted base over the current multiplier, so no ADL adjustment is
|
|
155
|
+
* needed. Market trackers behind the position's own snapshot accrue nothing,
|
|
156
|
+
* as in settlement.
|
|
155
157
|
*/
|
|
156
|
-
function
|
|
158
|
+
function calculatePositionFundingSinceChange(position, trackers) {
|
|
157
159
|
var base = integer(position.base, 'position base');
|
|
158
160
|
if (base.isZero())
|
|
159
161
|
return new bignumber_js_1.default(0);
|
|
160
162
|
if (!trackers)
|
|
161
163
|
throw new SettlementTrackerError(position.market_id.toString(), 'missing');
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
var
|
|
164
|
+
if (trackersBehindPosition(position, trackers))
|
|
165
|
+
return new bignumber_js_1.default(0);
|
|
166
|
+
var funding = integer(base.isPositive()
|
|
167
|
+
? trackers.longTrackersFundingValue
|
|
168
|
+
: trackers.shortTrackersFundingValue, 'market funding');
|
|
169
|
+
var lastFunding = integer(position.funding_value, 'position funding');
|
|
168
170
|
var multiplier = integer(position.base_multiplier, 'position multiplier');
|
|
169
171
|
if (multiplier.lte(0)) {
|
|
170
172
|
throw new SettlementTrackerError(position.market_id.toString(), 'inconsistent');
|
|
171
173
|
}
|
|
172
|
-
return mulWad(divWad(funding.minus(
|
|
174
|
+
return mulWad(divWad(funding.minus(lastFunding), multiplier), base.negated());
|
|
173
175
|
}
|
|
174
|
-
exports.
|
|
176
|
+
exports.calculatePositionFundingSinceChange = calculatePositionFundingSinceChange;
|
|
175
177
|
/**
|
|
176
178
|
* Returns raw E18 PnL aligned to collateral units. The instrument floors EACH
|
|
177
179
|
* market's PnL to quote-token precision before Core aggregates collateral info.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realized-balance.js","sourceRoot":"/","sources":["utils/realized-balance.ts"],"names":[],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js';\n\n/** Raw E18 position values, from either Prisma or replication. */\nexport type RealizedBalancePosition = {\n market_id: { toString(): string };\n base: { toString(): string } | null;\n realized_pnl: { toString(): string } | null;\n funding_value: { toString(): string } | null;\n base_multiplier: { toString(): string } | null;\n adl_unwind_price: { toString(): string } | null;\n last_price: { toString(): string } | null;\n /** Block the stored trackers were written at; lets stale market trackers be ignored. */\n block_number?: { toString(): string } | null;\n};\n\nexport type RealizedBalanceTrackers = {\n longTrackersFundingValue: string;\n shortTrackersFundingValue: string;\n longTrackersBaseMultiplier: string;\n shortTrackersBaseMultiplier: string;\n longTrackersAdlUnwindPrice: string;\n shortTrackersAdlUnwindPrice: string;\n /** Block the market trackers were observed at (optional; enables the staleness guard). */\n blockNumber?: string | null;\n};\n\n/** Structured cause for service metrics; calculation still fails closed. */\nexport class SettlementTrackerError extends Error {\n constructor(\n public readonly marketId: string,\n public readonly reason: 'missing' | 'inconsistent',\n ) {\n super(\n reason === 'missing'\n ? `Missing market trackers for ${marketId}`\n : `Inconsistent ADL trackers for ${marketId}`,\n );\n // common targets ES5; restore Error subclass identity after downleveling.\n Object.setPrototypeOf(this, new.target.prototype);\n this.name = 'SettlementTrackerError';\n }\n}\n\nconst WAD = new BigNumber('1000000000000000000');\nconst integer = (value: { toString(): string } | null, field: string) => {\n const result = new BigNumber(value?.toString() ?? NaN);\n if (!result.isInteger()) throw new Error(`Missing or invalid ${field}`);\n return result;\n};\nconst optionalBlock = (value: { toString(): string } | null | undefined) => {\n if (value === null || value === undefined) return undefined;\n const result = new BigNumber(value.toString());\n return result.isInteger() ? result : undefined;\n};\n/**\n * Market trackers older than the position's own snapshot carry nothing the\n * stored position does not already reflect. Off-chain tracker feeds can lag\n * the position stream.\n */\nexport function trackersBehindPosition(\n position: Pick<RealizedBalancePosition, 'block_number'>,\n trackers: Pick<RealizedBalanceTrackers, 'blockNumber'>,\n): boolean {\n const positionBlock = optionalBlock(position.block_number);\n const trackerBlock = optionalBlock(trackers.blockNumber);\n return !!positionBlock && !!trackerBlock && positionBlock.gt(trackerBlock);\n}\n\n/**\n * The trackers to ADL-adjust a position's quantity with, guarded the way its\n * settlement is: behind the position, its own multiplier and unwind price stand in.\n */\nexport function positionAdjustmentTrackers<\n T extends Pick<\n RealizedBalanceTrackers,\n | 'longTrackersBaseMultiplier'\n | 'shortTrackersBaseMultiplier'\n | 'longTrackersAdlUnwindPrice'\n | 'shortTrackersAdlUnwindPrice'\n | 'blockNumber'\n >,\n>(\n position: Pick<\n RealizedBalancePosition,\n 'block_number' | 'base_multiplier' | 'adl_unwind_price'\n >,\n trackers: T,\n): T {\n if (\n !trackersBehindPosition(position, trackers) ||\n position.base_multiplier === null ||\n position.adl_unwind_price === null\n )\n return trackers;\n const multiplier = position.base_multiplier.toString();\n const unwind = position.adl_unwind_price.toString();\n return {\n ...trackers,\n longTrackersBaseMultiplier: multiplier,\n shortTrackersBaseMultiplier: multiplier,\n longTrackersAdlUnwindPrice: unwind,\n shortTrackersAdlUnwindPrice: unwind,\n };\n}\n\nconst mulWad = (a: BigNumber, b: BigNumber) =>\n a.times(b).dividedToIntegerBy(WAD);\nconst divWad = (a: BigNumber, b: BigNumber) =>\n a.times(WAD).dividedToIntegerBy(b);\n\n/** Mirrors perpOB updatePerpPosition, including PRBMath truncation at each step. */\nexport function calculateSettledPositionPnl(\n position: RealizedBalancePosition,\n trackers: RealizedBalanceTrackers | undefined,\n onGuarded?: () => void,\n): BigNumber {\n const base = integer(position.base, 'position base');\n const realized = integer(position.realized_pnl, 'realized PnL');\n if (base.isZero()) return realized;\n if (!trackers)\n throw new SettlementTrackerError(position.market_id.toString(), 'missing');\n\n const long = base.isPositive();\n const funding = integer(\n long\n ? trackers.longTrackersFundingValue\n : trackers.shortTrackersFundingValue,\n 'market funding',\n );\n const multiplier = integer(\n long\n ? trackers.longTrackersBaseMultiplier\n : trackers.shortTrackersBaseMultiplier,\n 'market multiplier',\n );\n const unwind = integer(\n long\n ? trackers.longTrackersAdlUnwindPrice\n : trackers.shortTrackersAdlUnwindPrice,\n 'market unwind price',\n );\n const oldMultiplier = integer(\n position.base_multiplier,\n 'position multiplier',\n );\n const oldUnwind = integer(position.adl_unwind_price, 'position unwind price');\n const oldFunding = integer(position.funding_value, 'position funding');\n if (\n funding.eq(oldFunding) &&\n multiplier.eq(oldMultiplier) &&\n unwind.eq(oldUnwind)\n )\n return realized;\n\n // Market trackers older than the position's own snapshot carry no new\n // cashflow: the stored realized PnL already settled everything up to the\n // position's block. Treat that window as \"nothing accrued\" instead of\n // projecting a delta backwards (wrong-sign funding, or an ADL guard failure\n // below).\n if (trackersBehindPosition(position, trackers)) {\n onGuarded?.();\n return realized;\n }\n\n if (\n oldMultiplier.lte(0) ||\n multiplier.lt(0) ||\n multiplier.gt(oldMultiplier) ||\n unwind.lt(oldUnwind)\n ) {\n throw new SettlementTrackerError(\n position.market_id.toString(),\n 'inconsistent',\n );\n }\n const fundingCashflow = mulWad(\n divWad(funding.minus(oldFunding), oldMultiplier),\n base.negated(),\n );\n const unwindDelta = divWad(unwind.minus(oldUnwind), oldMultiplier);\n const initialPrice = mulWad(\n WAD.minus(divWad(multiplier, oldMultiplier)),\n integer(position.last_price, 'position price'),\n );\n const adlCashflow = mulWad(base, unwindDelta.minus(initialPrice));\n return realized.plus(fundingCashflow).plus(adlCashflow);\n}\n\n/**\n * Raw E18 funding on an open position since entry, as `averageEntryFundingValue`\n * tracks it in perpOB `propagateOrderToPerpPosition`: averaged in when the\n * position grows, unchanged on a reduce, reset on a reopen or flip. Funding has\n * already settled into the balance as it accrued; this attributes it to the\n * open position. Positive means the position earned funding.\n *\n * The stored base over the multiplier at the position's last update is the\n * same ratio as the ADL-adjusted base over the current multiplier, so no ADL\n * adjustment is needed. Market trackers behind the position's own snapshot\n * stand in with the position's funding value, as settlement does.\n */\nexport function calculatePositionFundingPnl(\n position: RealizedBalancePosition & {\n average_entry_funding_value: { toString(): string } | null;\n },\n trackers: RealizedBalanceTrackers | undefined,\n): BigNumber {\n const base = integer(position.base, 'position base');\n if (base.isZero()) return new BigNumber(0);\n if (!trackers)\n throw new SettlementTrackerError(position.market_id.toString(), 'missing');\n const funding = trackersBehindPosition(position, trackers)\n ? integer(position.funding_value, 'position funding')\n : integer(\n base.isPositive()\n ? trackers.longTrackersFundingValue\n : trackers.shortTrackersFundingValue,\n 'market funding',\n );\n const entry = integer(\n position.average_entry_funding_value,\n 'average entry funding value',\n );\n const multiplier = integer(position.base_multiplier, 'position multiplier');\n if (multiplier.lte(0)) {\n throw new SettlementTrackerError(\n position.market_id.toString(),\n 'inconsistent',\n );\n }\n return mulWad(divWad(funding.minus(entry), multiplier), base.negated());\n}\n\n/**\n * Returns raw E18 PnL aligned to collateral units. The instrument floors EACH\n * market's PnL to quote-token precision before Core aggregates collateral info.\n * Funding is the stored market tracker delta; do not extrapolate it with time.\n */\nexport function calculateSettledAccountPnl(\n positions: RealizedBalancePosition[],\n trackers: Partial<Record<string, RealizedBalanceTrackers>>,\n collateralDecimals: number,\n onGuarded?: () => void,\n): BigNumber {\n return positions.reduce((sum, position) => {\n const pnl = calculateSettledPositionPnl(\n position,\n trackers[position.market_id.toString()],\n onGuarded,\n );\n const rounded = pnl\n .shiftedBy(collateralDecimals - 18)\n .integerValue(BigNumber.ROUND_FLOOR)\n .shiftedBy(18 - collateralDecimals);\n return sum.plus(rounded);\n }, new BigNumber(0));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"realized-balance.js","sourceRoot":"/","sources":["utils/realized-balance.ts"],"names":[],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js';\n\n/** Raw E18 position values, from either Prisma or replication. */\nexport type RealizedBalancePosition = {\n market_id: { toString(): string };\n base: { toString(): string } | null;\n realized_pnl: { toString(): string } | null;\n funding_value: { toString(): string } | null;\n base_multiplier: { toString(): string } | null;\n adl_unwind_price: { toString(): string } | null;\n last_price: { toString(): string } | null;\n /** Block the stored trackers were written at; lets stale market trackers be ignored. */\n block_number?: { toString(): string } | null;\n};\n\nexport type RealizedBalanceTrackers = {\n longTrackersFundingValue: string;\n shortTrackersFundingValue: string;\n longTrackersBaseMultiplier: string;\n shortTrackersBaseMultiplier: string;\n longTrackersAdlUnwindPrice: string;\n shortTrackersAdlUnwindPrice: string;\n /** Block the market trackers were observed at (optional; enables the staleness guard). */\n blockNumber?: string | null;\n};\n\n/** Structured cause for service metrics; calculation still fails closed. */\nexport class SettlementTrackerError extends Error {\n constructor(\n public readonly marketId: string,\n public readonly reason: 'missing' | 'inconsistent',\n ) {\n super(\n reason === 'missing'\n ? `Missing market trackers for ${marketId}`\n : `Inconsistent ADL trackers for ${marketId}`,\n );\n // common targets ES5; restore Error subclass identity after downleveling.\n Object.setPrototypeOf(this, new.target.prototype);\n this.name = 'SettlementTrackerError';\n }\n}\n\nconst WAD = new BigNumber('1000000000000000000');\nconst integer = (value: { toString(): string } | null, field: string) => {\n const result = new BigNumber(value?.toString() ?? NaN);\n if (!result.isInteger()) throw new Error(`Missing or invalid ${field}`);\n return result;\n};\nconst optionalBlock = (value: { toString(): string } | null | undefined) => {\n if (value === null || value === undefined) return undefined;\n const result = new BigNumber(value.toString());\n return result.isInteger() ? result : undefined;\n};\n/**\n * Market trackers older than the position's own snapshot carry nothing the\n * stored position does not already reflect. Off-chain tracker feeds can lag\n * the position stream.\n */\nexport function trackersBehindPosition(\n position: Pick<RealizedBalancePosition, 'block_number'>,\n trackers: Pick<RealizedBalanceTrackers, 'blockNumber'>,\n): boolean {\n const positionBlock = optionalBlock(position.block_number);\n const trackerBlock = optionalBlock(trackers.blockNumber);\n return !!positionBlock && !!trackerBlock && positionBlock.gt(trackerBlock);\n}\n\n/**\n * The trackers to ADL-adjust a position's quantity with, guarded the way its\n * settlement is: behind the position, its own multiplier and unwind price stand in.\n */\nexport function positionAdjustmentTrackers<\n T extends Pick<\n RealizedBalanceTrackers,\n | 'longTrackersBaseMultiplier'\n | 'shortTrackersBaseMultiplier'\n | 'longTrackersAdlUnwindPrice'\n | 'shortTrackersAdlUnwindPrice'\n | 'blockNumber'\n >,\n>(\n position: Pick<\n RealizedBalancePosition,\n 'block_number' | 'base_multiplier' | 'adl_unwind_price'\n >,\n trackers: T,\n): T {\n if (\n !trackersBehindPosition(position, trackers) ||\n position.base_multiplier === null ||\n position.adl_unwind_price === null\n )\n return trackers;\n const multiplier = position.base_multiplier.toString();\n const unwind = position.adl_unwind_price.toString();\n return {\n ...trackers,\n longTrackersBaseMultiplier: multiplier,\n shortTrackersBaseMultiplier: multiplier,\n longTrackersAdlUnwindPrice: unwind,\n shortTrackersAdlUnwindPrice: unwind,\n };\n}\n\nconst mulWad = (a: BigNumber, b: BigNumber) =>\n a.times(b).dividedToIntegerBy(WAD);\nconst divWad = (a: BigNumber, b: BigNumber) =>\n a.times(WAD).dividedToIntegerBy(b);\n\n/** Mirrors perpOB updatePerpPosition, including PRBMath truncation at each step. */\nexport function calculateSettledPositionPnl(\n position: RealizedBalancePosition,\n trackers: RealizedBalanceTrackers | undefined,\n onGuarded?: () => void,\n): BigNumber {\n const base = integer(position.base, 'position base');\n const realized = integer(position.realized_pnl, 'realized PnL');\n if (base.isZero()) return realized;\n if (!trackers)\n throw new SettlementTrackerError(position.market_id.toString(), 'missing');\n\n const long = base.isPositive();\n const funding = integer(\n long\n ? trackers.longTrackersFundingValue\n : trackers.shortTrackersFundingValue,\n 'market funding',\n );\n const multiplier = integer(\n long\n ? trackers.longTrackersBaseMultiplier\n : trackers.shortTrackersBaseMultiplier,\n 'market multiplier',\n );\n const unwind = integer(\n long\n ? trackers.longTrackersAdlUnwindPrice\n : trackers.shortTrackersAdlUnwindPrice,\n 'market unwind price',\n );\n const oldMultiplier = integer(\n position.base_multiplier,\n 'position multiplier',\n );\n const oldUnwind = integer(position.adl_unwind_price, 'position unwind price');\n const oldFunding = integer(position.funding_value, 'position funding');\n if (\n funding.eq(oldFunding) &&\n multiplier.eq(oldMultiplier) &&\n unwind.eq(oldUnwind)\n )\n return realized;\n\n // Market trackers older than the position's own snapshot carry no new\n // cashflow: the stored realized PnL already settled everything up to the\n // position's block. Treat that window as \"nothing accrued\" instead of\n // projecting a delta backwards (wrong-sign funding, or an ADL guard failure\n // below).\n if (trackersBehindPosition(position, trackers)) {\n onGuarded?.();\n return realized;\n }\n\n if (\n oldMultiplier.lte(0) ||\n multiplier.lt(0) ||\n multiplier.gt(oldMultiplier) ||\n unwind.lt(oldUnwind)\n ) {\n throw new SettlementTrackerError(\n position.market_id.toString(),\n 'inconsistent',\n );\n }\n const fundingCashflow = mulWad(\n divWad(funding.minus(oldFunding), oldMultiplier),\n base.negated(),\n );\n const unwindDelta = divWad(unwind.minus(oldUnwind), oldMultiplier);\n const initialPrice = mulWad(\n WAD.minus(divWad(multiplier, oldMultiplier)),\n integer(position.last_price, 'position price'),\n );\n const adlCashflow = mulWad(base, unwindDelta.minus(initialPrice));\n return realized.plus(fundingCashflow).plus(adlCashflow);\n}\n\n/**\n * Raw E18 funding on an open position since its size last changed (a fill,\n * liquidation or ADL unwind): the funding Core settles into the position's\n * realized PnL at its next change (`computeFundingCashflow` in perpOB), from\n * the position's stored funding value to the market trackers. The settled\n * balance already counts it (`calculateSettledPositionPnl`), so this\n * attributes it to the position and must never be added to a balance.\n * Positive means the position received funding.\n *\n * The stored base over the stored multiplier is the same ratio as the\n * ADL-adjusted base over the current multiplier, so no ADL adjustment is\n * needed. Market trackers behind the position's own snapshot accrue nothing,\n * as in settlement.\n */\nexport function calculatePositionFundingSinceChange(\n position: RealizedBalancePosition,\n trackers: RealizedBalanceTrackers | undefined,\n): BigNumber {\n const base = integer(position.base, 'position base');\n if (base.isZero()) return new BigNumber(0);\n if (!trackers)\n throw new SettlementTrackerError(position.market_id.toString(), 'missing');\n if (trackersBehindPosition(position, trackers)) return new BigNumber(0);\n const funding = integer(\n base.isPositive()\n ? trackers.longTrackersFundingValue\n : trackers.shortTrackersFundingValue,\n 'market funding',\n );\n const lastFunding = integer(position.funding_value, 'position funding');\n const multiplier = integer(position.base_multiplier, 'position multiplier');\n if (multiplier.lte(0)) {\n throw new SettlementTrackerError(\n position.market_id.toString(),\n 'inconsistent',\n );\n }\n return mulWad(divWad(funding.minus(lastFunding), multiplier), base.negated());\n}\n\n/**\n * Returns raw E18 PnL aligned to collateral units. The instrument floors EACH\n * market's PnL to quote-token precision before Core aggregates collateral info.\n * Funding is the stored market tracker delta; do not extrapolate it with time.\n */\nexport function calculateSettledAccountPnl(\n positions: RealizedBalancePosition[],\n trackers: Partial<Record<string, RealizedBalanceTrackers>>,\n collateralDecimals: number,\n onGuarded?: () => void,\n): BigNumber {\n return positions.reduce((sum, position) => {\n const pnl = calculateSettledPositionPnl(\n position,\n trackers[position.market_id.toString()],\n onGuarded,\n );\n const rounded = pnl\n .shiftedBy(collateralDecimals - 18)\n .integerValue(BigNumber.ROUND_FLOOR)\n .shiftedBy(18 - collateralDecimals);\n return sum.plus(rounded);\n }, new BigNumber(0));\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reyaxyz/common",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.378.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"test:coverage": "npx jest test --coverage",
|
|
42
42
|
"generate:coverage-badges": "npx istanbul-badges-readme --silent"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "0c28fe6e02076bbbd2a49f39aefa357808a8f8ed"
|
|
45
45
|
}
|
package/src/types.ts
CHANGED
|
@@ -548,16 +548,27 @@ export type TokenInfo = {
|
|
|
548
548
|
};
|
|
549
549
|
|
|
550
550
|
export type GetReyaCheckerResult = {
|
|
551
|
+
/** Season 1 Reya Chain Points. */
|
|
551
552
|
isEligibleForRcp: boolean;
|
|
553
|
+
/** Season 2 Reya Chain Points. */
|
|
554
|
+
isEligibleForRcpS2: boolean;
|
|
552
555
|
isEligibleForVltz: boolean;
|
|
553
556
|
isEligibleForCommunity: boolean;
|
|
557
|
+
/** Past competitions paid directly in REYA. */
|
|
558
|
+
isEligibleForCompetitions: boolean;
|
|
554
559
|
};
|
|
555
560
|
|
|
561
|
+
/** Claim-now amounts in REYA; `total` is the sum of the categories. */
|
|
556
562
|
export type TgeAllocatedAmount = {
|
|
557
563
|
total: number;
|
|
558
564
|
vltz: number;
|
|
565
|
+
/** Season 1 Reya Chain Points. */
|
|
559
566
|
rcp: number;
|
|
567
|
+
/** Season 2 Reya Chain Points. */
|
|
568
|
+
rcpS2: number;
|
|
560
569
|
community: number;
|
|
570
|
+
/** Past competitions paid directly in REYA. */
|
|
571
|
+
competitions: number;
|
|
561
572
|
};
|
|
562
573
|
|
|
563
574
|
export type TrancheInfo = {
|
|
@@ -187,39 +187,35 @@ export function calculateSettledPositionPnl(
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
/**
|
|
190
|
-
* Raw E18 funding on an open position since
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
190
|
+
* Raw E18 funding on an open position since its size last changed (a fill,
|
|
191
|
+
* liquidation or ADL unwind): the funding Core settles into the position's
|
|
192
|
+
* realized PnL at its next change (`computeFundingCashflow` in perpOB), from
|
|
193
|
+
* the position's stored funding value to the market trackers. The settled
|
|
194
|
+
* balance already counts it (`calculateSettledPositionPnl`), so this
|
|
195
|
+
* attributes it to the position and must never be added to a balance.
|
|
196
|
+
* Positive means the position received funding.
|
|
195
197
|
*
|
|
196
|
-
* The stored base over the multiplier
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
198
|
+
* The stored base over the stored multiplier is the same ratio as the
|
|
199
|
+
* ADL-adjusted base over the current multiplier, so no ADL adjustment is
|
|
200
|
+
* needed. Market trackers behind the position's own snapshot accrue nothing,
|
|
201
|
+
* as in settlement.
|
|
200
202
|
*/
|
|
201
|
-
export function
|
|
202
|
-
position: RealizedBalancePosition
|
|
203
|
-
average_entry_funding_value: { toString(): string } | null;
|
|
204
|
-
},
|
|
203
|
+
export function calculatePositionFundingSinceChange(
|
|
204
|
+
position: RealizedBalancePosition,
|
|
205
205
|
trackers: RealizedBalanceTrackers | undefined,
|
|
206
206
|
): BigNumber {
|
|
207
207
|
const base = integer(position.base, 'position base');
|
|
208
208
|
if (base.isZero()) return new BigNumber(0);
|
|
209
209
|
if (!trackers)
|
|
210
210
|
throw new SettlementTrackerError(position.market_id.toString(), 'missing');
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
'market funding',
|
|
218
|
-
);
|
|
219
|
-
const entry = integer(
|
|
220
|
-
position.average_entry_funding_value,
|
|
221
|
-
'average entry funding value',
|
|
211
|
+
if (trackersBehindPosition(position, trackers)) return new BigNumber(0);
|
|
212
|
+
const funding = integer(
|
|
213
|
+
base.isPositive()
|
|
214
|
+
? trackers.longTrackersFundingValue
|
|
215
|
+
: trackers.shortTrackersFundingValue,
|
|
216
|
+
'market funding',
|
|
222
217
|
);
|
|
218
|
+
const lastFunding = integer(position.funding_value, 'position funding');
|
|
223
219
|
const multiplier = integer(position.base_multiplier, 'position multiplier');
|
|
224
220
|
if (multiplier.lte(0)) {
|
|
225
221
|
throw new SettlementTrackerError(
|
|
@@ -227,7 +223,7 @@ export function calculatePositionFundingPnl(
|
|
|
227
223
|
'inconsistent',
|
|
228
224
|
);
|
|
229
225
|
}
|
|
230
|
-
return mulWad(divWad(funding.minus(
|
|
226
|
+
return mulWad(divWad(funding.minus(lastFunding), multiplier), base.negated());
|
|
231
227
|
}
|
|
232
228
|
|
|
233
229
|
/**
|