@lifi/perps-sdk-provider-ondo 17.0.0 → 18.0.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.
Files changed (75) hide show
  1. package/dist/cjs/OndoProvider.d.ts.map +1 -1
  2. package/dist/cjs/OndoProvider.js +22 -10
  3. package/dist/cjs/OndoProvider.js.map +1 -1
  4. package/dist/cjs/accountSummary.d.ts +2 -2
  5. package/dist/cjs/accountSummary.d.ts.map +1 -1
  6. package/dist/cjs/accountSummary.js +24 -2
  7. package/dist/cjs/accountSummary.js.map +1 -1
  8. package/dist/cjs/utils/collateralAsset.d.ts +3 -0
  9. package/dist/cjs/utils/collateralAsset.d.ts.map +1 -0
  10. package/dist/cjs/utils/collateralAsset.js +19 -0
  11. package/dist/cjs/utils/collateralAsset.js.map +1 -0
  12. package/dist/cjs/utils/decimal.d.ts +3 -0
  13. package/dist/cjs/utils/decimal.d.ts.map +1 -0
  14. package/dist/cjs/utils/decimal.js +22 -0
  15. package/dist/cjs/utils/decimal.js.map +1 -0
  16. package/dist/cjs/utils/index.d.ts +2 -0
  17. package/dist/cjs/utils/index.d.ts.map +1 -1
  18. package/dist/cjs/utils/index.js +5 -1
  19. package/dist/cjs/utils/index.js.map +1 -1
  20. package/dist/cjs/utils/withdrawableBalances.d.ts +4 -0
  21. package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -0
  22. package/dist/cjs/utils/withdrawableBalances.js +12 -0
  23. package/dist/cjs/utils/withdrawableBalances.js.map +1 -0
  24. package/dist/cjs/websocket/OndoWsProvider.d.ts +3 -1
  25. package/dist/cjs/websocket/OndoWsProvider.d.ts.map +1 -1
  26. package/dist/cjs/websocket/OndoWsProvider.js +28 -27
  27. package/dist/cjs/websocket/OndoWsProvider.js.map +1 -1
  28. package/dist/esm/OndoProvider.d.ts.map +1 -1
  29. package/dist/esm/OndoProvider.js +24 -12
  30. package/dist/esm/OndoProvider.js.map +1 -1
  31. package/dist/esm/accountSummary.d.ts +6 -7
  32. package/dist/esm/accountSummary.d.ts.map +1 -1
  33. package/dist/esm/accountSummary.js +29 -8
  34. package/dist/esm/accountSummary.js.map +1 -1
  35. package/dist/esm/utils/collateralAsset.d.ts +10 -0
  36. package/dist/esm/utils/collateralAsset.d.ts.map +1 -0
  37. package/dist/esm/utils/collateralAsset.js +22 -0
  38. package/dist/esm/utils/collateralAsset.js.map +1 -0
  39. package/dist/esm/utils/decimal.d.ts +10 -0
  40. package/dist/esm/utils/decimal.d.ts.map +1 -0
  41. package/dist/esm/utils/decimal.js +22 -0
  42. package/dist/esm/utils/decimal.js.map +1 -0
  43. package/dist/esm/utils/index.d.ts +2 -0
  44. package/dist/esm/utils/index.d.ts.map +1 -1
  45. package/dist/esm/utils/index.js +2 -0
  46. package/dist/esm/utils/index.js.map +1 -1
  47. package/dist/esm/utils/withdrawableBalances.d.ts +13 -0
  48. package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -0
  49. package/dist/esm/utils/withdrawableBalances.js +17 -0
  50. package/dist/esm/utils/withdrawableBalances.js.map +1 -0
  51. package/dist/esm/websocket/OndoWsProvider.d.ts +15 -12
  52. package/dist/esm/websocket/OndoWsProvider.d.ts.map +1 -1
  53. package/dist/esm/websocket/OndoWsProvider.js +41 -39
  54. package/dist/esm/websocket/OndoWsProvider.js.map +1 -1
  55. package/dist/types/OndoProvider.d.ts.map +1 -1
  56. package/dist/types/accountSummary.d.ts +6 -7
  57. package/dist/types/accountSummary.d.ts.map +1 -1
  58. package/dist/types/utils/collateralAsset.d.ts +10 -0
  59. package/dist/types/utils/collateralAsset.d.ts.map +1 -0
  60. package/dist/types/utils/decimal.d.ts +10 -0
  61. package/dist/types/utils/decimal.d.ts.map +1 -0
  62. package/dist/types/utils/index.d.ts +2 -0
  63. package/dist/types/utils/index.d.ts.map +1 -1
  64. package/dist/types/utils/withdrawableBalances.d.ts +13 -0
  65. package/dist/types/utils/withdrawableBalances.d.ts.map +1 -0
  66. package/dist/types/websocket/OndoWsProvider.d.ts +15 -12
  67. package/dist/types/websocket/OndoWsProvider.d.ts.map +1 -1
  68. package/package.json +3 -3
  69. package/src/OndoProvider.ts +38 -19
  70. package/src/accountSummary.ts +37 -12
  71. package/src/utils/collateralAsset.ts +30 -0
  72. package/src/utils/decimal.ts +24 -0
  73. package/src/utils/index.ts +2 -0
  74. package/src/utils/withdrawableBalances.ts +25 -0
  75. package/src/websocket/OndoWsProvider.ts +53 -48
