@lifi/perps-sdk-provider-ondo 20.1.0 → 20.2.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 (62) hide show
  1. package/dist/cjs/OndoProvider.d.ts.map +1 -1
  2. package/dist/cjs/OndoProvider.js +30 -0
  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 +1 -0
  6. package/dist/cjs/accountConfig.js.map +1 -1
  7. package/dist/cjs/auth/signActions.d.ts +1 -1
  8. package/dist/cjs/auth/signActions.d.ts.map +1 -1
  9. package/dist/cjs/auth/signActions.js +32 -5
  10. package/dist/cjs/auth/signActions.js.map +1 -1
  11. package/dist/cjs/constants.d.ts +1 -0
  12. package/dist/cjs/constants.d.ts.map +1 -1
  13. package/dist/cjs/constants.js +2 -1
  14. package/dist/cjs/constants.js.map +1 -1
  15. package/dist/cjs/types/wire.d.ts +8 -0
  16. package/dist/cjs/types/wire.d.ts.map +1 -1
  17. package/dist/cjs/utils/apiClient.js +3 -3
  18. package/dist/cjs/utils/apiClient.js.map +1 -1
  19. package/dist/cjs/utils/ondoErrorCode.d.ts +5 -1
  20. package/dist/cjs/utils/ondoErrorCode.d.ts.map +1 -1
  21. package/dist/cjs/utils/ondoErrorCode.js +48 -6
  22. package/dist/cjs/utils/ondoErrorCode.js.map +1 -1
  23. package/dist/esm/OndoProvider.d.ts.map +1 -1
  24. package/dist/esm/OndoProvider.js +32 -0
  25. package/dist/esm/OndoProvider.js.map +1 -1
  26. package/dist/esm/accountConfig.d.ts.map +1 -1
  27. package/dist/esm/accountConfig.js +1 -0
  28. package/dist/esm/accountConfig.js.map +1 -1
  29. package/dist/esm/auth/signActions.d.ts +1 -1
  30. package/dist/esm/auth/signActions.d.ts.map +1 -1
  31. package/dist/esm/auth/signActions.js +39 -7
  32. package/dist/esm/auth/signActions.js.map +1 -1
  33. package/dist/esm/constants.d.ts +6 -0
  34. package/dist/esm/constants.d.ts.map +1 -1
  35. package/dist/esm/constants.js +6 -0
  36. package/dist/esm/constants.js.map +1 -1
  37. package/dist/esm/types/wire.d.ts +14 -0
  38. package/dist/esm/types/wire.d.ts.map +1 -1
  39. package/dist/esm/utils/apiClient.js +4 -4
  40. package/dist/esm/utils/apiClient.js.map +1 -1
  41. package/dist/esm/utils/ondoErrorCode.d.ts +11 -3
  42. package/dist/esm/utils/ondoErrorCode.d.ts.map +1 -1
  43. package/dist/esm/utils/ondoErrorCode.js +48 -6
  44. package/dist/esm/utils/ondoErrorCode.js.map +1 -1
  45. package/dist/types/OndoProvider.d.ts.map +1 -1
  46. package/dist/types/accountConfig.d.ts.map +1 -1
  47. package/dist/types/auth/signActions.d.ts +1 -1
  48. package/dist/types/auth/signActions.d.ts.map +1 -1
  49. package/dist/types/constants.d.ts +6 -0
  50. package/dist/types/constants.d.ts.map +1 -1
  51. package/dist/types/types/wire.d.ts +14 -0
  52. package/dist/types/types/wire.d.ts.map +1 -1
  53. package/dist/types/utils/ondoErrorCode.d.ts +11 -3
  54. package/dist/types/utils/ondoErrorCode.d.ts.map +1 -1
  55. package/package.json +3 -3
  56. package/src/OndoProvider.ts +54 -1
  57. package/src/accountConfig.ts +1 -0
  58. package/src/auth/signActions.ts +61 -10
  59. package/src/constants.ts +7 -0
  60. package/src/types/wire.ts +16 -0
  61. package/src/utils/apiClient.ts +5 -5
  62. package/src/utils/ondoErrorCode.ts +62 -8
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/types/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/types/wire.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  import { PerpsErrorCode } from '@lifi/perps-types';
2
2
  /**
3
- * Maps an Ondo envelope `error_code` to the `PerpsErrorCode` it names. Returns
4
- * `undefined` for every other code so the status-driven layer decides.
3
+ * The classification of an Ondo envelope `error_code`. `message` replaces the
4
+ * venue's own text when that text does not tell the caller what to do.
5
5
  */
