@lifi/perps-sdk-provider-ondo 2.1.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/OndoProvider.d.ts.map +1 -1
  2. package/dist/cjs/OndoProvider.js +33 -3
  3. package/dist/cjs/OndoProvider.js.map +1 -1
  4. package/dist/cjs/accountConfig.d.ts.map +1 -1
  5. package/dist/cjs/accountConfig.js +6 -0
  6. package/dist/cjs/accountConfig.js.map +1 -1
  7. package/dist/cjs/auth/signActions.d.ts.map +1 -1
  8. package/dist/cjs/auth/signActions.js +14 -0
  9. package/dist/cjs/auth/signActions.js.map +1 -1
  10. package/dist/cjs/utils/depositAddress.d.ts +25 -0
  11. package/dist/cjs/utils/depositAddress.d.ts.map +1 -0
  12. package/dist/cjs/utils/depositAddress.js +84 -0
  13. package/dist/cjs/utils/depositAddress.js.map +1 -0
  14. package/dist/cjs/utils/index.d.ts +1 -0
  15. package/dist/cjs/utils/index.d.ts.map +1 -1
  16. package/dist/cjs/utils/index.js +6 -1
  17. package/dist/cjs/utils/index.js.map +1 -1
  18. package/dist/esm/OndoProvider.d.ts.map +1 -1
  19. package/dist/esm/OndoProvider.js +38 -5
  20. package/dist/esm/OndoProvider.js.map +1 -1
  21. package/dist/esm/accountConfig.d.ts.map +1 -1
  22. package/dist/esm/accountConfig.js +8 -1
  23. package/dist/esm/accountConfig.js.map +1 -1
  24. package/dist/esm/auth/signActions.d.ts.map +1 -1
  25. package/dist/esm/auth/signActions.js +16 -0
  26. package/dist/esm/auth/signActions.js.map +1 -1
  27. package/dist/esm/utils/depositAddress.d.ts +39 -0
  28. package/dist/esm/utils/depositAddress.d.ts.map +1 -0
  29. package/dist/esm/utils/depositAddress.js +90 -0
  30. package/dist/esm/utils/depositAddress.js.map +1 -0
  31. package/dist/esm/utils/index.d.ts +1 -0
  32. package/dist/esm/utils/index.d.ts.map +1 -1
  33. package/dist/esm/utils/index.js +1 -0
  34. package/dist/esm/utils/index.js.map +1 -1
  35. package/dist/types/OndoProvider.d.ts.map +1 -1
  36. package/dist/types/accountConfig.d.ts.map +1 -1
  37. package/dist/types/auth/signActions.d.ts.map +1 -1
  38. package/dist/types/utils/depositAddress.d.ts +39 -0
  39. package/dist/types/utils/depositAddress.d.ts.map +1 -0
  40. package/dist/types/utils/index.d.ts +1 -0
  41. package/dist/types/utils/index.d.ts.map +1 -1
  42. package/package.json +3 -3
  43. package/src/OndoProvider.ts +71 -23
  44. package/src/accountConfig.ts +10 -1
  45. package/src/auth/signActions.ts +28 -0
  46. package/src/utils/depositAddress.ts +128 -0
  47. package/src/utils/index.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"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"}
@@ -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;AAG9B,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;;;;;;;;;;;;;;;;;;GAkBG;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,CA8G7B"}
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;;;;;;;;;;;;;;;;;;GAkBG;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,CAsI7B"}
@@ -2,6 +2,7 @@ import { PerpsError } from '@lifi/perps-sdk';
2
2
  import { ActionType, PerpsErrorCode, SigningMethod } from '@lifi/perps-types';
3
3
  import { ONDO_API_KEY_NAME, ONDO_API_KEY_SCOPES, ONDO_PRIVACY_VERSION, ONDO_TERMS_VERSION, } from '../constants.js';
4
4
  import { OndoApiError, OndoSessionExpiredError, } from '../utils/apiClient.js';