@@ -1,4 +1,4 @@
1
- import { getMarketRegistry, localStorageAdapter, ReconnectingWebSocket, resolveSubscribeQuote, toMarketDisplay, toPerpsMarketDisplay, WsProviderBase, wsLog, } from '@lifi/perps-sdk';
1
+ import { DecodeChain, getMarketRegistry, localStorageAdapter, ReconnectingWebSocket, resolveSubscribeQuote, toMarketDisplay, toPerpsMarketDisplay, WsProviderBase, wsLog, } from '@lifi/perps-sdk';
2
2
  import { OndoTokenStore } from '../auth/OndoTokenStore.js';
3
3
  import { DEFAULT_ONDO_API_URL, DEFAULT_ONDO_WS_URL, ONDO_BASE_FEE_TIER, ONDO_PROVIDER_KEY, } from '../constants.js';
4
4
  import { OndoSessionExpiredError } from '../utils/apiClient.js';
@@ -51,11 +51,17 @@ export class OndoWsProvider extends WsProviderBase {
51
51
  */
52
52
  authWireRefs = new Map();
53
53
  /**
54
- * Running account-summary inputs while `accountSummary` is subscribed
55
- * (`undefined` otherwise). `walletBalance` is REST-seeded and refreshed on
56
- * fills; `marginUsed`/`unrealizedPnl` track the latest positions frame.
54
+ * Latest venue balance figures while `accountSummary` is subscribed
55
+ * (`undefined` otherwise). REST-seeded, then re-read on every fills and
56
+ * positions frame, which is what moves them.
57
57
  */
58
58
  accountSummary;
59
+ /**
60
+ * Serializes the balance re-read: a single trade event emits a fills frame
61
+ * and a positions frame together, and two concurrent REST reads can resolve
62
+ * out of order. `'latest'` coalesces the backlog to one trailing refresh.
63
+ */
64
+ accountSummaryChain = new DecodeChain('latest', (err) => wsLog.handlerFailure(this.providerKey, err));
59
65
  /** Complete (mark-price-bearing) contexts, keyed by venue market symbol. */
60
66
  contexts = {};
61
67
  /** Funding seen before the market's first mark price. */
@@ -102,6 +108,8 @@ export class OndoWsProvider extends WsProviderBase {
102
108
  case 'accountSummary':
103
109
  case 'spotBalances':
104
110
  return `${sub.channel}:${sub.address.toLowerCase()}`;
111
+ case 'availableToTrade':
112
+ throw new Error(`Ondo WS does not support channel: ${sub.channel}.`);
105
113
  }
106
114
  }