6
- export declare const ondoErrorCodeFromBody: (errorCode: string | undefined) => PerpsErrorCode | undefined;
6
+ export interface OndoBodyError {
7
+ code: PerpsErrorCode;
8
+ message?: string;
9
+ }
10
+ /**
11
+ * Classifies an Ondo envelope `error_code`. Returns `undefined` for every other
12
+ * code so the status-driven layer decides.
13
+ */
14
+ export declare const ondoErrorFromBody: (errorCode: string | undefined) => OndoBodyError | undefined;
7
15
  //# sourceMappingURL=ondoErrorCode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ondoErrorCode.d.ts","sourceRoot":"","sources":["../../../src/utils/ondoErrorCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAQlD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,GAAG,SAAS,KAC5B,cAAc,GAAG,SACwD,CAAA"}
1
+ {"version":3,"file":"ondoErrorCode.d.ts","sourceRoot":"","sources":["../../../src/utils/ondoErrorCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAqDD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,GAAG,SAAS,KAC5B,aAAa,GAAG,SACoD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/perps-sdk-provider-ondo",
3
- "version": "20.1.0",
3
+ "version": "20.2.0",
4
4
  "description": "Ondo Perps provider plugin for @lifi/perps-sdk",
5
5
  "homepage": "https://github.com/lifinance/perps-sdk",
6
6
  "bugs": {
@@ -44,10 +44,10 @@
44
44
  "dependencies": {
45
45
  "big.js": "^7.0.1",
46
46
  "viem": "^2.55.18",
47
- "@lifi/perps-types": "^16.1.0"
47
+ "@lifi/perps-types": "^16.2.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "@lifi/perps-sdk": "^18.0.0"
50
+ "@lifi/perps-sdk": "^18.1.0"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  ACTIVE_ORDER_STATUSES,
3
+ type ActionSignerContribution,
3
4
  createWarnOnce,
4
5
  type DepositFlow,
5
6
  ETHEREUM_USDC,
@@ -22,6 +23,7 @@ import {
22
23
  type ProviderGetPositionsParams,
23
24
  type ProviderGetQuoteParams,
24
25
  type ProviderGetWithdrawableBalancesParams,
26
+ type ProviderGetWithdrawFlowParams,
25
27
  type ProviderWithdrawableBalance,
26
28
  paginateActivity,
27
29
  resolveQuote,
@@ -32,6 +34,7 @@ import {
32
34
  toAssetDisplay,
33
35
  toMarketDisplay,
34
36
  toPerpsMarketDisplay,
37
+ type WithdrawFlow,
35
38
  } from '@lifi/perps-sdk'
36
39
  import type {
37
40
  AccountConfig,
@@ -63,7 +66,7 @@ import type {
63
66
  } from '@lifi/perps-types'
64
67
  import { ActionType, ActivityType, PerpsErrorCode } from '@lifi/perps-types'
65
68
  import type Big from 'big.js'
66
- import type { Address } from 'viem'
69
+ import { type Address, getAddress } from 'viem'
67
70
  import { projectOndoConfigSettings } from './accountConfig.js'
68
71
  import { getAccountSummary } from './accountSummary.js'
69
72
  import { OndoApiKeyStore } from './auth/OndoApiKeyStore.js'
@@ -80,6 +83,7 @@ import type { OndoAuthToken } from './types/auth.js'
80
83
  import type {
81
84
  OndoAccountInfo,
82
85
  OndoAccountReferral,
86
+ OndoAddressBookResult,
83
87
  OndoBalanceSummary,
84
88
  OndoFill,
85
89
  OndoFundingFeeTransfer,
@@ -562,6 +566,39 @@ export const ondoProvider = (
562
566
  )
563
567
  },
564
568
 
569
+ async getWithdrawFlow(
570
+ params: ProviderGetWithdrawFlowParams,
571
+ opts?: SDKRequestOptions
572
+ ): Promise<WithdrawFlow> {
573
+ // Ondo sends a withdrawal only to an address-book entry, and the SDK
574
+ // offers one destination: the login address.
575
+ return withSession<WithdrawFlow>(
576
+ params.address,
577
+ () => ({
578
+ kind: 'setupRequired',
579
+ setup: [ActionType.SIWE_LOGIN, ActionType.ADD_WITHDRAWAL_ADDRESS],
580
+ }),
581
+ async (token) => {
582
+ const { addressBook } = await apiClient(
583
+ opts
584
+ ).get<OndoAddressBookResult>('/v1/wallet/address_book', {
585
+ authToken: token.token,
586
+ })
587
+ const loginAddress = params.address.toLowerCase()
588
+ const listed = (addressBook ?? []).some(
589
+ (entry) => entry.withdrawalAddress.toLowerCase() === loginAddress
590
+ )
591
+ if (!listed) {
592
+ return {
593
+ kind: 'setupRequired',
594
+ setup: [ActionType.ADD_WITHDRAWAL_ADDRESS],
595
+ }
596
+ }
597
+ return { kind: 'ready', destination: getAddress(params.address) }
598
+ }
599
+ )
600
+ },
601
+
565
602
  async getPositions(
566
603
  params: ProviderGetPositionsParams,
567
604
  opts?: SDKRequestOptions
@@ -1055,6 +1092,22 @@ export const ondoProvider = (
1055
1092
  return projectOndoConfigSettings(config, setup, configOptions)
1056
1093
  },
1057
1094
 
1095
+ async resolveActionRequest(
1096
+ action: ActionType,
1097
+ address: Address
1098
+ ): Promise<ActionSignerContribution> {
1099
+ if (action !== ActionType.WITHDRAWAL) {
1100
+ return {}
1101
+ }
1102
+ const token = await tokenStore.get(address)
1103
+ if (token === null) {
1104
+ throw new OndoSessionExpiredError(
1105
+ `No valid Ondo session token stored for ${address}. Run the SIWE login first.`
1106
+ )
1107
+ }
1108
+ return { params: { accountId: token.accountId } }
1109
+ },
1110
+
1058
1111
  async signActions(
1059
1112
  method: SigningMethod,
1060
1113
  steps: ActionStep[],
@@ -94,6 +94,7 @@ function projectOndoDescriptor(
94
94
  case ActionType.META_ACCEPT_TERMS:
95
95
  case ActionType.META_ONBOARD:
96
96
  case ActionType.META_CREATE_REFERRAL_CODE:
97
+ case ActionType.ADD_WITHDRAWAL_ADDRESS:
97
98
  case ActionType.SYNC_FEE_ATTRIBUTION:
98
99
  throw new PerpsError(
99
100
  PerpsErrorCode.SDKError,
@@ -8,12 +8,13 @@ import type {
8
8
  SiweActionStep,
9
9
  } from '@lifi/perps-types'
10
10
  import { ActionType, PerpsErrorCode, SigningMethod } from '@lifi/perps-types'
11
- import type { Address } from 'viem'
11
+ import { type Address, getAddress } from 'viem'
12
12
  import {
13
13
  ONDO_API_KEY_NAME,
14
14
  ONDO_API_KEY_SCOPES,
15
15
  ONDO_PRIVACY_VERSION,
16
16
  ONDO_TERMS_VERSION,
17
+ ONDO_WITHDRAWAL_ADDRESS_LABEL,
17
18
  } from '../constants.js'
18
19
  import type { OndoApiKey } from '../types/auth.js'
19
20
  import type { OndoApiKeyInfo, OndoCreatedApiKey } from '../types/wire.js'
@@ -26,7 +27,10 @@ import {
26
27
  buildOndoProvisionPayload,
27
28
  listOndoDepositAddress,
28
29
  } from '../utils/depositAddress.js'
29
- import { completeSiweLogin } from './completeSiweLogin.js'
30
+ import {
31
+ completeSiweLogin,
32
+ type OndoSiweChallenge,
33
+ } from './completeSiweLogin.js'
30
34
  import { hmacSignRequest } from './hmac.js'
31
35
  import { isOndoApiKey, type OndoApiKeyStore } from './OndoApiKeyStore.js'
32
36
  import type { OndoTokenStore } from './OndoTokenStore.js'
@@ -45,6 +49,18 @@ const isSiweStep = (step: ActionStep): step is SiweActionStep => 'siwe' in step
45
49
  const isSessionStep = (step: ActionStep): step is SessionActionStep =>
46
50
  'session' in step
47
51
 
52
+ const requireUserWallet = (ctx: SignActionsContext | undefined) => {
53
+ const userWallet = ctx?.userWallet
54
+ if (userWallet === undefined) {
55
+ throw new PerpsError(
56
+ PerpsErrorCode.SDKError,
57
+ 'Ondo SIWE login requires the user wallet. Pass `userWallet` when ' +
58
+ 'creating the perps client.'
59
+ )
60
+ }
61
+ return userWallet
62
+ }
63
+
48
64
  const hasRequest = (
49
65
  step: ActionStep
50
66
  ): step is Extract<ActionStep, { request: unknown }> => 'request' in step
@@ -139,6 +155,45 @@ async function ensureApiKey(
139
155
  return apiKey
140
156
  }
141
157
 
158
+ /**
159
+ * Add the login address to the Ondo address book, the only withdrawal
160
+ * destination the SDK offers. Ondo requires a wallet signature over its own
161
+ * challenge for each new entry.
162
+ */
163
+ async function addWithdrawalAddress(
164
+ deps: OndoSignActionsDeps,
165
+ address: Address,
166
+ ctx: SignActionsContext | undefined
167
+ ): Promise<void> {
168
+ const token = await deps.tokenStore.get(address)
169
+ if (token === null) {
170
+ throw new OndoSessionExpiredError(
171
+ `No valid Ondo session token stored for ${address}. Run the SIWE login first.`
172
+ )
173
+ }
174
+ const userWallet = requireUserWallet(ctx)
175
+ const withdrawalAddress = getAddress(address)
176
+ const challenge = await deps.client.post<OndoSiweChallenge>(
177
+ '/v1/auth/erc-4361/address_book/get_challenge',
178
+ { walletAddress: withdrawalAddress, chainId: '1', withdrawalAddress },
179
+ { authToken: token.token }
180
+ )
181
+ const signature = await userWallet.signMessage({
182
+ account: userWallet.account,
183
+ message: challenge.message,
184
+ })
185
+ await deps.client.post(
186
+ '/v1/auth/erc-4361/address_book/complete_challenge',
187
+ {
188
+ id: challenge.id,
189
+ signature,
190
+ withdrawalAddress,
191
+ addressLabel: ONDO_WITHDRAWAL_ADDRESS_LABEL,
192
+ },
193
+ { authToken: token.token }
194
+ )
195
+ }
196
+
142
197
  /**
143
198
  * Execute a backend-authored session request directly against the venue with
144
199
  * the stored session JWT. The pre-serialized wire body is parsed back to an
@@ -191,14 +246,7 @@ export async function ondoSignActions(
191
246
  ): Promise<SignedActionStep[]> {
192
247
  switch (method) {
193
248
  case SigningMethod.SIWE: {
194
- const userWallet = ctx?.userWallet
195
- if (userWallet === undefined) {
196
- throw new PerpsError(
197
- PerpsErrorCode.SDKError,
198
- 'Ondo SIWE login requires the user wallet. Pass `userWallet` when ' +
199
- 'creating the perps client.'
200
- )
201
- }
249
+ const userWallet = requireUserWallet(ctx)
202
250
  for (const step of steps) {
203
251
  if (!isSiweStep(step)) {
204
252
  throw new PerpsError(
@@ -303,6 +351,9 @@ export async function ondoSignActions(
303
351
  case ActionType.REGISTER_API_KEY:
304
352
  await ensureApiKey(deps, address)
305
353
  break
354
+ case ActionType.ADD_WITHDRAWAL_ADDRESS:
355
+ await addWithdrawalAddress(deps, address, ctx)
356
+ break
306
357
  default:
307
358
  throw new PerpsError(
308
359
  PerpsErrorCode.SDKError,
package/src/constants.ts CHANGED
@@ -64,3 +64,10 @@ export const ONDO_TERMS_VERSION = 1
64
64
  * @public
65
65
  */
66
66
  export const ONDO_PRIVACY_VERSION = 1
67
+
68
+ /**
69
+ * Label Ondo shows on the address book entry the SDK adds for withdrawals.
70
+ *
71
+ * @public
72
+ */
73
+ export const ONDO_WITHDRAWAL_ADDRESS_LABEL = 'LI.FI'
package/src/types/wire.ts CHANGED
@@ -337,6 +337,22 @@ export interface OndoWalletWithdrawal {
337
337
  from?: OndoAccountWalletKey
338
338
  }
339
339
 
340
+ /** Mirrors Ondo's `AddressBookEntry` (one `GET /v1/wallet/address_book` row). @public */
341
+ export interface OndoAddressBookEntry {
342
+ withdrawalAddress: string
343
+ label: string
344
+ lastUpdated: string
345
+ }
346
+
347
+ /**
348
+ * Mirrors Ondo's `AddressBookResult`. The venue sends `null` for an empty
349
+ * address book.
350
+ * @public
351
+ */
352
+ export interface OndoAddressBookResult {
353
+ addressBook: OndoAddressBookEntry[] | null
354
+ }
355
+
340
356
  /**
341
357
  * One side of an Ondo value movement: an account id plus which of that
342
358
  * account's two wallets held the value.
@@ -8,7 +8,7 @@ import {
8
8
  import { PerpsErrorCode } from '@lifi/perps-types'
9
9
  import type { OndoGenericResponse } from '../types/auth.js'
10
10
  import type { OndoPageInfo } from '../types/wire.js'
11
- import { ondoErrorCodeFromBody } from './ondoErrorCode.js'
11
+ import { ondoErrorFromBody } from './ondoErrorCode.js'
12
12
 
13
13
  /** @internal */
14
14
  export type ApiParams = Record<string, string | number | boolean>
@@ -246,12 +246,12 @@ export class OndoApiClient {
246
246
  )
247
247
  }
248
248
  if (isGenericResponse(data) && !data.success) {
249
- const bodyCode = ondoErrorCodeFromBody(data.error_code)
250
- if (bodyCode !== undefined) {
249
+ const bodyError = ondoErrorFromBody(data.error_code)
250
+ if (bodyError !== undefined) {
251
251
  throw new OndoApiError(
252
- `Ondo API error for ${path}: ${data.error_code} — ${data.error ?? 'no error message'}`,
252
+ `Ondo API error for ${path}: ${data.error_code} — ${bodyError.message ?? data.error ?? 'no error message'}`,
253
253
  data.error_code,
254
- bodyCode
254
+ bodyError.code
255
255
  )
256
256
  }
257
257
  }
@@ -1,16 +1,70 @@
1
1
  import { PerpsErrorCode } from '@lifi/perps-types'
2
2
 
3
+ /**
4
+ * The classification of an Ondo envelope `error_code`. `message` replaces the
5
+ * venue's own text when that text does not tell the caller what to do.
6
+ */
7
+ export interface OndoBodyError {
8
+ code: PerpsErrorCode
9
+ message?: string
10
+ }
11
+
3
12
  /** Ondo envelope `error_code` values that name a rejection a `PerpsErrorCode` describes. */
4
- const ONDO_BODY_ERROR_CODES: ReadonlyMap<string, PerpsErrorCode> = new Map([
5
- ['insufficient_margin', PerpsErrorCode.InsufficientMargin],
6
- ['clientOrderID_collision', PerpsErrorCode.NonceAlreadyUsed],
13
+ const ONDO_BODY_ERRORS: ReadonlyMap<string, OndoBodyError> = new Map([
14
+ ['insufficient_margin', { code: PerpsErrorCode.InsufficientMargin }],
15
+ ['clientOrderID_collision', { code: PerpsErrorCode.NonceAlreadyUsed }],
16
+ [
17
+ 'bad_label',
18
+ {
19
+ code: PerpsErrorCode.ValidationError,
20
+ message: 'Ondo rejected the withdrawal address label.',
21
+ },
22
+ ],
23
+ [
24
+ 'empty_label',
25
+ {
26
+ code: PerpsErrorCode.ValidationError,
27
+ message: 'Ondo requires a withdrawal address label.',
28
+ },
29
+ ],
30
+ [
31
+ 'bad_withdrawal_address',
32
+ {
33
+ code: PerpsErrorCode.ValidationError,
34
+ message: 'Ondo rejected the withdrawal address as not valid.',
35
+ },
36
+ ],
37
+ [
38
+ 'internal_withdrawal_address',
39
+ {
40
+ code: PerpsErrorCode.ValidationError,
41
+ message:
42
+ 'Ondo does not accept an Ondo deposit address as a withdrawal address.',
43
+ },
44
+ ],
45
+ [
46
+ 'challenge_not_found',
47
+ {
48
+ code: PerpsErrorCode.NonceExpired,
49
+ message:
50
+ 'The Ondo address book challenge is unknown or expired. Request a new challenge.',
51
+ },
52
+ ],
53
+ [
54
+ 'withdrawal_address_not_found',
55
+ {
56
+ code: PerpsErrorCode.SetupRequired,
57
+ message:
58
+ 'The withdrawal destination is not in the Ondo address book. Add the withdrawal address first.',
59
+ },
60
+ ],
7
61
  ])
8
62
 
9
63
  /**
10
- * Maps an Ondo envelope `error_code` to the `PerpsErrorCode` it names. Returns
11
- * `undefined` for every other code so the status-driven layer decides.
64
+ * Classifies an Ondo envelope `error_code`. Returns `undefined` for every other
65
+ * code so the status-driven layer decides.
12
66
  */
13
- export const ondoErrorCodeFromBody = (
67
+ export const ondoErrorFromBody = (
14
68
  errorCode: string | undefined
15
- ): PerpsErrorCode | undefined =>
16
- errorCode === undefined ? undefined : ONDO_BODY_ERROR_CODES.get(errorCode)
69
+ ): OndoBodyError | undefined =>
70
+ errorCode === undefined ? undefined : ONDO_BODY_ERRORS.get(errorCode)