5
+ import { buildOndoProvisionPayload, listOndoDepositAddress, } from '../utils/depositAddress.js';
5
6
  import { completeSiweLogin } from './completeSiweLogin.js';
6
7
  import { hmacSignRequest } from './hmac.js';
7
8
  import { isOndoApiKey } from './OndoApiKeyStore.js';
@@ -138,6 +139,21 @@ export async function ondoSignActions(deps, method, steps, address, ctx) {
138
139
  throw new PerpsError(PerpsErrorCode.SDKError, `Ondo received a non-session step ('${step.action}') under the session signing method.`);
139
140
  }
140
141
  switch (step.action) {
142
+ case ActionType.CREATE_DEPOSIT_ADDRESS: {
143
+ const token = await deps.tokenStore.get(address);
144
+ if (token === null) {
145
+ throw new OndoSessionExpiredError(`No valid Ondo session token stored for ${address}. Run the SIWE login first.`);
146
+ }
147
+ const account = await deps.client.get('/v1/account', { authToken: token.token });
148
+ const payload = buildOndoProvisionPayload(step.session, typeof account.accountID === 'string' ? account.accountID : '');
149
+ await deps.client.post('/v1/provision_address', payload, {
150
+ authToken: token.token,
151
+ });
152
+ // Re-query to validate that Ondo can read the provisioned address;
153
+ // getAccount performs the authoritative state refresh afterward.
154
+ await listOndoDepositAddress(deps.client, token.token);
155
+ break;
156
+ }
141
157
  case ActionType.ACCEPT_PROVIDER_TERMS: {
142
158
  const token = await deps.tokenStore.get(address);
143
159
  if (token === null) {
@@ -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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"}
@@ -0,0 +1,39 @@
1
+ import { type Address } from 'viem';
2
+ import type { OndoApiClient } from './apiClient.js';
3
+ /** The only deposit policy supported by the Ondo provider. */
4
+ export declare const ONDO_DEPOSIT_POLICY: {
5
+ readonly network: "ethereum";
6
+ readonly symbol: "USDC";
7
+ readonly depositDestination: {
8
+ readonly wallet: "margin";
9
+ };
10
+ };
11
+ /** @internal */
12
+ export type OndoDepositPolicyMarker = {
13
+ network: 'ethereum';
14
+ symbol: 'USDC';
15
+ depositDestination: {
16
+ wallet: 'margin';
17
+ };
18
+ };
19
+ /** @internal */
20
+ export interface OndoDepositAddressRecord {
21
+ address: string;
22
+ coin: string;
23
+ network: string;
24
+ }
25
+ /**
26
+ * Extract the canonical Ethereum USDC address from Ondo's list response.
27
+ * An empty list is a valid, unsatisfied setup state; malformed records are
28
+ * errors so an API/schema failure cannot be mistaken for an absent address.
29
+ */
30
+ export declare const parseOndoDepositAddress: (result: unknown) => Address | null;
31
+ /** Query Ondo's authenticated Ethereum USDC deposit-address list. */
32
+ export declare const listOndoDepositAddress: (client: OndoApiClient, authToken: string) => Promise<Address | null>;
33
+ /**
34
+ * Validate the backend's minimal client-only marker and hydrate the venue
35
+ * request with the authenticated account ID. The marker is validated against
36
+ * the one fixed Ondo policy before any venue write is attempted.
37
+ */
38
+ export declare const buildOndoProvisionPayload: (marker: object, accountID: string) => Record<string, unknown>;
39
+ //# sourceMappingURL=depositAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositAddress.d.ts","sourceRoot":"","sources":["../../../src/utils/depositAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,MAAM,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGnD,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB;;;;;;CAItB,CAAA;AAEV,gBAAgB;AAChB,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAA;CACzC,CAAA;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAsBD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,OAAO,KAAG,OAAO,GAAG,IAoBnE,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,GACjC,QAAQ,aAAa,EACrB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,GAAG,IAAI,CAOtB,CAAA;AAgBH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAoBxB,CAAA"}
@@ -0,0 +1,90 @@
1
+ import { isAddress } from 'viem';
2
+ import { OndoApiError } from './apiClient.js';
3
+ /** The only deposit policy supported by the Ondo provider. */
4
+ export const ONDO_DEPOSIT_POLICY = {
5
+ network: 'ethereum',
6
+ symbol: 'USDC',
7
+ depositDestination: { wallet: 'margin' },
8
+ };
9
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
10
+ const malformed = (message) => new OndoApiError(`Ondo deposit-address response is malformed: ${message}`);
11
+ const entriesFromResult = (result) => {
12
+ if (Array.isArray(result)) {
13
+ return result;
14
+ }
15
+ if (isRecord(result)) {
16
+ for (const key of ['addresses', 'deposit_addresses', 'depositAddresses']) {
17
+ if (Array.isArray(result[key])) {
18
+ return result[key];
19
+ }
20
+ }
21
+ }
22
+ throw malformed('expected an address array');
23
+ };
24
+ /**
25
+ * Extract the canonical Ethereum USDC address from Ondo's list response.
26
+ * An empty list is a valid, unsatisfied setup state; malformed records are
27
+ * errors so an API/schema failure cannot be mistaken for an absent address.
28
+ */
29
+ export const parseOndoDepositAddress = (result) => {
30
+ const entries = entriesFromResult(result);
31
+ for (const entry of entries) {
32
+ if (!isRecord(entry)) {
33
+ throw malformed('address entries must be objects');
34
+ }
35
+ const coin = entry.coin ?? entry.symbol;
36
+ const network = entry.network;
37
+ if (typeof coin !== 'string' || typeof network !== 'string') {
38
+ throw malformed('address entries require coin and network');
39
+ }
40
+ if (coin.toUpperCase() !== 'USDC' || network.toLowerCase() !== 'ethereum') {
41
+ continue;
42
+ }
43
+ if (typeof entry.address !== 'string' || !isAddress(entry.address)) {
44
+ throw malformed('the Ethereum USDC entry has an invalid address');
45
+ }
46
+ return entry.address;
47
+ }
48
+ return null;
49
+ };
50
+ /** Query Ondo's authenticated Ethereum USDC deposit-address list. */
51
+ export const listOndoDepositAddress = async (client, authToken) => parseOndoDepositAddress(await client.post('/v1/wallet/deposit_address/list', { coins: ['USDC'], network: 'ethereum' }, { authToken }));
52
+ const policyCandidate = (marker) => {
53
+ if (!isRecord(marker)) {
54
+ throw malformed('session marker must be an object');
55
+ }
56
+ const candidate = marker.policy;
57
+ if (candidate === undefined) {
58
+ return marker;
59
+ }
60
+ if (!isRecord(candidate)) {
61
+ throw malformed('session policy must be an object');
62
+ }
63
+ return candidate;
64
+ };
65
+ /**
66
+ * Validate the backend's minimal client-only marker and hydrate the venue
67
+ * request with the authenticated account ID. The marker is validated against
68
+ * the one fixed Ondo policy before any venue write is attempted.
69
+ */
70
+ export const buildOndoProvisionPayload = (marker, accountID) => {
71
+ if (typeof accountID !== 'string' || accountID.length === 0) {
72
+ throw malformed('accountID is missing from /v1/account');
73
+ }
74
+ const candidate = policyCandidate(marker);
75
+ const network = candidate.network;
76
+ const symbol = candidate.symbol;
77
+ const destination = candidate.depositDestination ?? candidate.deposit_destination;
78
+ if (network !== 'ethereum' || symbol !== 'USDC' || !isRecord(destination)) {
79
+ throw malformed('unsupported deposit policy');
80
+ }
81
+ if (destination.wallet !== 'margin') {
82
+ throw malformed('unsupported deposit wallet');
83
+ }
84
+ return {
85
+ network: 'ethereum',
86
+ symbol: 'USDC',
87
+ deposit_destination: { id: accountID, wallet: 'margin' },
88
+ };
89
+ };
90
+ //# sourceMappingURL=depositAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositAddress.js","sourceRoot":"","sources":["../../../src/utils/depositAddress.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { decodeActivityCursor, encodeActivityCursor, type OndoActivityCursor, } from './activityCursor.js';
2
2
  export { type ApiParams, ONDO_RETRY_DEFAULTS, OndoApiClient, type OndoApiClientOptions, OndoApiError, type OndoHttpMethod, type OndoPage, type OndoRequestOptions, OndoSessionExpiredError, } from './apiClient.js';
3
+ export { buildOndoProvisionPayload, listOndoDepositAddress, ONDO_DEPOSIT_POLICY, type OndoDepositAddressRecord, type OndoDepositPolicyMarker, parseOndoDepositAddress, } from './depositAddress.js';
3
4
  export { estimateLiquidationPrice } from './liquidation.js';
4
5
  export { mapFundingActivity, mapLiquidationActivity } from './mapActivity.js';
5
6
  export { mapFill } from './mapFill.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  // biome-ignore-all lint/performance/noBarrelFile: module public entry point.
2
2
  export { decodeActivityCursor, encodeActivityCursor, } from './activityCursor.js';
3
3
  export { ONDO_RETRY_DEFAULTS, OndoApiClient, OndoApiError, OndoSessionExpiredError, } from './apiClient.js';
4
+ export { buildOndoProvisionPayload, listOndoDepositAddress, ONDO_DEPOSIT_POLICY, parseOndoDepositAddress, } from './depositAddress.js';
4
5
  export { estimateLiquidationPrice } from './liquidation.js';
5
6
  export { mapFundingActivity, mapLiquidationActivity } from './mapActivity.js';
6
7
  export { mapFill } from './mapFill.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,mBAAmB,EACnB,aAAa,EAEb,YAAY,EAIZ,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,mBAAmB,EACnB,aAAa,EAEb,YAAY,EAIZ,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EAGnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"OndoProvider.d.ts","sourceRoot":"","sources":["../../src/OndoProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,EAcxB,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAA;AAwExB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,GACvB,UAAS,mBAAwB,KAChC,mBA+gBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,aAvhBN,mBAAmB,KAC3B,mBAshB6B,CAAA"}
1
+ {"version":3,"file":"OndoProvider.d.ts","sourceRoot":"","sources":["../../src/OndoProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,mBAAmB,EAexB,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAA;AAyExB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,GACvB,UAAS,mBAAwB,KAChC,mBA2jBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,aAnkBN,mBAAmB,KAC3B,mBAkkB6B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EAEpB,cAAc,EACf,MAAM,mBAAmB,CAAA;AAyF1B;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,EAAE,CAUxB"}
1
+ {"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EAEpB,cAAc,EACf,MAAM,mBAAmB,CAAA;AAkG1B;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,EAAE,CAUxB"}
@@ -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;AAG9B,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;;;;;;;;;;;;;;;;;;GAkBG;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,CA8G7B"}
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;;;;;;;;;;;;;;;;;;GAkBG;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,CAsI7B"}
@@ -0,0 +1,39 @@
1
+ import { type Address } from 'viem';
2
+ import type { OndoApiClient } from './apiClient.js';
3
+ /** The only deposit policy supported by the Ondo provider. */
4
+ export declare const ONDO_DEPOSIT_POLICY: {
5
+ readonly network: "ethereum";
6
+ readonly symbol: "USDC";
7
+ readonly depositDestination: {
8
+ readonly wallet: "margin";
9
+ };
10
+ };
11
+ /** @internal */
12
+ export type OndoDepositPolicyMarker = {
13
+ network: 'ethereum';
14
+ symbol: 'USDC';
15
+ depositDestination: {
16
+ wallet: 'margin';
17
+ };
18
+ };
19
+ /** @internal */
20
+ export interface OndoDepositAddressRecord {
21
+ address: string;
22
+ coin: string;
23
+ network: string;
24
+ }
25
+ /**
26
+ * Extract the canonical Ethereum USDC address from Ondo's list response.
27
+ * An empty list is a valid, unsatisfied setup state; malformed records are
28
+ * errors so an API/schema failure cannot be mistaken for an absent address.
29
+ */
30
+ export declare const parseOndoDepositAddress: (result: unknown) => Address | null;
31
+ /** Query Ondo's authenticated Ethereum USDC deposit-address list. */
32
+ export declare const listOndoDepositAddress: (client: OndoApiClient, authToken: string) => Promise<Address | null>;
33
+ /**
34
+ * Validate the backend's minimal client-only marker and hydrate the venue
35
+ * request with the authenticated account ID. The marker is validated against
36
+ * the one fixed Ondo policy before any venue write is attempted.
37
+ */
38
+ export declare const buildOndoProvisionPayload: (marker: object, accountID: string) => Record<string, unknown>;
39
+ //# sourceMappingURL=depositAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositAddress.d.ts","sourceRoot":"","sources":["../../../src/utils/depositAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,MAAM,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGnD,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB;;;;;;CAItB,CAAA;AAEV,gBAAgB;AAChB,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAA;CACzC,CAAA;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAsBD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,OAAO,KAAG,OAAO,GAAG,IAoBnE,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,GACjC,QAAQ,aAAa,EACrB,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,GAAG,IAAI,CAOtB,CAAA;AAgBH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAoBxB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  export { decodeActivityCursor, encodeActivityCursor, type OndoActivityCursor, } from './activityCursor.js';
2
2
  export { type ApiParams, ONDO_RETRY_DEFAULTS, OndoApiClient, type OndoApiClientOptions, OndoApiError, type OndoHttpMethod, type OndoPage, type OndoRequestOptions, OndoSessionExpiredError, } from './apiClient.js';
3
+ export { buildOndoProvisionPayload, listOndoDepositAddress, ONDO_DEPOSIT_POLICY, type OndoDepositAddressRecord, type OndoDepositPolicyMarker, parseOndoDepositAddress, } from './depositAddress.js';
3
4
  export { estimateLiquidationPrice } from './liquidation.js';
4
5
  export { mapFundingActivity, mapLiquidationActivity } from './mapActivity.js';
5
6
  export { mapFill } from './mapFill.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/perps-sdk-provider-ondo",
3
- "version": "2.1.1",
3
+ "version": "3.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": "^3.1.0"
46
+ "@lifi/perps-types": "^3.3.2"
47
47
  },
48
48
  "peerDependencies": {
49
- "@lifi/perps-sdk": "^4.2.0"
49
+ "@lifi/perps-sdk": "^5.0.0"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
@@ -1,4 +1,6 @@
1
1
  import {
2
+ type DepositFlow,
3
+ ETHEREUM_USDC,
2
4
  getMarketRegistry,
3
5
  localStorageAdapter,
4
6
  PerpsError,
@@ -7,6 +9,7 @@ import {
7
9
  type ProviderAccountExistsParams,
8
10
  type ProviderGetAccountParams,
9
11
  type ProviderGetActivityParams,
12
+ type ProviderGetDepositFlowParams,
10
13
  type ProviderGetFillsParams,
11
14
  type ProviderGetOrderParams,
12
15
  type ProviderGetOrdersParams,
@@ -82,6 +85,7 @@ import {
82
85
  estimateLiquidationPrice,
83
86
  formatOrderPrice,
84
87
  formatOrderSize,
88
+ listOndoDepositAddress,
85
89
  mapFill,
86
90
  mapFundingActivity,
87
91
  mapLiquidationActivity,
@@ -169,6 +173,7 @@ export const ondoProvider = (
169
173
  termsAccepted: false,
170
174
  apiKeyRegistered: false,
171
175
  referralSet: false,
176
+ depositAddress: null,
172
177
  }
173
178
 
174
179
  const loggedOutAccount = (address: Address): AccountResponse => ({
@@ -232,21 +237,23 @@ export const ondoProvider = (
232
237
  },
233
238
  async (token) => {
234
239
  const client = apiClient(opts)
235
- const [balance, rawPositions, referral, account] = await Promise.all([
236
- client.get<OndoBalanceSummary>('/v1/perps/balance', {
237
- authToken: token.token,
238
- }),
239
- client.get<OndoPosition[]>('/v1/perps/positions', {
240
- authToken: token.token,
241
- }),
242
- client.get<OndoAccountReferral | null>('/v1/account/referral', {
243
- authToken: token.token,
244
- }),
245
- client.get<OndoAccountInfo>('/v1/account', {
246
- authToken: token.token,
247
- }),
248
- marketRegistry().sync(),
249
- ])
240
+ const [balance, rawPositions, referral, account, depositAddress] =
241
+ await Promise.all([
242
+ client.get<OndoBalanceSummary>('/v1/perps/balance', {
243
+ authToken: token.token,
244
+ }),
245
+ client.get<OndoPosition[]>('/v1/perps/positions', {
246
+ authToken: token.token,
247
+ }),
248
+ client.get<OndoAccountReferral | null>('/v1/account/referral', {
249
+ authToken: token.token,
250
+ }),
251
+ client.get<OndoAccountInfo>('/v1/account', {
252
+ authToken: token.token,
253
+ }),
254
+ listOndoDepositAddress(client, token.token),
255
+ marketRegistry().sync(),
256
+ ])
250
257
 
251
258
  const positions: Position[] = mapOpenPositions(
252
259
  rawPositions,
@@ -280,6 +287,7 @@ export const ondoProvider = (
280
287
  account.privacyVersion === ONDO_PRIVACY_VERSION,
281
288
  apiKeyRegistered,
282
289
  referralSet: referral !== null && referral !== undefined,
290
+ depositAddress,
283
291
  },
284
292
  }
285
293
  }
@@ -300,6 +308,39 @@ export const ondoProvider = (
300
308
  )
301
309
  },
302
310
 
311
+ async getDepositFlow(
312
+ params: ProviderGetDepositFlowParams,
313
+ opts?: SDKRequestOptions
314
+ ): Promise<DepositFlow> {
315
+ // Ondo credits deposits to a per-user address the venue provisions behind
316
+ // an authenticated session, so both the session and the address must exist
317
+ // before a route has a recipient.
318
+ return withSession<DepositFlow>(
319
+ params.address,
320
+ () => ({
321
+ kind: 'setupRequired',
322
+ setup: [ActionType.SIWE_LOGIN, ActionType.CREATE_DEPOSIT_ADDRESS],
323
+ }),
324
+ async (token) => {
325
+ const depositAddress = await listOndoDepositAddress(
326
+ apiClient(opts),
327
+ token.token
328
+ )
329
+ if (depositAddress === null) {
330
+ return {
331
+ kind: 'setupRequired',
332
+ setup: [ActionType.CREATE_DEPOSIT_ADDRESS],
333
+ }
334
+ }
335
+ return {
336
+ kind: 'lifiSwap',
337
+ destination: ETHEREUM_USDC,
338
+ toAddress: depositAddress,
339
+ }
340
+ }
341
+ )
342
+ },
343
+
303
344
  async getPositions(
304
345
  params: ProviderGetPositionsParams,
305
346
  opts?: SDKRequestOptions
@@ -619,19 +660,26 @@ export const ondoProvider = (
619
660
  return projectOndoConfigSettings(config, setup, configOptions)
620
661
  },
621
662
 
622
- signActions(
663
+ async signActions(
623
664
  method: SigningMethod,
624
665
  steps: ActionStep[],
625
666
  address: Address,
626
667
  ctx?: SignActionsContext
627
668
  ): Promise<SignedActionStep[]> {
628
- return ondoSignActions(
629
- { client: apiClient(), tokenStore, apiKeyStore },
630
- method,
631
- steps,
632
- address,
633
- ctx
634
- )
669
+ try {
670
+ return await ondoSignActions(
671
+ { client: apiClient(), tokenStore, apiKeyStore },
672
+ method,
673
+ steps,
674
+ address,
675
+ ctx
676
+ )
677
+ } catch (err) {
678
+ if (err instanceof OndoSessionExpiredError) {
679
+ await tokenStore.remove(address)
680
+ }
681
+ throw err
682
+ }
635
683
  },
636
684
 
637
685
  // The venue rejecting an HMAC-signed request with Unauthorized means the
@@ -15,8 +15,9 @@ function assertNever(value: never): never {
15
15
 
16
16
  /**
17
17
  * Project a single Ondo descriptor against the typed `OndoAccountConfig`
18
- * into an `AccountConfigSetting`. Ondo has four setup descriptors:
18
+ * into an `AccountConfigSetting`. Ondo has five setup descriptors:
19
19
  * `SIWE_LOGIN`, satisfied by the presence of a live session token;
20
+ * `CREATE_DEPOSIT_ADDRESS`, satisfied by a canonical Ethereum USDC address;
20
21
  * `ACCEPT_PROVIDER_TERMS`, satisfied once the venue terms are accepted;
21
22
  * `REGISTER_API_KEY`, satisfied by a locally stored venue API key; and
22
23
  * `SET_REFERRAL`, satisfied when a referral code is already applied to the
@@ -40,6 +41,14 @@ function projectOndoDescriptor(
40
41
  satisfied: config.loggedIn,
41
42
  }
42
43
 
44
+ case ActionType.CREATE_DEPOSIT_ADDRESS:
45
+ return {
46
+ type: descriptor.type,
47
+ values: [{ name: 'depositAddress', value: config.depositAddress }],
48
+ satisfied:
49
+ config.depositAddress !== null && config.depositAddress.length > 0,
50
+ }
51
+
43
52
  case ActionType.ACCEPT_PROVIDER_TERMS:
44
53
  return {
45
54
  type: descriptor.type,
@@ -22,6 +22,10 @@ import {
22
22
  OndoApiError,
23
23
  OndoSessionExpiredError,
24
24
  } from '../utils/apiClient.js'
25
+ import {
26
+ buildOndoProvisionPayload,
27
+ listOndoDepositAddress,
28
+ } from '../utils/depositAddress.js'
25
29
  import { completeSiweLogin } from './completeSiweLogin.js'
26
30
  import { hmacSignRequest } from './hmac.js'
27
31
  import { isOndoApiKey, type OndoApiKeyStore } from './OndoApiKeyStore.js'
@@ -219,6 +223,30 @@ export async function ondoSignActions(
219
223
  )
220
224
  }
221
225
  switch (step.action) {
226
+ case ActionType.CREATE_DEPOSIT_ADDRESS: {
227
+ const token = await deps.tokenStore.get(address)
228
+ if (token === null) {
229
+ throw new OndoSessionExpiredError(
230
+ `No valid Ondo session token stored for ${address}. Run the SIWE login first.`
231
+ )
232
+ }
233
+ const account = await deps.client.get<{ accountID?: unknown }>(
234
+ '/v1/account',
235
+ { authToken: token.token }
236
+ )
237
+ const payload = buildOndoProvisionPayload(
238
+ step.session,
239
+ typeof account.accountID === 'string' ? account.accountID : ''
240
+ )
241
+ await deps.client.post('/v1/provision_address', payload, {
242
+ authToken: token.token,
243
+ })
244
+ // Re-query to validate that Ondo can read the provisioned address;
245
+ // getAccount performs the authoritative state refresh afterward.
246
+ await listOndoDepositAddress(deps.client, token.token)
247
+ break
248
+ }
249
+
222
250
  case ActionType.ACCEPT_PROVIDER_TERMS: {
223
251
  const token = await deps.tokenStore.get(address)
224
252
  if (token === null) {