107
115
  async openChannel(sub) {
@@ -151,6 +159,7 @@ export class OndoWsProvider extends WsProviderBase {
151
159
  return () => {
152
160
  if (sub.channel === 'accountSummary') {
153
161
  this.accountSummary = undefined;
162
+ this.accountSummaryChain.reset();
154
163
  }
155
164
  for (const [key, state] of wireSubs) {
156
165
  this.releaseWire(key, state, needsLogin);
@@ -353,6 +362,7 @@ export class OndoWsProvider extends WsProviderBase {
353
362
  ],
354
363
  ];
355
364
  case 'spotBalances':
365
+ case 'availableToTrade':
356
366
  return [];
357
367
  }
358
368
  }
@@ -391,54 +401,54 @@ export class OndoWsProvider extends WsProviderBase {
391
401
  });
392
402
  }
393
403
  /**
394
- * Seed the account-summary inputs from the REST balance so the first emit is
395
- * complete before any positions frame lands. Throws {@link
404
+ * Seed the account-summary figures from the REST balance so the first emit
405
+ * is complete before any positions frame lands. Throws {@link
396
406
  * OndoSessionExpiredError} when the SIWE session is missing, matching the
397
407
  * other authenticated channels.
398
408
  */
399
409
  async seedAccountSummary(address) {
400
410
  const token = await this.requireSession(address);
401
- const balance = await this.restClient().get('/v1/perps/balance', { authToken: token.token });
402
- this.accountSummary = {
403
- walletBalance: Number.parseFloat(balance.walletBalance) || 0,
404
- marginUsed: Number.parseFloat(balance.usedMargin) || 0,
405
- unrealizedPnl: Number.parseFloat(balance.unrealizedPnl) || 0,
406
- };
411
+ this.accountSummary = await this.readBalance(token.token);
407
412
  this.emitAccountSummary();
408
413
  }
