@lifi/perps-sdk-provider-ondo 4.0.0 → 5.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 +1 -1
- package/dist/cjs/auth/completeSiweLogin.d.ts +1 -5
- package/dist/cjs/auth/completeSiweLogin.d.ts.map +1 -1
- package/dist/cjs/auth/completeSiweLogin.js +1 -2
- package/dist/cjs/auth/completeSiweLogin.js.map +1 -1
- package/dist/cjs/auth/signActions.d.ts.map +1 -1
- package/dist/cjs/auth/signActions.js +5 -4
- package/dist/cjs/auth/signActions.js.map +1 -1
- package/dist/esm/auth/completeSiweLogin.d.ts +4 -9
- package/dist/esm/auth/completeSiweLogin.d.ts.map +1 -1
- package/dist/esm/auth/completeSiweLogin.js +4 -6
- package/dist/esm/auth/completeSiweLogin.js.map +1 -1
- package/dist/esm/auth/signActions.d.ts +3 -2
- package/dist/esm/auth/signActions.d.ts.map +1 -1
- package/dist/esm/auth/signActions.js +8 -6
- package/dist/esm/auth/signActions.js.map +1 -1
- package/dist/types/auth/completeSiweLogin.d.ts +4 -9
- package/dist/types/auth/completeSiweLogin.d.ts.map +1 -1
- package/dist/types/auth/signActions.d.ts +3 -2
- package/dist/types/auth/signActions.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/auth/completeSiweLogin.ts +5 -8
- package/src/auth/signActions.ts +8 -10
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
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.
|
|
13
13
|
|
|
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).
|
|
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). None of the wallet's login signature, the JWT, or the API key secret transits the LI.FI backend; the JWT and key are persisted browser-side through the storage adapter.
|
|
15
15
|
|
|
16
16
|
## Installation
|
|
17
17
|
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import type { PerpsClientSigner } from '@lifi/perps-sdk';
|
|
2
|
-
import type { Hex } from 'viem';
|
|
3
2
|
import type { OndoAuthToken } from '../types/auth.js';
|
|
4
3
|
import type { OndoApiClient } from '../utils/apiClient.js';
|
|
5
4
|
export interface OndoSiweChallenge {
|
|
6
5
|
id: string;
|
|
7
6
|
message: string;
|
|
8
7
|
}
|
|
9
|
-
export declare function completeSiweLogin(client: OndoApiClient, signer: PerpsClientSigner, challenge: OndoSiweChallenge): Promise<
|
|
10
|
-
token: OndoAuthToken;
|
|
11
|
-
signature: Hex;
|
|
12
|
-
}>;
|
|
8
|
+
export declare function completeSiweLogin(client: OndoApiClient, signer: PerpsClientSigner, challenge: OndoSiweChallenge): Promise<OndoAuthToken>;
|
|
13
9
|
//# sourceMappingURL=completeSiweLogin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeSiweLogin.d.ts","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"completeSiweLogin.d.ts","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAO1D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IAEV,OAAO,EAAE,MAAM,CAAA;CAChB;AAUD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAYxB"}
|
|
@@ -6,10 +6,9 @@ async function completeSiweLogin(client, signer, challenge) {
|
|
|
6
6
|
account: signer.account,
|
|
7
7
|
message: challenge.message,
|
|
8
8
|
});
|
|
9
|
-
|
|
9
|
+
return client.post('/v1/auth/erc-4361/login/complete_challenge', {
|
|
10
10
|
id: challenge.id,
|
|
11
11
|
signature,
|
|
12
12
|
});
|
|
13
|
-
return { token, signature };
|
|
14
13
|
}
|
|
15
14
|
//# sourceMappingURL=completeSiweLogin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeSiweLogin.js","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"completeSiweLogin.js","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":";;AAuBA,8CAgBC;AAhBM,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,MAAyB,EACzB,SAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,IAAI,CAChB,4CAA4C,EAC5C;QACE,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,SAAS;KACV,CACF,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EAIV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGzD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,EAAE,eAAe,CAAA;CAC7B;
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EAIV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGzD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,EAAE,eAAe,CAAA;CAC7B;AA4GD,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmI7B"}
|
|
@@ -57,16 +57,17 @@ async function ondoSignActions(deps, method, steps, address, ctx) {
|
|
|
57
57
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, 'Ondo SIWE login requires the user wallet. Pass `userWallet` when ' +
|
|
58
58
|
'creating the perps client.');
|
|
59
59
|
}
|
|
60
|
-
const signed = [];
|
|
61
60
|
for (const step of steps) {
|
|
62
61
|
if (!isSiweStep(step)) {
|
|
63
62
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Ondo received a non-SIWE step ('${step.action}') under the SIWE signing method.`);
|
|
64
63
|
}
|
|
65
|
-
const
|
|
64
|
+
const token = await (0, completeSiweLogin_js_1.completeSiweLogin)(deps.client, userWallet, {
|
|
65
|
+
id: step.siwe.challengeId,
|
|
66
|
+
message: step.siwe.message,
|
|
67
|
+
});
|
|
66
68
|
await deps.tokenStore.set(address, token);
|
|
67
|
-
signed.push({ action: step.action, siwe: step.siwe, signature });
|
|
68
69
|
}
|
|
69
|
-
return
|
|
70
|
+
return [];
|
|
70
71
|
}
|
|
71
72
|
case perps_types_1.SigningMethod.HMAC: {
|
|
72
73
|
const apiKey = await ensureApiKey(deps, address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { PerpsClientSigner } from '@lifi/perps-sdk';
|
|
2
|
-
import type { Hex } from 'viem';
|
|
3
2
|
import type { OndoAuthToken } from '../types/auth.js';
|
|
4
3
|
import type { OndoApiClient } from '../utils/apiClient.js';
|
|
5
4
|
/**
|
|
@@ -14,15 +13,11 @@ export interface OndoSiweChallenge {
|
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* Sign a SIWE challenge with the user's wallet and exchange it for an Ondo
|
|
17
|
-
* session token, directly against Ondo — the
|
|
18
|
-
* LI.FI backend. viem's `signMessage` performs the
|
|
19
|
-
* encoding Ondo verifies against.
|
|
20
|
-
* token so callers can hand it back as a `SiweSignedActionStep`.
|
|
16
|
+
* session token, directly against Ondo — neither the signature nor the
|
|
17
|
+
* returned JWT transits the LI.FI backend. viem's `signMessage` performs the
|
|
18
|
+
* EIP-191 `personal_sign` encoding Ondo verifies against.
|
|
21
19
|
*
|
|
22
20
|
* @public
|
|
23
21
|
*/
|
|
24
|
-
export declare function completeSiweLogin(client: OndoApiClient, signer: PerpsClientSigner, challenge: OndoSiweChallenge): Promise<
|
|
25
|
-
token: OndoAuthToken;
|
|
26
|
-
signature: Hex;
|
|
27
|
-
}>;
|
|
22
|
+
export declare function completeSiweLogin(client: OndoApiClient, signer: PerpsClientSigner, challenge: OndoSiweChallenge): Promise<OndoAuthToken>;
|
|
28
23
|
//# sourceMappingURL=completeSiweLogin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeSiweLogin.d.ts","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"completeSiweLogin.d.ts","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAYxB"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Sign a SIWE challenge with the user's wallet and exchange it for an Ondo
|
|
3
|
-
* session token, directly against Ondo — the
|
|
4
|
-
* LI.FI backend. viem's `signMessage` performs the
|
|
5
|
-
* encoding Ondo verifies against.
|
|
6
|
-
* token so callers can hand it back as a `SiweSignedActionStep`.
|
|
3
|
+
* session token, directly against Ondo — neither the signature nor the
|
|
4
|
+
* returned JWT transits the LI.FI backend. viem's `signMessage` performs the
|
|
5
|
+
* EIP-191 `personal_sign` encoding Ondo verifies against.
|
|
7
6
|
*
|
|
8
7
|
* @public
|
|
9
8
|
*/
|
|
@@ -12,10 +11,9 @@ export async function completeSiweLogin(client, signer, challenge) {
|
|
|
12
11
|
account: signer.account,
|
|
13
12
|
message: challenge.message,
|
|
14
13
|
});
|
|
15
|
-
|
|
14
|
+
return client.post('/v1/auth/erc-4361/login/complete_challenge', {
|
|
16
15
|
id: challenge.id,
|
|
17
16
|
signature,
|
|
18
17
|
});
|
|
19
|
-
return { token, signature };
|
|
20
18
|
}
|
|
21
19
|
//# sourceMappingURL=completeSiweLogin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeSiweLogin.js","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"completeSiweLogin.js","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,MAAyB,EACzB,SAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,IAAI,CAChB,4CAA4C,EAC5C;QACE,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,SAAS;KACV,CACF,CAAA;AACH,CAAC"}
|
|
@@ -15,8 +15,9 @@ export interface OndoSignActionsDeps {
|
|
|
15
15
|
* Ondo's `signActions` arms.
|
|
16
16
|
*
|
|
17
17
|
* `SIWE` signs the backend-built ERC-4361 challenge with the user's wallet and
|
|
18
|
-
* completes the login directly against Ondo
|
|
19
|
-
*
|
|
18
|
+
* completes the login directly against Ondo. The session JWT is persisted in
|
|
19
|
+
* the token store and no signed step is returned, so neither the JWT nor the
|
|
20
|
+
* wallet signature transits the LI.FI backend.
|
|
20
21
|
*
|
|
21
22
|
* `SESSION` executes client-only setup steps directly against the venue with
|
|
22
23
|
* the stored session token. A backend-authored request-bearing step is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EAIV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAwFD
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EAIV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAwFD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmI7B"}
|
|
@@ -70,8 +70,9 @@ async function executeSessionRequest(deps, address, request) {
|
|
|
70
70
|
* Ondo's `signActions` arms.
|
|
71
71
|
*
|
|
72
72
|
* `SIWE` signs the backend-built ERC-4361 challenge with the user's wallet and
|
|
73
|
-
* completes the login directly against Ondo
|
|
74
|
-
*
|
|
73
|
+
* completes the login directly against Ondo. The session JWT is persisted in
|
|
74
|
+
* the token store and no signed step is returned, so neither the JWT nor the
|
|
75
|
+
* wallet signature transits the LI.FI backend.
|
|
75
76
|
*
|
|
76
77
|
* `SESSION` executes client-only setup steps directly against the venue with
|
|
77
78
|
* the stored session token. A backend-authored request-bearing step is
|
|
@@ -93,16 +94,17 @@ export async function ondoSignActions(deps, method, steps, address, ctx) {
|
|
|
93
94
|
throw new PerpsError(PerpsErrorCode.SDKError, 'Ondo SIWE login requires the user wallet. Pass `userWallet` when ' +
|
|
94
95
|
'creating the perps client.');
|
|
95
96
|
}
|
|
96
|
-
const signed = [];
|
|
97
97
|
for (const step of steps) {
|
|
98
98
|
if (!isSiweStep(step)) {
|
|
99
99
|
throw new PerpsError(PerpsErrorCode.SDKError, `Ondo received a non-SIWE step ('${step.action}') under the SIWE signing method.`);
|
|
100
100
|
}
|
|
101
|
-
const
|
|
101
|
+
const token = await completeSiweLogin(deps.client, userWallet, {
|
|
102
|
+
id: step.siwe.challengeId,
|
|
103
|
+
message: step.siwe.message,
|
|
104
|
+
});
|
|
102
105
|
await deps.tokenStore.set(address, token);
|
|
103
|
-
signed.push({ action: step.action, siwe: step.siwe, signature });
|
|
104
106
|
}
|
|
105
|
-
return
|
|
107
|
+
return [];
|
|
106
108
|
}
|
|
107
109
|
case SigningMethod.HMAC: {
|
|
108
110
|
const apiKey = await ensureApiKey(deps, address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { PerpsClientSigner } from '@lifi/perps-sdk';
|
|
2
|
-
import type { Hex } from 'viem';
|
|
3
2
|
import type { OndoAuthToken } from '../types/auth.js';
|
|
4
3
|
import type { OndoApiClient } from '../utils/apiClient.js';
|
|
5
4
|
/**
|
|
@@ -14,15 +13,11 @@ export interface OndoSiweChallenge {
|
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* Sign a SIWE challenge with the user's wallet and exchange it for an Ondo
|
|
17
|
-
* session token, directly against Ondo — the
|
|
18
|
-
* LI.FI backend. viem's `signMessage` performs the
|
|
19
|
-
* encoding Ondo verifies against.
|
|
20
|
-
* token so callers can hand it back as a `SiweSignedActionStep`.
|
|
16
|
+
* session token, directly against Ondo — neither the signature nor the
|
|
17
|
+
* returned JWT transits the LI.FI backend. viem's `signMessage` performs the
|
|
18
|
+
* EIP-191 `personal_sign` encoding Ondo verifies against.
|
|
21
19
|
*
|
|
22
20
|
* @public
|
|
23
21
|
*/
|
|
24
|
-
export declare function completeSiweLogin(client: OndoApiClient, signer: PerpsClientSigner, challenge: OndoSiweChallenge): Promise<
|
|
25
|
-
token: OndoAuthToken;
|
|
26
|
-
signature: Hex;
|
|
27
|
-
}>;
|
|
22
|
+
export declare function completeSiweLogin(client: OndoApiClient, signer: PerpsClientSigner, challenge: OndoSiweChallenge): Promise<OndoAuthToken>;
|
|
28
23
|
//# sourceMappingURL=completeSiweLogin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeSiweLogin.d.ts","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"completeSiweLogin.d.ts","sourceRoot":"","sources":["../../../src/auth/completeSiweLogin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAYxB"}
|
|
@@ -15,8 +15,9 @@ export interface OndoSignActionsDeps {
|
|
|
15
15
|
* Ondo's `signActions` arms.
|
|
16
16
|
*
|
|
17
17
|
* `SIWE` signs the backend-built ERC-4361 challenge with the user's wallet and
|
|
18
|
-
* completes the login directly against Ondo
|
|
19
|
-
*
|
|
18
|
+
* completes the login directly against Ondo. The session JWT is persisted in
|
|
19
|
+
* the token store and no signed step is returned, so neither the JWT nor the
|
|
20
|
+
* wallet signature transits the LI.FI backend.
|
|
20
21
|
*
|
|
21
22
|
* `SESSION` executes client-only setup steps directly against the venue with
|
|
22
23
|
* the stored session token. A backend-authored request-bearing step is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EAIV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAwFD
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/auth/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EACV,UAAU,EAIV,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAwFD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmI7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-ondo",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.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": "^5.0.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@lifi/perps-sdk": "^6.
|
|
49
|
+
"@lifi/perps-sdk": "^6.2.1"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { PerpsClientSigner } from '@lifi/perps-sdk'
|
|
2
|
-
import type { Hex } from 'viem'
|
|
3
2
|
import type { OndoAuthToken } from '../types/auth.js'
|
|
4
3
|
import type { OndoApiClient } from '../utils/apiClient.js'
|
|
5
4
|
|
|
@@ -16,10 +15,9 @@ export interface OndoSiweChallenge {
|
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
17
|
* Sign a SIWE challenge with the user's wallet and exchange it for an Ondo
|
|
19
|
-
* session token, directly against Ondo — the
|
|
20
|
-
* LI.FI backend. viem's `signMessage` performs the
|
|
21
|
-
* encoding Ondo verifies against.
|
|
22
|
-
* token so callers can hand it back as a `SiweSignedActionStep`.
|
|
18
|
+
* session token, directly against Ondo — neither the signature nor the
|
|
19
|
+
* returned JWT transits the LI.FI backend. viem's `signMessage` performs the
|
|
20
|
+
* EIP-191 `personal_sign` encoding Ondo verifies against.
|
|
23
21
|
*
|
|
24
22
|
* @public
|
|
25
23
|
*/
|
|
@@ -27,17 +25,16 @@ export async function completeSiweLogin(
|
|
|
27
25
|
client: OndoApiClient,
|
|
28
26
|
signer: PerpsClientSigner,
|
|
29
27
|
challenge: OndoSiweChallenge
|
|
30
|
-
): Promise<
|
|
28
|
+
): Promise<OndoAuthToken> {
|
|
31
29
|
const signature = await signer.signMessage({
|
|
32
30
|
account: signer.account,
|
|
33
31
|
message: challenge.message,
|
|
34
32
|
})
|
|
35
|
-
|
|
33
|
+
return client.post<OndoAuthToken>(
|
|
36
34
|
'/v1/auth/erc-4361/login/complete_challenge',
|
|
37
35
|
{
|
|
38
36
|
id: challenge.id,
|
|
39
37
|
signature,
|
|
40
38
|
}
|
|
41
39
|
)
|
|
42
|
-
return { token, signature }
|
|
43
40
|
}
|
package/src/auth/signActions.ts
CHANGED
|
@@ -128,8 +128,9 @@ async function executeSessionRequest(
|
|
|
128
128
|
* Ondo's `signActions` arms.
|
|
129
129
|
*
|
|
130
130
|
* `SIWE` signs the backend-built ERC-4361 challenge with the user's wallet and
|
|
131
|
-
* completes the login directly against Ondo
|
|
132
|
-
*
|
|
131
|
+
* completes the login directly against Ondo. The session JWT is persisted in
|
|
132
|
+
* the token store and no signed step is returned, so neither the JWT nor the
|
|
133
|
+
* wallet signature transits the LI.FI backend.
|
|
133
134
|
*
|
|
134
135
|
* `SESSION` executes client-only setup steps directly against the venue with
|
|
135
136
|
* the stored session token. A backend-authored request-bearing step is
|
|
@@ -160,7 +161,6 @@ export async function ondoSignActions(
|
|
|
160
161
|
'creating the perps client.'
|
|
161
162
|
)
|
|
162
163
|
}
|
|
163
|
-
const signed: SignedActionStep[] = []
|
|
164
164
|
for (const step of steps) {
|
|
165
165
|
if (!isSiweStep(step)) {
|
|
166
166
|
throw new PerpsError(
|
|
@@ -168,15 +168,13 @@ export async function ondoSignActions(
|
|
|
168
168
|
`Ondo received a non-SIWE step ('${step.action}') under the SIWE signing method.`
|
|
169
169
|
)
|
|
170
170
|
}
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
)
|
|
171
|
+
const token = await completeSiweLogin(deps.client, userWallet, {
|
|
172
|
+
id: step.siwe.challengeId,
|
|
173
|
+
message: step.siwe.message,
|
|
174
|
+
})
|
|
176
175
|
await deps.tokenStore.set(address, token)
|
|
177
|
-
signed.push({ action: step.action, siwe: step.siwe, signature })
|
|
178
176
|
}
|
|
179
|
-
return
|
|
177
|
+
return []
|
|
180
178
|
}
|
|
181
179
|
|
|
182
180
|
case SigningMethod.HMAC: {
|