@lifi/perps-sdk-provider-ondo 1.0.1 → 1.0.2

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 CHANGED
@@ -1,38 +1,53 @@
1
- # @lifi/perps-sdk-provider-ondo
1
+ <div align="center">
2
2
 
3
- Ondo Perps provider plugin for [`@lifi/perps-sdk`](https://github.com/lifinance/perps-sdk).
3
+ [![license](https://img.shields.io/github/license/lifinance/perps-sdk)](/LICENSE)
4
+ [![npm latest package](https://img.shields.io/npm/v/@lifi/perps-sdk-provider-ondo/latest.svg)](https://www.npmjs.com/package/@lifi/perps-sdk-provider-ondo)
5
+ [![npm downloads](https://img.shields.io/npm/dm/@lifi/perps-sdk-provider-ondo.svg)](https://www.npmjs.com/package/@lifi/perps-sdk-provider-ondo)
6
+ [![Follow on Twitter](https://img.shields.io/twitter/follow/lifiprotocol.svg?label=follow+LI.FI)](https://twitter.com/lifiprotocol)
4
7
 
5
- Ondo authenticates with a JWT session token obtained through a SIWE (ERC-4361)
6
- login: the backend issues the challenge, the user signs it with their wallet,
7
- and this package completes the login directly against Ondo — the JWT never
8
- transits the LI.FI backend and is persisted browser-side only.
8
+ </div>
9
9
 
10
- ## What this package provides
11
-
12
- - `ondoProvider()` — the `PerpsProviderPlugin` registered via
13
- `createPerpsClient({ providers: [ondoProvider()] })`: SIWE session login,
14
- authenticated account reads direct against Ondo, and quote/fee display from
15
- Ondo's public base fee schedule.
16
- - `ondoWsProvider()` — the realtime WS provider registered via
17
- `new PerpsWsClient(client, { wsProviders: { ondo: ondoWsProvider() } })`:
18
- orderbook, trades, candles and market context, plus JWT-authenticated
19
- order/fill/position streams.
20
- - `OndoApiClient` — HTTP boundary against Ondo's REST API. Unwraps Ondo's
21
- `GenericResponse` envelope, attaches `Authorization: Bearer <JWT>` when a
22
- session token is supplied, and surfaces typed errors (`OndoApiError`,
23
- `OndoSessionExpiredError`).
24
- - `completeSiweLogin` — signs a SIWE challenge with the user's wallet and
25
- exchanges it for an Ondo session token (`OndoAuthToken`).
26
- - `OndoTokenStore` — persists the session token per wallet address and
27
- environment via a `StorageAdapter`; expired tokens read back as absent.
10
+ <h1 align="center"><code>@lifi/perps-sdk-provider-ondo</code></h1>
28
11
 
29
- ## Environments
12
+ Ondo Perps provider plugin for the [LI.FI Perps SDK](https://public-perps-docs.mintlify.app/). Register it on a `PerpsClient` to trade Ondo perpetuals through the SDK's unified interface.
30
13
 
31
- Production `https://api.ondoperps.xyz` is the default; the sandbox
32
- `https://api.ondoperps-sandbox.xyz` can be selected by passing its base URL.
14
+ Ondo authenticates in two stages, both completed client-side. A SIWE (ERC-4361) login — challenge issued by the backend, signed by the user's wallet — yields a JWT session token used for authenticated reads. The package then creates a trading API key via the JWT (`POST /v1/api_keys`) and signs every mutating trade action with it per-request (HMAC-SHA256). Neither the JWT nor the API key secret transits the LI.FI backend; both are persisted browser-side through the storage adapter.
33
15
 
34
16
  ## Installation
35
17
 
36
18
  ```bash
37
- pnpm add @lifi/perps-sdk-provider-ondo
19
+ pnpm add @lifi/perps-sdk @lifi/perps-sdk-provider-ondo
20
+ ```
21
+
22
+ ## Quick start
23
+
24
+ ```ts
25
+ import { createPerpsClient } from '@lifi/perps-sdk'
26
+ import { ondoProvider } from '@lifi/perps-sdk-provider-ondo'
27
+
28
+ const client = createPerpsClient({
29
+ integrator: 'my-app',
30
+ apiKey: 'your-api-key',
31
+ providers: [ondoProvider()],
32
+ })
38
33
  ```
34
+
35
+ ## What this package provides
36
+
37
+ - `ondoProvider()` — the `PerpsProviderPlugin` registered via `createPerpsClient({ providers: [ondoProvider()] })`: SIWE session login, JWT-authenticated account reads direct against Ondo, API-key-signed trade actions, and quote/fee display from Ondo's public base fee schedule.
38
+ - `ondoWsProvider()` — the WebSocket provider registered via `new PerpsWsClient(client, { wsProviders: { ondo: ondoWsProvider() } })`: orderbook, trades, candles and market context, plus JWT-authenticated order/fill/position streams.
39
+ - `OndoApiClient` — HTTP boundary against Ondo's REST API. Unwraps Ondo's `GenericResponse` envelope, attaches `Authorization: Bearer <JWT>` when a session token is supplied, and surfaces typed errors (`OndoApiError`, `OndoSessionExpiredError`).
40
+ - `completeSiweLogin` — signs a SIWE challenge with the user's wallet and exchanges it for an Ondo session token (`OndoAuthToken`).
41
+ - `OndoTokenStore` — persists the session token per wallet address and environment via a `StorageAdapter`; expired tokens read back as absent.
42
+ - `OndoApiKeyStore` — persists the trading API key per wallet address and environment; the key is created on first use via the JWT (the venue reveals the secret only once) and signs mutating requests thereafter.
43
+
44
+ ## Environments
45
+
46
+ Production `https://api.ondoperps.xyz` is the default; the sandbox `https://api.ondoperps-sandbox.xyz` can be selected by passing its base URL.
47
+
48
+ ## Documentation
49
+
50
+ - [`@lifi/perps-sdk` README](https://www.npmjs.com/package/@lifi/perps-sdk) — client setup, options, and the WebSocket API
51
+ - [Full documentation](https://public-perps-docs.mintlify.app/)
52
+ - [API reference](https://public-perps-docs.mintlify.app/api-reference)
53
+ - [Source and issues](https://github.com/lifinance/perps-sdk)
@@ -29,6 +29,9 @@ export declare class OndoWsProvider extends WsProviderBase<SubState> {
29
29
  subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
30
30
  protected toKey(sub: Subscription): string;
31
31
  protected openChannel(sub: Subscription): Promise<() => void>;
32
+ private bindAddress;
33
+ private releaseBindingIfIdle;
34
+ private releaseBinding;
32
35
  private acquireWire;
33
36
  private releaseWire;
34
37
  protected sendSubscribe(state: SubState): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,KAAK,cAAc,EAEnB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAwDnC,UAAU,QAAQ;IAEhB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAOD,MAAM,WAAW,qBAAqB;IAMpC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAUD,qBAAa,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAQ/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAOzD,OAAO,CAAC,cAAc,CAET;IAGb,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO,CAAC,cAAc,CAGnB;IAGH,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAA2B;gBAG7C,KAAK,GAAE,MAA4B,EACnC,WAAW,SAAoB,EAC/B,OAAO,GAAE,qBAA0B,EACnC,MAAM,CAAC,EAAE,cAAc;IAmBnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAkBtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;cAqB1B,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;YAiDrD,WAAW;IAuBzB,OAAO,CAAC,WAAW;cAaH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAO1C,OAAO,IAAI,IAAI;IAOlC,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,UAAU;YAYJ,kBAAkB;YAoBlB,4BAA4B;IAsB1C,OAAO,CAAC,kBAAkB;IAkB1B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+C1C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,aAAa,CAGpB;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CA2BxB;AAaD,eAAO,MAAM,cAAc,GACxB,UAAU,qBAAqB,KAAG,iBAEmB,CAAA"}
1
+ {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,KAAK,cAAc,EAEnB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AA+DnC,UAAU,QAAQ;IAEhB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAOD,MAAM,WAAW,qBAAqB;IAMpC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAUD,qBAAa,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAQ/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAOzD,OAAO,CAAC,cAAc,CAET;IAGb,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO,CAAC,cAAc,CAGnB;IAGH,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAA2B;gBAG7C,KAAK,GAAE,MAA4B,EACnC,WAAW,SAAoB,EAC/B,OAAO,GAAE,qBAA0B,EACnC,MAAM,CAAC,EAAE,cAAc;IAqBnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAkBtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;cAqB1B,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IA0DnE,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,cAAc;YAOR,WAAW;IAuBzB,OAAO,CAAC,WAAW;cAkBH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAU1C,OAAO,IAAI,IAAI;IAQlC,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,UAAU;YAYJ,kBAAkB;YAoBlB,4BAA4B;IAsB1C,OAAO,CAAC,kBAAkB;IAkB1B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+C1C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,aAAa,CAGpB;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CA2BxB;AAaD,eAAO,MAAM,cAAc,GACxB,UAAU,qBAAqB,KAAG,iBAEmB,CAAA"}
@@ -12,6 +12,10 @@ const ONDO_AUTH_CHANNEL = {
12
12
  fills: 'fillsPerps',
13
13
  positions: 'positionsPerps',
14
14
  };
15
+ const ONDO_AUTH_FANOUT = [
16
+ ...Object.keys(ONDO_AUTH_CHANNEL),
17
+ 'accountSummary',
18
+ ];
15
19
  const isAuthChannel = (channel) => channel in ONDO_AUTH_CHANNEL;
16
20
  class OndoWsProvider extends perps_sdk_1.WsProviderBase {
17
21
  tokenStore;
@@ -32,6 +36,7 @@ class OndoWsProvider extends perps_sdk_1.WsProviderBase {
32
36
  this.registry = client && (0, perps_sdk_1.getMarketRegistry)(client, providerKey);
33
37
  this.rws.on('close', () => {
34
38
  this.loginPromise = undefined;
39
+ this.accountAddress = undefined;
35
40
  });
36
41
  }
37
42
  async subscribeQuote(params, onQuote) {
@@ -69,22 +74,30 @@ class OndoWsProvider extends perps_sdk_1.WsProviderBase {
69
74
  }
70
75
  const wireSubs = this.resolveChannel(sub);
71
76
  const needsLogin = isAuthChannel(sub.channel) || sub.channel === 'accountSummary';
77
+ let boundHere = false;
72
78
  if (needsLogin) {
73
79
  const address = sub.address.toLowerCase();
74
- if (this.accountAddress !== undefined &&
75
- this.accountAddress !== address) {
76
- throw new Error(`Ondo WS supports one authenticated address per connection; already bound to ${this.accountAddress}, cannot subscribe for ${address}.`);
77
- }
78
- this.accountAddress = address;
79
- await this.registry?.sync();
80
+ boundHere = this.accountAddress !== address;
81
+ this.bindAddress(address);
80
82
  }
81
- if (sub.channel === 'accountSummary') {
82
- await this.seedAccountSummary(sub.address);
83
+ try {
84
+ if (needsLogin) {
85
+ await this.registry?.sync();
86
+ }
87
+ if (sub.channel === 'accountSummary') {
88
+ await this.seedAccountSummary(sub.address);
89
+ }
90
+ for (const [key, state] of wireSubs) {
91
+ await this.acquireWire(key, state, needsLogin);
92
+ }
93
+ await this.rws.ready();
83
94
  }
84
- for (const [key, state] of wireSubs) {
85
- await this.acquireWire(key, state, needsLogin);
95
+ catch (err) {
96
+ if (boundHere) {
97
+ this.accountAddress = undefined;
98
+ }
99
+ throw err;
86
100
  }
87
- await this.rws.ready();
88
101
  return () => {
89
102
  if (sub.channel === 'accountSummary') {
90
103
  this.accountSummary = undefined;
@@ -94,6 +107,32 @@ class OndoWsProvider extends perps_sdk_1.WsProviderBase {
94
107
  }
95
108
  };
96
109
  }
110
+ bindAddress(address) {
111
+ if (this.accountAddress === address) {
112
+ return;
113
+ }
114
+ if (this.accountAddress !== undefined && !this.releaseBindingIfIdle()) {
115
+ throw new Error(`Ondo WS supports one authenticated address per connection; already bound to ${this.accountAddress}, cannot subscribe for ${address}.`);
116
+ }
117
+ this.accountAddress = address;
118
+ }
119
+ releaseBindingIfIdle() {
120
+ const bound = this.accountAddress;
121
+ if (bound === undefined) {
122
+ return true;
123
+ }
124
+ for (const channel of ONDO_AUTH_FANOUT) {
125
+ if (!this.closeChannelIfIdle(`${channel}:${bound}`)) {
126
+ return false;
127
+ }
128
+ }
129
+ return true;
130
+ }
131
+ releaseBinding() {
132
+ this.accountAddress = undefined;
133
+ this.loginPromise = undefined;
134
+ this.rws.reconnect();
135
+ }
97
136
  async acquireWire(key, state, shared) {
98
137
  if (!shared) {
99
138
  await this.registerSub(key, state);
@@ -122,9 +161,13 @@ class OndoWsProvider extends perps_sdk_1.WsProviderBase {
122
161
  }
123
162
  this.unregisterSub(key);
124
163
  this.rws.send(JSON.stringify({ op: 'unsubscribe', ...state.frame }));
164
+ if (shared && this.authWireRefs.size === 0) {
165
+ this.releaseBinding();
166
+ }
125
167
  }
126
168
  async sendSubscribe(state) {
127
169
  if (state.needsAuth && state.address !== undefined) {
170
+ this.accountAddress = state.address.toLowerCase();
128
171
  await this.ensureLogin(state.address);
129
172
  }
130
173
  this.rws.send(JSON.stringify({ op: 'subscribe', ...state.frame }));
@@ -133,6 +176,7 @@ class OndoWsProvider extends perps_sdk_1.WsProviderBase {
133
176
  this.contexts = {};
134
177
  this.pendingFunding.clear();
135
178
  this.loginPromise = undefined;
179
+ this.accountAddress = undefined;
136
180
  }
137
181
  resolveChannel(sub) {
138
182
  switch (sub.channel) {
@@ -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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"}
@@ -63,6 +63,25 @@ export declare class OndoWsProvider extends WsProviderBase<SubState> {
63
63
  subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
64
64
  protected toKey(sub: Subscription): string;
65
65
  protected openChannel(sub: Subscription): Promise<() => void>;
66
+ /**
67
+ * Reserve the connection's single authenticated slot for `address`. A prior
68
+ * binding whose channels have all been released — still lingering in the
69
+ * base teardown window — is reclaimed (cycling the connection) before the
70
+ * new one takes it; a binding that another address still holds live throws.
71
+ */
72
+ private bindAddress;
73
+ /**
74
+ * Force-tear-down the bound address's authenticated channels when every one
75
+ * is idle, which cycles the connection via {@link releaseBinding}. Returns
76
+ * false — leaving the binding intact — while any is still live.
77
+ */
78
+ private releaseBindingIfIdle;
79
+ /**
80
+ * Forget the authenticated binding and cycle the connection. The venue
81
+ * permits one login per socket, so a later subscribe for a different address
82
+ * must authenticate on a fresh connection rather than re-login on this one.
83
+ */
84
+ private releaseBinding;
66
85
  /** Register a wire sub, ref-counting the shared authenticated channels. */
67
86
  private acquireWire;
68
87
  /** Mirror of {@link acquireWire}: drop the wire sub on its last release. */
@@ -1 +1 @@
1
- {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,KAAK,cAAc,EAEnB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAwDnC,UAAU,QAAQ;IAChB,yEAAyE;IACzE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAEzD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAET;IAEb,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAoC;IACpD,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAGnB;IAEH,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAA2B;gBAG7C,KAAK,GAAE,MAA4B,EACnC,WAAW,SAAoB,EAC/B,OAAO,GAAE,qBAA0B,EACnC,MAAM,CAAC,EAAE,cAAc;IAmBnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAkBtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;cAqB1B,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgDnE,2EAA2E;YAC7D,WAAW;IAsBzB,4EAA4E;IAC5E,OAAO,CAAC,WAAW;cAaH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAO1C,OAAO,IAAI,IAAI;IAMlC,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAyGtB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,UAAU;IAMlB;;;;;OAKG;YACW,kBAAkB;IAmBhC,8EAA8E;YAChE,4BAA4B;IAiB1C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAkB1B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+C1C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAgBpB,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAGpB;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CA2BxB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GACxB,UAAU,qBAAqB,KAAG,iBAEmB,CAAA"}
1
+ {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,KAAK,cAAc,EAEnB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AA+DnC,UAAU,QAAQ;IAChB,yEAAyE;IACzE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAEzD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAET;IAEb,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAoC;IACpD,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAGnB;IAEH,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAA2B;gBAG7C,KAAK,GAAE,MAA4B,EACnC,WAAW,SAAoB,EAC/B,OAAO,GAAE,qBAA0B,EACnC,MAAM,CAAC,EAAE,cAAc;IAqBnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAkBtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;cAqB1B,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAoDnE;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAYnB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAMtB,2EAA2E;YAC7D,WAAW;IAsBzB,4EAA4E;IAC5E,OAAO,CAAC,WAAW;cAkBH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAU1C,OAAO,IAAI,IAAI;IAOlC,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAyGtB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,UAAU;IAMlB;;;;;OAKG;YACW,kBAAkB;IAmBhC,8EAA8E;YAChE,4BAA4B;IAiB1C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAkB1B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+C1C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAgBpB,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAGpB;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CA2BxB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GACxB,UAAU,qBAAqB,KAAG,iBAEmB,CAAA"}
@@ -23,6 +23,12 @@ const ONDO_AUTH_CHANNEL = {
23
23
  fills: 'fillsPerps',
24
24
  positions: 'positionsPerps',
25
25
  };
26
+ // Fan-out channels that reserve the connection's single authenticated-address
27
+ // binding; `accountSummary` rides the auth wires without being one itself.
28
+ const ONDO_AUTH_FANOUT = [
29
+ ...Object.keys(ONDO_AUTH_CHANNEL),
30
+ 'accountSummary',
31
+ ];
26
32
  const isAuthChannel = (channel) => channel in ONDO_AUTH_CHANNEL;
27
33
  /**
28
34
  * Ondo realtime WS provider (extends {@link WsProviderBase}): subscribes to
@@ -63,9 +69,11 @@ export class OndoWsProvider extends WsProviderBase {
63
69
  this.tokenStore = new OndoTokenStore(options.storage ?? localStorageAdapter, this.apiUrl);
64
70
  this.client = client;
65
71
  this.registry = client && getMarketRegistry(client, providerKey);
66
- // The venue's login lives and dies with the connection.
72
+ // The venue's login lives and dies with the connection, so a drop must
73
+ // forget both the in-flight login and the address it bound.
67
74
  this.rws.on('close', () => {
68
75
  this.loginPromise = undefined;
76
+ this.accountAddress = undefined;
69
77
  });
70
78
  }
71
79
  async subscribeQuote(params, onQuote) {
@@ -105,26 +113,35 @@ export class OndoWsProvider extends WsProviderBase {
105
113
  }
106
114
  const wireSubs = this.resolveChannel(sub);
107
115
  const needsLogin = isAuthChannel(sub.channel) || sub.channel === 'accountSummary';
116
+ let boundHere = false;
108
117
  if (needsLogin) {
109
- // One login per connection means one authenticated address.
110
118
  const address = sub.address.toLowerCase();
111
- if (this.accountAddress !== undefined &&
112
- this.accountAddress !== address) {
113
- throw new Error(`Ondo WS supports one authenticated address per connection; already bound to ${this.accountAddress}, cannot subscribe for ${address}.`);
114
- }
115
- this.accountAddress = address;
116
- // Account frames carry venue market symbols; the registry supplies the
117
- // market identity the mapped orders/fills/positions embed.
118
- await this.registry?.sync();
119
+ boundHere = this.accountAddress !== address;
120
+ this.bindAddress(address);
119
121
  }
120
- if (sub.channel === 'accountSummary') {
121
- await this.seedAccountSummary(sub.address);
122
+ try {
123
+ if (needsLogin) {
124
+ // Account frames carry venue market symbols; the registry supplies the
125
+ // market identity the mapped orders/fills/positions embed.
126
+ await this.registry?.sync();
127
+ }
128
+ if (sub.channel === 'accountSummary') {
129
+ await this.seedAccountSummary(sub.address);
130
+ }
131
+ // Authenticated wire subs are shared and ref-counted; public ones are 1:1.
132
+ for (const [key, state] of wireSubs) {
133
+ await this.acquireWire(key, state, needsLogin);
134
+ }
135
+ await this.rws.ready();
122
136
  }
123
- // Authenticated wire subs are shared and ref-counted; public ones are 1:1.
124
- for (const [key, state] of wireSubs) {
125
- await this.acquireWire(key, state, needsLogin);
137
+ catch (err) {
138
+ // Login/seed failed before the binding took hold on the wire: release a
139
+ // binding this call newly reserved so a later subscribe can rebind.
140
+ if (boundHere) {
141
+ this.accountAddress = undefined;
142
+ }
143
+ throw err;
126
144
  }
127
- await this.rws.ready();
128
145
  return () => {
129
146
  if (sub.channel === 'accountSummary') {
130
147
  this.accountSummary = undefined;
@@ -134,6 +151,48 @@ export class OndoWsProvider extends WsProviderBase {
134
151
  }
135
152
  };
136
153
  }
154
+ /**
155
+ * Reserve the connection's single authenticated slot for `address`. A prior
156
+ * binding whose channels have all been released — still lingering in the
157
+ * base teardown window — is reclaimed (cycling the connection) before the
158
+ * new one takes it; a binding that another address still holds live throws.
159
+ */
160
+ bindAddress(address) {
161
+ if (this.accountAddress === address) {
162
+ return;
163
+ }
164
+ if (this.accountAddress !== undefined && !this.releaseBindingIfIdle()) {
165
+ throw new Error(`Ondo WS supports one authenticated address per connection; already bound to ${this.accountAddress}, cannot subscribe for ${address}.`);
166
+ }
167
+ this.accountAddress = address;
168
+ }
169
+ /**
170
+ * Force-tear-down the bound address's authenticated channels when every one
171
+ * is idle, which cycles the connection via {@link releaseBinding}. Returns
172
+ * false — leaving the binding intact — while any is still live.
173
+ */
174
+ releaseBindingIfIdle() {
175
+ const bound = this.accountAddress;
176
+ if (bound === undefined) {
177
+ return true;
178
+ }
179
+ for (const channel of ONDO_AUTH_FANOUT) {
180
+ if (!this.closeChannelIfIdle(`${channel}:${bound}`)) {
181
+ return false;
182
+ }
183
+ }
184
+ return true;
185
+ }
186
+ /**
187
+ * Forget the authenticated binding and cycle the connection. The venue
188
+ * permits one login per socket, so a later subscribe for a different address
189
+ * must authenticate on a fresh connection rather than re-login on this one.
190
+ */
191
+ releaseBinding() {
192
+ this.accountAddress = undefined;
193
+ this.loginPromise = undefined;
194
+ this.rws.reconnect();
195
+ }
137
196
  /** Register a wire sub, ref-counting the shared authenticated channels. */
138
197
  async acquireWire(key, state, shared) {
139
198
  if (!shared) {
@@ -165,9 +224,17 @@ export class OndoWsProvider extends WsProviderBase {
165
224
  }
166
225
  this.unregisterSub(key);
167
226
  this.rws.send(JSON.stringify({ op: 'unsubscribe', ...state.frame }));
227
+ // Last authenticated wire gone: forget the binding and cycle the socket so
228
+ // the next address logs in on a fresh connection.
229
+ if (shared && this.authWireRefs.size === 0) {
230
+ this.releaseBinding();
231
+ }
168
232
  }
169
233
  async sendSubscribe(state) {
170
234
  if (state.needsAuth && state.address !== undefined) {
235
+ // Re-assert the binding: a replay after a reconnect (which cleared it on
236
+ // close) must restore the address account frames emit under.
237
+ this.accountAddress = state.address.toLowerCase();
171
238
  await this.ensureLogin(state.address);
172
239
  }
173
240
  this.rws.send(JSON.stringify({ op: 'subscribe', ...state.frame }));
@@ -176,6 +243,7 @@ export class OndoWsProvider extends WsProviderBase {
176
243
  this.contexts = {};
177
244
  this.pendingFunding.clear();
178
245
  this.loginPromise = undefined;
246
+ this.accountAddress = undefined;
179
247
  }
180
248
  /** Wire subs for `sub`, keyed uniquely for the base's replay registry. */
181
249
  resolveChannel(sub) {
@@ -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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"}
@@ -63,6 +63,25 @@ export declare class OndoWsProvider extends WsProviderBase<SubState> {
63
63
  subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
64
64
  protected toKey(sub: Subscription): string;
65
65
  protected openChannel(sub: Subscription): Promise<() => void>;
66
+ /**
67
+ * Reserve the connection's single authenticated slot for `address`. A prior
68
+ * binding whose channels have all been released — still lingering in the
69
+ * base teardown window — is reclaimed (cycling the connection) before the
70
+ * new one takes it; a binding that another address still holds live throws.
71
+ */
72
+ private bindAddress;
73
+ /**
74
+ * Force-tear-down the bound address's authenticated channels when every one
75
+ * is idle, which cycles the connection via {@link releaseBinding}. Returns
76
+ * false — leaving the binding intact — while any is still live.
77
+ */
78
+ private releaseBindingIfIdle;
79
+ /**
80
+ * Forget the authenticated binding and cycle the connection. The venue
81
+ * permits one login per socket, so a later subscribe for a different address
82
+ * must authenticate on a fresh connection rather than re-login on this one.
83
+ */
84
+ private releaseBinding;
66
85
  /** Register a wire sub, ref-counting the shared authenticated channels. */
67
86
  private acquireWire;
68
87
  /** Mirror of {@link acquireWire}: drop the wire sub on its last release. */
@@ -1 +1 @@
1
- {"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,KAAK,cAAc,EAEnB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAwDnC,UAAU,QAAQ;IAChB,yEAAyE;IACzE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAEzD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAET;IAEb,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAoC;IACpD,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAGnB;IAEH,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAA2B;gBAG7C,KAAK,GAAE,MAA4B,EACnC,WAAW,SAAoB,EAC/B,OAAO,GAAE,qBAA0B,EACnC,MAAM,CAAC,EAAE,cAAc;IAmBnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAkBtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;cAqB1B,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgDnE,2EAA2E;YAC7D,WAAW;IAsBzB,4EAA4E;IAC5E,OAAO,CAAC,WAAW;cAaH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAO1C,OAAO,IAAI,IAAI;IAMlC,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAyGtB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,UAAU;IAMlB;;;;;OAKG;YACW,kBAAkB;IAmBhC,8EAA8E;YAChE,4BAA4B;IAiB1C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAkB1B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA+C1C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAgBpB,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAGpB;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CA2BxB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GACxB,UAAU,qBAAqB,KAAG,iBAEmB,CAAA"}
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": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Ondo Perps provider plugin for @lifi/perps-sdk",
5
5
  "homepage": "https://github.com/lifinance/perps-sdk",
6
6
  "bugs": {
@@ -43,10 +43,10 @@
43
43
  "dependencies": {
44
44
  "big.js": "^7.0.1",
45
45
  "viem": "^2.48.8",
46
- "@lifi/perps-types": "^2.0.0"
46
+ "@lifi/perps-types": "^2.0.1"
47
47
  },
48
48
  "peerDependencies": {
49
- "@lifi/perps-sdk": "^3.0.0"
49
+ "@lifi/perps-sdk": "^3.1.1"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
@@ -70,6 +70,13 @@ const ONDO_AUTH_CHANNEL = {
70
70
 
71
71
  type AuthChannel = keyof typeof ONDO_AUTH_CHANNEL
72
72
 
73
+ // Fan-out channels that reserve the connection's single authenticated-address
74
+ // binding; `accountSummary` rides the auth wires without being one itself.
75
+ const ONDO_AUTH_FANOUT: readonly string[] = [
76
+ ...Object.keys(ONDO_AUTH_CHANNEL),
77
+ 'accountSummary',
78
+ ]
79
+
73
80
  const isAuthChannel = (
74
81
  channel: Subscription['channel']
75
82
  ): channel is AuthChannel => channel in ONDO_AUTH_CHANNEL
@@ -157,9 +164,11 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
157
164
  )
158
165
  this.client = client
159
166
  this.registry = client && getMarketRegistry(client, providerKey)
160
- // The venue's login lives and dies with the connection.
167
+ // The venue's login lives and dies with the connection, so a drop must
168
+ // forget both the in-flight login and the address it bound.
161
169
  this.rws.on('close', () => {
162
170
  this.loginPromise = undefined
171
+ this.accountAddress = undefined
163
172
  })
164
173
  }
165
174
 
@@ -217,31 +226,35 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
217
226
  const needsLogin =
218
227
  isAuthChannel(sub.channel) || sub.channel === 'accountSummary'
219
228
 
229
+ let boundHere = false
220
230
  if (needsLogin) {
221
- // One login per connection means one authenticated address.
222
231
  const address = (sub as { address: Address }).address.toLowerCase()
223
- if (
224
- this.accountAddress !== undefined &&
225
- this.accountAddress !== address
226
- ) {
227
- throw new Error(
228
- `Ondo WS supports one authenticated address per connection; already bound to ${this.accountAddress}, cannot subscribe for ${address}.`
229
- )
230
- }
231
- this.accountAddress = address
232
- // Account frames carry venue market symbols; the registry supplies the
233
- // market identity the mapped orders/fills/positions embed.
234
- await this.registry?.sync()
232
+ boundHere = this.accountAddress !== address
233
+ this.bindAddress(address)
235
234
  }
236
235
 
237
- if (sub.channel === 'accountSummary') {
238
- await this.seedAccountSummary((sub as { address: Address }).address)
239
- }
240
- // Authenticated wire subs are shared and ref-counted; public ones are 1:1.
241
- for (const [key, state] of wireSubs) {
242
- await this.acquireWire(key, state, needsLogin)
236
+ try {
237
+ if (needsLogin) {
238
+ // Account frames carry venue market symbols; the registry supplies the
239
+ // market identity the mapped orders/fills/positions embed.
240
+ await this.registry?.sync()
241
+ }
242
+ if (sub.channel === 'accountSummary') {
243
+ await this.seedAccountSummary((sub as { address: Address }).address)
244
+ }
245
+ // Authenticated wire subs are shared and ref-counted; public ones are 1:1.
246
+ for (const [key, state] of wireSubs) {
247
+ await this.acquireWire(key, state, needsLogin)
248
+ }
249
+ await this.rws.ready()
250
+ } catch (err) {
251
+ // Login/seed failed before the binding took hold on the wire: release a
252
+ // binding this call newly reserved so a later subscribe can rebind.
253
+ if (boundHere) {
254
+ this.accountAddress = undefined
255
+ }
256
+ throw err
243
257
  }
244
- await this.rws.ready()
245
258
 
246
259
  return () => {
247
260
  if (sub.channel === 'accountSummary') {
@@ -253,6 +266,53 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
253
266
  }
254
267
  }
255
268
 
269
+ /**
270
+ * Reserve the connection's single authenticated slot for `address`. A prior
271
+ * binding whose channels have all been released — still lingering in the
272
+ * base teardown window — is reclaimed (cycling the connection) before the
273
+ * new one takes it; a binding that another address still holds live throws.
274
+ */
275
+ private bindAddress(address: string): void {
276
+ if (this.accountAddress === address) {
277
+ return
278
+ }
279
+ if (this.accountAddress !== undefined && !this.releaseBindingIfIdle()) {
280
+ throw new Error(
281
+ `Ondo WS supports one authenticated address per connection; already bound to ${this.accountAddress}, cannot subscribe for ${address}.`
282
+ )
283
+ }
284
+ this.accountAddress = address
285
+ }
286
+
287
+ /**
288
+ * Force-tear-down the bound address's authenticated channels when every one
289
+ * is idle, which cycles the connection via {@link releaseBinding}. Returns
290
+ * false — leaving the binding intact — while any is still live.
291
+ */
292
+ private releaseBindingIfIdle(): boolean {
293
+ const bound = this.accountAddress
294
+ if (bound === undefined) {
295
+ return true
296
+ }
297
+ for (const channel of ONDO_AUTH_FANOUT) {
298
+ if (!this.closeChannelIfIdle(`${channel}:${bound}`)) {
299
+ return false
300
+ }
301
+ }
302
+ return true
303
+ }
304
+
305
+ /**
306
+ * Forget the authenticated binding and cycle the connection. The venue
307
+ * permits one login per socket, so a later subscribe for a different address
308
+ * must authenticate on a fresh connection rather than re-login on this one.
309
+ */
310
+ private releaseBinding(): void {
311
+ this.accountAddress = undefined
312
+ this.loginPromise = undefined
313
+ this.rws.reconnect()
314
+ }
315
+
256
316
  /** Register a wire sub, ref-counting the shared authenticated channels. */
257
317
  private async acquireWire(
258
318
  key: string,
@@ -288,10 +348,18 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
288
348
  }
289
349
  this.unregisterSub(key)
290
350
  this.rws.send(JSON.stringify({ op: 'unsubscribe', ...state.frame }))
351
+ // Last authenticated wire gone: forget the binding and cycle the socket so
352
+ // the next address logs in on a fresh connection.
353
+ if (shared && this.authWireRefs.size === 0) {
354
+ this.releaseBinding()
355
+ }
291
356
  }
292
357
 
293
358
  protected async sendSubscribe(state: SubState): Promise<void> {
294
359
  if (state.needsAuth && state.address !== undefined) {
360
+ // Re-assert the binding: a replay after a reconnect (which cleared it on
361
+ // close) must restore the address account frames emit under.
362
+ this.accountAddress = state.address.toLowerCase()
295
363
  await this.ensureLogin(state.address)
296
364
  }
297
365
  this.rws.send(JSON.stringify({ op: 'subscribe', ...state.frame }))
@@ -301,6 +369,7 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
301
369
  this.contexts = {}
302
370
  this.pendingFunding.clear()
303
371
  this.loginPromise = undefined
372
+ this.accountAddress = undefined
304
373
  }
305
374
 
306
375
  /** Wire subs for `sub`, keyed uniquely for the base's replay registry. */