@lifi/perps-sdk-provider-ondo 1.0.1 → 2.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.
- package/README.md +43 -28
- package/dist/cjs/websocket/OndoWsProvider.d.ts +3 -0
- package/dist/cjs/websocket/OndoWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/OndoWsProvider.js +55 -11
- package/dist/cjs/websocket/OndoWsProvider.js.map +1 -1
- package/dist/esm/websocket/OndoWsProvider.d.ts +19 -0
- package/dist/esm/websocket/OndoWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/OndoWsProvider.js +84 -16
- package/dist/esm/websocket/OndoWsProvider.js.map +1 -1
- package/dist/types/websocket/OndoWsProvider.d.ts +19 -0
- package/dist/types/websocket/OndoWsProvider.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/websocket/OndoWsProvider.ts +90 -21
package/README.md
CHANGED
|
@@ -1,38 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](/LICENSE)
|
|
4
|
+
[](https://www.npmjs.com/package/@lifi/perps-sdk-provider-ondo)
|
|
5
|
+
[](https://www.npmjs.com/package/@lifi/perps-sdk-provider-ondo)
|
|
6
|
+
[](https://twitter.com/lifiprotocol)
|
|
4
7
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
|
|
82
|
-
|
|
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
|
-
|
|
85
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"OndoWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/OndoWsProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
112
|
-
|
|
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
|
-
|
|
121
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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;
|
|
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": "
|
|
3
|
+
"version": "2.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": {
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"big.js": "^7.0.1",
|
|
45
45
|
"viem": "^2.48.8",
|
|
46
|
-
"@lifi/perps-types": "^
|
|
46
|
+
"@lifi/perps-types": "^3.0.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@lifi/perps-sdk": "^
|
|
49
|
+
"@lifi/perps-sdk": "^4.0.0"
|
|
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
|
-
|
|
224
|
-
|
|
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
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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. */
|