409
- /** Re-pull the wallet balance (moved by the fill) and re-emit the summary. */
410
- async refreshAccountSummaryBalance(address) {
414
+ /** Re-read the venue balance moved by the frame and re-emit the summary. */
415
+ async refreshAccountSummary(address) {
411
416
  const token = await this.tokenStore.get(address);
412
417
  if (token === null || this.accountSummary === undefined) {
413
418
  return;
414
419
  }
415
- const balance = await this.restClient().get('/v1/perps/balance', { authToken: token.token });
420
+ const balance = await this.readBalance(token.token);
416
421
  if (this.accountSummary === undefined) {
417
422
  return;
418
423
  }
419
- this.accountSummary.walletBalance =
420
- Number.parseFloat(balance.walletBalance) || 0;
424
+ this.accountSummary = balance;
421
425
  this.emitAccountSummary();
422
426
  }
423
- /**
424
- * Emit the current account summary. Gross semantics: `walletBalance` is the
425
- * collateral, the positions carry unrealized PnL, so it counts toward buying
426
- * power (`availableMargin = walletBalance + unrealizedPnl − marginUsed`).
427
- */
427
+ async readBalance(authToken) {
428
+ const balance = await this.restClient().get('/v1/perps/balance', { authToken });
429
+ return {
430
+ walletBalance: balance.walletBalance,
431
+ unrealizedPnl: balance.unrealizedPnl,
432
+ marginBalance: balance.marginBalance,
433
+ usedMargin: balance.usedMargin,
434
+ availableMargin: balance.availableMargin,
435
+ withdrawableMargin: balance.withdrawableMargin,
436
+ };
437
+ }
438
+ /** Emit the current account summary from the venue balance figures. */
428
439
  emitAccountSummary() {
429
- const summary = this.accountSummary;
440
+ const balance = this.accountSummary;
430
441
  const address = this.accountAddress;
431
- if (summary === undefined || address === undefined) {
442
+ if (balance === undefined || address === undefined) {
432
443
  return;
433
444
  }
434
- const portfolioValue = summary.walletBalance + summary.unrealizedPnl;
435
445
  this.emit(`accountSummary:${address}`, {
436
446
  channel: 'accountSummary',
437
447
  data: {
438
- portfolioValue: portfolioValue.toString(),
439
- availableMargin: (portfolioValue - summary.marginUsed).toString(),
440
- marginUsed: summary.marginUsed.toString(),
441
- unrealizedPnl: summary.unrealizedPnl.toString(),
448
+ portfolioValue: balance.marginBalance,
449
+ availableMargin: balance.availableMargin,
450
+ marginUsed: balance.usedMargin,
451
+ unrealizedPnl: balance.unrealizedPnl,
442
452
  },
443
453
  });
444
454
  }
@@ -635,7 +645,7 @@ export class OndoWsProvider extends WsProviderBase {
635
645
  }
636
646
  this.emit(`fills:${address}`, { channel: 'fills', data: mapped });
637
647
  if (this.accountSummary !== undefined) {
638
- this.refreshAccountSummaryBalance(address).catch((err) => wsLog.handlerFailure(this.providerKey, err));
648
+ this.accountSummaryChain.push(() => this.refreshAccountSummary(address));
639
649
  }
640
650
  }
641
651
  handlePositions(positions) {
@@ -656,15 +666,7 @@ export class OndoWsProvider extends WsProviderBase {
656
666
  data: mapped,
657
667
  });
658
668
  if (this.accountSummary !== undefined) {
659
- let marginUsed = 0;
660
- let unrealizedPnl = 0;
661
- for (const position of positions) {
662
- marginUsed += Number.parseFloat(position.usedMargin) || 0;
663
- unrealizedPnl += Number.parseFloat(position.unrealizedPnl) || 0;
664
- }
665
- this.accountSummary.marginUsed = marginUsed;
666
- this.accountSummary.unrealizedPnl = unrealizedPnl;
667
- this.emitAccountSummary();
669
+ this.accountSummaryChain.push(() => this.refreshAccountSummary(address));
668
670
  }
669
671
  }
670
672
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OndoWsProvider.js","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OndoWsProvider.js","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OndoProvider.d.ts","sourceRoot":"","sources":["../../src/OndoProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,mBAAmB,EAiBxB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAA;AA6FxB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,GACvB,UAAS,mBAAwB,KAChC,mBAsyBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,aA9yBN,mBAAmB,KAC3B,mBA6yB6B,CAAA"}
1
+ {"version":3,"file":"OndoProvider.d.ts","sourceRoot":"","sources":["../../src/OndoProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,mBAAmB,EAmBxB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAA;AA+FxB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,GACvB,UAAS,mBAAwB,KAChC,mBAqzBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,aA7zBN,mBAAmB,KAC3B,mBA4zB6B,CAAA"}
@@ -1,12 +1,11 @@
1
- import type { AccountResponse, AccountSummary, Position } from '@lifi/perps-types';
1
+ import type { AccountResponse, AccountSummary } from '@lifi/perps-types';
2
2
  /**
3
- * Roll an Ondo {@link AccountResponse} up into an {@link AccountSummary}.
4
- * Ondo's collateral row holds `walletBalance`, which includes locked margin
5
- * but not unrealized PnL (the positions carry it) — gross semantics: the
6
- * venue counts unrealized PnL toward buying power
7
- * (`availableMargin = marginBalance − usedMargin`).
3
+ * Roll an Ondo account up into an {@link AccountSummary}, from the venue
4
+ * balance figures the response carries. A logged-out account reads no venue
5
+ * balance and summarizes as zero.
8
6
  *
7
+ * @throws {PerpsError} `SDKError` when the account is not an Ondo one.
9
8
  * @public
10
9
  */
11
- export declare function getAccountSummary(account: AccountResponse, positions: Position[]): AccountSummary;
10
+ export declare function getAccountSummary(account: AccountResponse): AccountSummary;
12
11
  //# sourceMappingURL=accountSummary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountSummary.d.ts","sourceRoot":"","sources":["../../src/accountSummary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,cAAc,CAEhB"}
1
+ {"version":3,"file":"accountSummary.d.ts","sourceRoot":"","sources":["../../src/accountSummary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEf,MAAM,mBAAmB,CAAA;AAsB1B;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAW1E"}
@@ -0,0 +1,10 @@
1
+ import type { Asset, Provider } from '@lifi/perps-types';
2
+ /**
3
+ * The collateral asset the backend publishes for Ondo's single category. The
4
+ * backend owns the collateral identity, so the venue payload never names it.
5
+ *
6
+ * @throws {PerpsError} `SDKError` when the provider metadata carries none.
7
+ * @public
8
+ */
9
+ export declare const requireOndoCollateralAsset: (providers: readonly Provider[]) => Asset;
10
+ //# sourceMappingURL=collateralAsset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collateralAsset.d.ts","sourceRoot":"","sources":["../../../src/utils/collateralAsset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIxD;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,WAAW,SAAS,QAAQ,EAAE,KAC7B,KAeF,CAAA"}
@@ -0,0 +1,10 @@
1
+ import Big from 'big.js';
2
+ /**
3
+ * Exact-decimal parse of an Ondo wire decimal string. `field` names the
4
+ * offending field on failure, so a venue contract breach surfaces as a
5
+ * `PerpsError` instead of an anonymous big.js throw.
6
+ *
7
+ * @throws {PerpsError} `SDKError` when `value` is not a decimal numeric string.
8
+ */
9
+ export declare const toWireBig: (value: string, field: string) => Big;
10
+ //# sourceMappingURL=decimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../../src/utils/decimal.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,QAAQ,CAAA;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,GAWxD,CAAA"}
@@ -1,5 +1,6 @@
1
1
  export { decodeActivityCursor, encodeActivityCursor, type OndoActivityCursor, } from './activityCursor.js';
2
2
  export { type ApiParams, ONDO_RETRY_DEFAULTS, OndoApiClient, type OndoApiClientOptions, OndoApiError, type OndoHttpMethod, type OndoPage, type OndoRequestOptions, OndoSessionExpiredError, } from './apiClient.js';
3
+ export { requireOndoCollateralAsset } from './collateralAsset.js';
3
4
  export { buildOndoProvisionPayload, listOndoDepositAddress, ONDO_DEPOSIT_POLICY, type OndoDepositAddressRecord, type OndoDepositPolicyMarker, parseOndoDepositAddress, } from './depositAddress.js';
4
5
  export { estimateLiquidationPrice } from './liquidation.js';
5
6
  export { mapDepositActivity, mapFundingActivity, mapLiquidationActivity, mapWithdrawalActivity, } from './mapActivity.js';
@@ -10,4 +11,5 @@ export { intervalFromBarSpan, mapInterval } from './ohlcvInterval.js';
10
11
  export { ondoAsset } from './ondoAsset.js';
11
12
  export { formatOrderPrice, formatOrderSize } from './orderFormatting.js';
12
13
  export { positionMarginConstraints } from './transferMargin.js';
14
+ export { ondoWithdrawableBalances } from './withdrawableBalances.js';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { ProviderWithdrawableBalance } from '@lifi/perps-sdk';
2
+ import type { OndoBalanceSummary } from '../types/wire.js';
3
+ /**
4
+ * The single route an Ondo withdrawal draws on: `withdrawableMargin`, the
5
+ * venue's own figure for the margin the account can take out. A route with
6
+ * nothing left to draw carries no row, and the caller applies the per-asset
7
+ * venue minimum.
8
+ *
9
+ * @param assetId - `Asset.id` the row is keyed by.
10
+ * @public
11
+ */
12
+ export declare const ondoWithdrawableBalances: (assetId: string, balance: OndoBalanceSummary) => ProviderWithdrawableBalance[];
13
+ //# sourceMappingURL=withdrawableBalances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdrawableBalances.d.ts","sourceRoot":"","sources":["../../../src/utils/withdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAG1D;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,SAAS,kBAAkB,KAC1B,2BAA2B,EAQ7B,CAAA"}
@@ -47,11 +47,17 @@ export declare class OndoWsProvider extends WsProviderBase<SubState> {
47
47
  */
48
48
  private readonly authWireRefs;
49
49
  /**
50
- * Running account-summary inputs while `accountSummary` is subscribed
51
- * (`undefined` otherwise). `walletBalance` is REST-seeded and refreshed on
52
- * fills; `marginUsed`/`unrealizedPnl` track the latest positions frame.
50
+ * Latest venue balance figures while `accountSummary` is subscribed
51
+ * (`undefined` otherwise). REST-seeded, then re-read on every fills and
52
+ * positions frame, which is what moves them.
53
53
  */
54
54
  private accountSummary;
55
+ /**
56
+ * Serializes the balance re-read: a single trade event emits a fills frame
57
+ * and a positions frame together, and two concurrent REST reads can resolve
58
+ * out of order. `'latest'` coalesces the backlog to one trailing refresh.
59
+ */
60
+ private readonly accountSummaryChain;
55
61
  /** Complete (mark-price-bearing) contexts, keyed by venue market symbol. */
56
62
  private contexts;
57
63
  /** Funding seen before the market's first mark price. */
@@ -104,19 +110,16 @@ export declare class OndoWsProvider extends WsProviderBase<SubState> {
104
110
  private ensureLogin;
105
111
  private restClient;
106
112
  /**
107
- * Seed the account-summary inputs from the REST balance so the first emit is
108
- * complete before any positions frame lands. Throws {@link
113
+ * Seed the account-summary figures from the REST balance so the first emit
114
+ * is complete before any positions frame lands. Throws {@link
109
115
  * OndoSessionExpiredError} when the SIWE session is missing, matching the
110
116
  * other authenticated channels.
111
117
  */
112
118
  private seedAccountSummary;
113
- /** Re-pull the wallet balance (moved by the fill) and re-emit the summary. */
114
- private refreshAccountSummaryBalance;
115
- /**
116
- * Emit the current account summary. Gross semantics: `walletBalance` is the
117
- * collateral, the positions carry unrealized PnL, so it counts toward buying
118
- * power (`availableMargin = walletBalance + unrealizedPnl − marginUsed`).
119
- */
119
+ /** Re-read the venue balance moved by the frame and re-emit the summary. */
120
+ private refreshAccountSummary;
121
+ private readBalance;
122
+ /** Emit the current account summary from the venue balance figures. */
120
123
  private emitAccountSummary;
121
124
  protected handleMessage(raw: string): void;
122
125
  private handleBooks;
@@ -1 +1 @@
1
- {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/perps-sdk-provider-ondo",
3
- "version": "17.0.0",
3
+ "version": "18.0.0",
4
4
  "description": "Ondo Perps provider plugin for @lifi/perps-sdk",
5
5
  "homepage": "https://github.com/lifinance/perps-sdk",
6
6
  "bugs": {
@@ -44,10 +44,10 @@
44
44
  "dependencies": {
45
45
  "big.js": "^7.0.1",
46
46
  "viem": "^2.55.18",
47
- "@lifi/perps-types": "^14.0.0"
47
+ "@lifi/perps-types": "^15.0.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "@lifi/perps-sdk": "^15.0.0"
50
+ "@lifi/perps-sdk": "^16.0.0"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
@@ -20,6 +20,8 @@ import {
20
20
  type ProviderGetPortfolioHistoryParams,
21
21
  type ProviderGetPositionsParams,
22
22
  type ProviderGetQuoteParams,
23
+ type ProviderGetWithdrawableBalancesParams,
24
+ type ProviderWithdrawableBalance,
23
25
  paginateActivity,
24
26
  resolveQuote,
25
27
  resolveRetryPolicy,
@@ -111,7 +113,9 @@ import {
111
113
  mapOpenPositions,
112
114
  mapOrder,
113
115
  mapWithdrawalActivity,
116
+ ondoWithdrawableBalances,
114
117
  positionMarginConstraints,
118
+ requireOndoCollateralAsset,
115
119
  } from './utils/index.js'
116
120
  import { mapPortfolioHistory } from './utils/mapPortfolioHistory.js'
117
121
  import {
@@ -323,19 +327,7 @@ export const ondoProvider = (
323
327
  marketRegistry().sync(),
324
328
  ])
325
329
 
326
- const collateralAsset = providers
327
- .find((provider) => provider.key === ONDO_PROVIDER_KEY)
328
- ?.categories.find(
329
- (category) => category.id === ONDO_PROVIDER_KEY
330
- )?.quoteAsset
331
- if (collateralAsset === null || collateralAsset === undefined) {
332
- const error = new PerpsError(
333
- PerpsErrorCode.SDKError,
334
- 'Ondo provider metadata is missing its collateral asset'
335
- )
336
- error.tool = ONDO_PROVIDER_KEY
337
- throw error
338
- }
330
+ const collateralAsset = requireOndoCollateralAsset(providers)
339
331
 
340
332
  const positions: Position[] = mapOpenPositions(
341
333
  rawPositions ?? [],
@@ -343,7 +335,7 @@ export const ondoProvider = (
343
335
  )
344
336
 
345
337
  // The backend owns the collateral identity; the venue supplies its
346
- // gross wallet balance (locked margin in, unrealized PnL out).
338
+ // wallet balance (locked margin in, unrealized PnL out).
347
339
  return {
348
340
  provider: ONDO_PROVIDER_KEY,
349
341
  address: params.address,
@@ -373,12 +365,42 @@ export const ondoProvider = (
373
365
  apiKeyRegistered,
374
366
  referralSet: referral !== null && referral !== undefined,
375
367
  depositAddress,
368
+ balance: {
369
+ walletBalance: balance.walletBalance,
370
+ unrealizedPnl: balance.unrealizedPnl,
371
+ marginBalance: balance.marginBalance,
372
+ usedMargin: balance.usedMargin,
373
+ availableMargin: balance.availableMargin,
374
+ withdrawableMargin: balance.withdrawableMargin,
375
+ },
376
376
  },
377
377
  }
378
378
  }
379
379
  )
380
380
  },
381
381
 
382
+ async getWithdrawableBalances(
383
+ params: ProviderGetWithdrawableBalancesParams,
384
+ opts?: SDKRequestOptions
385
+ ): Promise<ProviderWithdrawableBalance[]> {
386
+ return withSession(
387
+ params.address,
388
+ (): ProviderWithdrawableBalance[] => [],
389
+ async (token) => {
390
+ const [{ providers }, balance] = await Promise.all([
391
+ getProviders(requireClient(), opts),
392
+ apiClient(opts).get<OndoBalanceSummary>('/v1/perps/balance', {
393
+ authToken: token.token,
394
+ }),
395
+ ])
396
+ return ondoWithdrawableBalances(
397
+ requireOndoCollateralAsset(providers).id,
398
+ balance
399
+ )
400
+ }
401
+ )
402
+ },
403
+
382
404
  async accountExists(
383
405
  params: ProviderAccountExistsParams,
384
406
  opts?: SDKRequestOptions
@@ -899,11 +921,8 @@ export const ondoProvider = (
899
921
  )
900
922
  },
901
923
 
902
- getAccountSummary(
903
- account: AccountResponse,
904
- positions: Position[]
905
- ): AccountSummary {
906
- return getAccountSummary(account, positions)
924
+ getAccountSummary(account: AccountResponse): AccountSummary {
925
+ return getAccountSummary(account)
907
926
  },
908
927
 
909
928
  formatOrderPrice,
@@ -1,22 +1,47 @@
1
- import { summarizeAccount } from '@lifi/perps-sdk'
1
+ import { PerpsError } from '@lifi/perps-sdk'
2
2
  import type {
3
3
  AccountResponse,
4
4
  AccountSummary,
5
- Position,
5
+ OndoAccountBalance,
6
6
  } from '@lifi/perps-types'
7
+ import { PerpsErrorCode } from '@lifi/perps-types'
8
+
9
+ const ZERO_SUMMARY: AccountSummary = {
10
+ portfolioValue: '0',
11
+ availableMargin: '0',
12
+ marginUsed: '0',
13
+ unrealizedPnl: '0',
14
+ }
15
+
16
+ const ondoBalance = (
17
+ account: AccountResponse
18
+ ): OndoAccountBalance | undefined => {
19
+ if (account.config.provider !== 'ondo') {
20
+ throw new PerpsError(
21
+ PerpsErrorCode.SDKError,
22
+ `Ondo account summary received a '${account.config.provider}' account config`
23
+ )
24
+ }
25
+ return account.config.balance
26
+ }
7
27
 
8
28
  /**
9
- * Roll an Ondo {@link AccountResponse} up into an {@link AccountSummary}.
10
- * Ondo's collateral row holds `walletBalance`, which includes locked margin
11
- * but not unrealized PnL (the positions carry it) — gross semantics: the
12
- * venue counts unrealized PnL toward buying power
13
- * (`availableMargin = marginBalance − usedMargin`).
29
+ * Roll an Ondo account up into an {@link AccountSummary}, from the venue
30
+ * balance figures the response carries. A logged-out account reads no venue
31
+ * balance and summarizes as zero.
14
32
  *
33
+ * @throws {PerpsError} `SDKError` when the account is not an Ondo one.
15
34
  * @public
16
35
  */
17
- export function getAccountSummary(
18
- account: AccountResponse,
19
- positions: Position[]
20
- ): AccountSummary {
21
- return summarizeAccount(account, positions, 'gross')
36
+ export function getAccountSummary(account: AccountResponse): AccountSummary {
37
+ const balance = ondoBalance(account)
38
+ if (balance === undefined) {
39
+ return ZERO_SUMMARY
40
+ }
41
+ return {
42
+ portfolioValue: balance.marginBalance,
43
+ availableMargin: balance.availableMargin,
44
+ marginUsed: balance.usedMargin,
45
+ unrealizedPnl: balance.unrealizedPnl,
46
+ }
22
47
  }
@@ -0,0 +1,30 @@
1
+ import { PerpsError } from '@lifi/perps-sdk'
2
+ import type { Asset, Provider } from '@lifi/perps-types'
3
+ import { PerpsErrorCode } from '@lifi/perps-types'
4
+ import { ONDO_PROVIDER_KEY } from '../constants.js'
5
+
6
+ /**
7
+ * The collateral asset the backend publishes for Ondo's single category. The
8
+ * backend owns the collateral identity, so the venue payload never names it.
9
+ *
10
+ * @throws {PerpsError} `SDKError` when the provider metadata carries none.
11
+ * @public
12
+ */
13
+ export const requireOndoCollateralAsset = (
14
+ providers: readonly Provider[]
15
+ ): Asset => {
16
+ const asset = providers
17
+ .find((provider) => provider.key === ONDO_PROVIDER_KEY)
18
+ ?.categories.find(
19
+ (category) => category.id === ONDO_PROVIDER_KEY
20
+ )?.quoteAsset
21
+ if (asset === null || asset === undefined) {
22
+ const error = new PerpsError(
23
+ PerpsErrorCode.SDKError,
24
+ 'Ondo provider metadata is missing its collateral asset'
25
+ )
26
+ error.tool = ONDO_PROVIDER_KEY
27
+ throw error
28
+ }
29
+ return asset
30
+ }