@pollar/core 0.8.2 → 0.9.0-rc.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/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { S as Storage, O as OnStorageDegrade } from './types-DqgJIJBl.mjs';
2
2
  export { a as StorageDegradeReason } from './types-DqgJIJBl.mjs';
3
- import { V as VisibilityProvider } from './types-84G_htcn.mjs';
3
+ import { V as VisibilityProvider } from './types-Dyky8g0p.mjs';
4
4
  import * as openapi_fetch from 'openapi-fetch';
5
5
 
6
6
  type StellarNetwork = 'mainnet' | 'testnet';
@@ -90,7 +90,6 @@ declare enum WalletType {
90
90
  type WalletId = WalletType | (string & {});
91
91
  interface ConnectWalletResponse {
92
92
  address: string;
93
- publicKey: string;
94
93
  }
95
94
  interface SignTransactionOptions {
96
95
  network?: string;
@@ -133,14 +132,23 @@ declare class FreighterAdapter implements WalletAdapter {
133
132
  signAuthEntry(entryXdr: string, options?: SignAuthEntryOptions): Promise<SignAuthEntryResponse>;
134
133
  }
135
134
 
135
+ /** Albedo's own network vocabulary (it only understands these two values). */
136
+ type AlbedoNetwork = 'public' | 'testnet';
136
137
  declare class AlbedoAdapter implements WalletAdapter {
138
+ private readonly network;
137
139
  readonly type = WalletType.ALBEDO;
140
+ /**
141
+ * Network used for `connect` and `signAuthEntry` (which carry no per-call
142
+ * network) and as the fallback for `signTransaction`. Defaults to `'testnet'`
143
+ * to preserve the previous behavior when constructed with no argument.
144
+ */
145
+ constructor(network?: AlbedoNetwork);
138
146
  isAvailable(): Promise<boolean>;
139
147
  connect(): Promise<ConnectWalletResponse>;
140
148
  disconnect(): Promise<void>;
141
149
  getPublicKey(): Promise<string | null>;
142
150
  getNetwork(): Promise<string>;
143
- signTransaction(xdr: string, _options?: SignTransactionOptions): Promise<SignTransactionResponse>;
151
+ signTransaction(xdr: string, options?: SignTransactionOptions): Promise<SignTransactionResponse>;
144
152
  signAuthEntry(entryXdr: string, _options?: SignAuthEntryOptions): Promise<SignAuthEntryResponse>;
145
153
  }
146
154
 
@@ -165,9 +173,13 @@ interface PollarPersistedSession {
165
173
  ready: boolean;
166
174
  };
167
175
  wallet: {
168
- publicKey: string | null;
176
+ type: 'custodial' | 'smart' | 'external';
177
+ address: string | null;
169
178
  existsOnStellar?: boolean;
170
179
  createdAt?: number;
180
+ linkedAt?: number;
181
+ network?: string;
182
+ deployTxHash?: string | null;
171
183
  };
172
184
  }
173
185
  /** In-memory user profile (kept on `PollarClient`, never persisted). */
@@ -203,7 +215,7 @@ interface PollarClientConfig {
203
215
  storage?: Storage;
204
216
  /**
205
217
  * Pluggable DPoP key manager. Defaults to `defaultKeyManager(storage,
206
- * apiKeyHash)`: WebCrypto in browsers, `@noble/curves` in RN.
218
+ * apiKey)`: WebCrypto in browsers, `@noble/curves` in RN.
207
219
  */
208
220
  keyManager?: KeyManager;
209
221
  /**
@@ -242,7 +254,8 @@ interface PollarClientConfig {
242
254
  * the moment visibility comes back. Defaults to a web provider in the
243
255
  * browser (`visibilitychange` + BFCache + focus) and a noop elsewhere.
244
256
  * React Native consumers should inject an `AppState`-backed provider —
245
- * see TODO on `VisibilityProvider`.
257
+ * use `createAppStateVisibilityProvider` from
258
+ * `@pollar/core/adapters/react-native-appstate`.
246
259
  */
247
260
  visibilityProvider?: VisibilityProvider;
248
261
  /**
@@ -271,7 +284,55 @@ interface PollarClientConfig {
271
284
  * same URL you pass to `WebBrowser.openAuthSessionAsync`.
272
285
  */
273
286
  oauthRedirectUri?: string;
287
+ /**
288
+ * The passkey (WebAuthn) ceremony for "Smart Wallet" login, injected by the
289
+ * runtime layer (`@pollar/react` implements it with `@simplewebauthn/browser`).
290
+ * `@pollar/core` stays runtime-agnostic and never touches `navigator.credentials`
291
+ * directly. Required to use `loginSmartWallet()`. Browser-only for now;
292
+ * React Native needs a native passkey provider.
293
+ */
294
+ passkey?: PasskeyCeremony;
295
+ /**
296
+ * Signs smart-account (C-address) transactions with the user's passkey.
297
+ * Required to send from a smart wallet. Injected by `@pollar/react`;
298
+ * browser-only for now.
299
+ */
300
+ passkeySign?: PasskeySigner;
274
301
  }
302
+ /**
303
+ * Runs the device WebAuthn ceremony for a server-issued challenge and returns
304
+ * the result to forward to the backend: a registration response for a new user
305
+ * (`create()`) or an authentication assertion for a returning one (`get()`).
306
+ * The implementation decides which (e.g. try `get()` first, fall back to
307
+ * `create()`). `response` is the browser's PublicKeyCredential serialized to
308
+ * JSON — forwarded verbatim to `/auth/passkey/{register,login}`.
309
+ */
310
+ type PasskeyCeremony = (ctx: {
311
+ challenge: string;
312
+ }) => Promise<{
313
+ kind: 'login';
314
+ response: unknown;
315
+ } | {
316
+ kind: 'register';
317
+ response: unknown;
318
+ }>;
319
+ /**
320
+ * Signs a smart-account transaction's auth digest with the user's passkey
321
+ * (a WebAuthn `get()` whose challenge is the raw digest). Returns the PUBLIC
322
+ * assertion fields (base64url) for the server to assemble into the Soroban auth
323
+ * entry — no secret leaves the device. Injected by the runtime layer
324
+ * (`@pollar/react`); `@pollar/core` never touches `navigator.credentials`.
325
+ */
326
+ type PasskeySigner = (ctx: {
327
+ /** base64url WebAuthn credential id to sign with. */
328
+ credentialId: string;
329
+ /** hex-encoded auth digest to use as the WebAuthn challenge. */
330
+ challenge: string;
331
+ }) => Promise<{
332
+ authenticatorData: string;
333
+ clientDataJSON: string;
334
+ signature: string;
335
+ }>;
275
336
  /**
276
337
  * Strategy for opening the hosted OAuth URL. The SDK mints the per-login auth
277
338
  * session lazily inside `getUrl()` (call it once; the first call creates the
@@ -310,6 +371,23 @@ interface SessionInfo {
310
371
  current: boolean;
311
372
  expiresAt: string;
312
373
  }
374
+ /**
375
+ * Observable state for the active-sessions list. Lives on the client (like
376
+ * {@link TxHistoryState} / {@link WalletBalanceState}) so UI layers can
377
+ * subscribe via `onSessionsStateChange` and stay pure readers instead of
378
+ * holding the loading state locally.
379
+ */
380
+ type SessionsState = {
381
+ step: 'idle';
382
+ } | {
383
+ step: 'loading';
384
+ } | {
385
+ step: 'loaded';
386
+ sessions: SessionInfo[];
387
+ } | {
388
+ step: 'error';
389
+ message: string;
390
+ };
313
391
  type TxBuildBody = NonNullable<paths['/tx/build']['post']['requestBody']>['content']['application/json'];
314
392
  type TxBuildResponse = paths['/tx/build']['post']['responses'][200]['content']['application/json'];
315
393
  type TxSignAndSendBody = NonNullable<paths['/tx/sign-and-send']['post']['requestBody']>['content']['application/json'];
@@ -451,6 +529,7 @@ declare const AUTH_ERROR_CODES: {
451
529
  readonly WALLET_CONNECT_FAILED: "WALLET_CONNECT_FAILED";
452
530
  readonly WALLET_AUTH_FAILED: "WALLET_AUTH_FAILED";
453
531
  readonly WALLET_RESOLVER_TIMEOUT: "WALLET_RESOLVER_TIMEOUT";
532
+ readonly PASSKEY_FAILED: "PASSKEY_FAILED";
454
533
  readonly UNEXPECTED_ERROR: "UNEXPECTED_ERROR";
455
534
  };
456
535
  type AuthErrorCode = (typeof AUTH_ERROR_CODES)[keyof typeof AUTH_ERROR_CODES];
@@ -483,11 +562,21 @@ type AuthState = {
483
562
  walletType: WalletId;
484
563
  } | {
485
564
  step: 'authenticating_wallet';
565
+ } | {
566
+ step: 'creating_passkey';
567
+ } | {
568
+ step: 'deploying_smart_account';
486
569
  } | {
487
570
  step: 'authenticating';
488
571
  } | {
489
572
  step: 'authenticated';
490
573
  session: PollarPersistedSession;
574
+ /**
575
+ * `false` while the session is restored optimistically from storage and
576
+ * not yet revalidated with the server; `true` after a fresh login/refresh
577
+ * or a successful `/auth/session/resume`. Gate sensitive actions on this.
578
+ */
579
+ verified: boolean;
491
580
  } | {
492
581
  step: 'error';
493
582
  previousStep: string;
@@ -519,6 +608,19 @@ type WalletBalanceState = {
519
608
  step: 'error';
520
609
  message: string;
521
610
  };
611
+ type WalletAssetsContent = paths['/wallet/assets']['get']['responses'][200]['content']['application/json']['content'];
612
+ type EnabledAssetRecord = WalletAssetsContent['assets'][number];
613
+ type EnabledAssetsState = {
614
+ step: 'idle';
615
+ } | {
616
+ step: 'loading';
617
+ } | {
618
+ step: 'loaded';
619
+ data: WalletAssetsContent;
620
+ } | {
621
+ step: 'error';
622
+ message: string;
623
+ };
522
624
  type TxHistoryRecord = paths['/tx/history']['get']['responses'][200]['content']['application/json']['content']['records'][number];
523
625
  type TxHistoryParams = NonNullable<paths['/tx/history']['get']['parameters']['query']>;
524
626
  type TxHistoryContent = paths['/tx/history']['get']['responses'][200]['content']['application/json']['content'];
@@ -625,8 +727,12 @@ declare class PollarClient {
625
727
  private _transactionStateListeners;
626
728
  private _txHistoryState;
627
729
  private _txHistoryStateListeners;
730
+ private _sessionsState;
731
+ private _sessionsStateListeners;
628
732
  private _walletBalanceState;
629
733
  private _walletBalanceStateListeners;
734
+ private _enabledAssetsState;
735
+ private _enabledAssetsStateListeners;
630
736
  private _authState;
631
737
  private _authStateListeners;
632
738
  private _networkState;
@@ -643,7 +749,11 @@ declare class PollarClient {
643
749
  private _walletAdapter;
644
750
  private readonly _walletAdapterResolver;
645
751
  private readonly _walletResolverTimeoutMs;
752
+ private readonly _passkey;
753
+ private readonly _passkeySign;
646
754
  private _loginController;
755
+ /** Aborts an in-flight `/auth/session/resume` on destroy() or re-trigger. */
756
+ private _resumeController;
647
757
  /** Platform strategy for opening the hosted-OAuth URL (popup on web; injected on RN). */
648
758
  private readonly _openAuthUrl;
649
759
  /** `redirect_uri` sent to the backend for hosted OAuth. */
@@ -718,6 +828,12 @@ declare class PollarClient {
718
828
  sendEmailCode(email: string): void;
719
829
  verifyEmailCode(code: string): void;
720
830
  loginWallet(type: WalletId): void;
831
+ /**
832
+ * "Smart Wallet" login: runs the passkey (WebAuthn) ceremony and, for a new
833
+ * user, creates a sponsored smart-account C-address. Requires the `passkey`
834
+ * ceremony to be configured (e.g. via `@pollar/react`).
835
+ */
836
+ loginSmartWallet(): void;
721
837
  cancelLogin(): void;
722
838
  /**
723
839
  * Revoke the current session server-side, then clear local storage.
@@ -741,6 +857,14 @@ declare class PollarClient {
741
857
  * `current` flag identifies which entry corresponds to this client.
742
858
  */
743
859
  listSessions(): Promise<SessionInfo[]>;
860
+ getSessionsState(): SessionsState;
861
+ onSessionsStateChange(cb: (state: SessionsState) => void): () => void;
862
+ /**
863
+ * Fire-and-forget variant of {@link listSessions} that drives the observable
864
+ * `SessionsState` store instead of returning the array. UI layers subscribe
865
+ * via `onSessionsStateChange` and stay pure readers — mirrors `fetchTxHistory`.
866
+ */
867
+ fetchSessions(): Promise<void>;
744
868
  /**
745
869
  * Revoke a specific refresh-token family (a single device session). Use
746
870
  * `listSessions` to enumerate the familyIds. Revoking the current session
@@ -758,7 +882,28 @@ declare class PollarClient {
758
882
  fetchTxHistory(params?: TxHistoryParams): Promise<void>;
759
883
  getWalletBalanceState(): WalletBalanceState;
760
884
  onWalletBalanceStateChange(cb: (state: WalletBalanceState) => void): () => void;
761
- refreshBalance(publicKey?: string): Promise<void>;
885
+ /**
886
+ * Refreshes the balances of the authenticated user's OWN wallet. The wallet
887
+ * and network are resolved server-side from the session — no arguments. Drives
888
+ * `walletBalanceState`. For an arbitrary wallet, use {@link getWalletBalance}.
889
+ */
890
+ refreshBalance(): Promise<void>;
891
+ /**
892
+ * General-purpose balance lookup for ANY wallet on ANY network — not scoped
893
+ * to this application. Enumerates the account's real on-chain holdings via
894
+ * Horizon (server-side) and returns the data directly (no reactive state).
895
+ * `network` defaults to the client's current network.
896
+ */
897
+ getWalletBalance(publicKey: string, network?: StellarNetwork): Promise<WalletBalanceContent>;
898
+ getEnabledAssetsState(): EnabledAssetsState;
899
+ onEnabledAssetsStateChange(cb: (state: EnabledAssetsState) => void): () => void;
900
+ /**
901
+ * Loads the application's enabled assets paired with the authenticated
902
+ * wallet's on-chain trustline state — so the SDK knows which trustlines still
903
+ * need to be added. Wallet and network are resolved server-side from the
904
+ * session. Drives `enabledAssetsState`; mirrors {@link refreshBalance}.
905
+ */
906
+ refreshAssets(): Promise<void>;
762
907
  /**
763
908
  * Builds an unsigned XDR. Drives `_setTransactionState` for modal-style UIs
764
909
  * AND returns a {@link BuildOutcome} so headless callers can `await` and
@@ -813,7 +958,7 @@ declare class PollarClient {
813
958
  * backend call) and then transitions to `submitted` (Horizon ack only) or
814
959
  * `success` (ledger-confirmed), or `error[phase: 'signing-submitting']`.
815
960
  */
816
- signAndSubmitTx(unsignedXdr: string): Promise<SubmitOutcome>;
961
+ signAndSubmitTx(unsignedXdr?: string): Promise<SubmitOutcome>;
817
962
  /**
818
963
  * One-shot: build → sign → submit, returning the final {@link SubmitOutcome}.
819
964
  *
@@ -834,6 +979,20 @@ declare class PollarClient {
834
979
  buildAndSignAndSubmitTx(operation: TxBuildBody['operation'], params: TxBuildBody['params'], options?: TxBuildBody['options']): Promise<SubmitOutcome>;
835
980
  /** Alias for {@link buildAndSignAndSubmitTx} — shorter "just do the thing" name. */
836
981
  runTx(operation: TxBuildBody['operation'], params: TxBuildBody['params'], options?: TxBuildBody['options']): Promise<SubmitOutcome>;
982
+ /**
983
+ * Smart-wallet (passkey / C-address) transaction: build (server prepares the
984
+ * SAC transfer + returns the auth digest) → sign the digest with the passkey
985
+ * → submit (server assembles the signed auth entry and broadcasts; the
986
+ * sponsor pays the fee). State machine: building → built → signing →
987
+ * submitting → success.
988
+ */
989
+ private _runSmartTx;
990
+ /**
991
+ * Steps 2–3 of the smart-wallet flow: sign the prepared auth digest with the
992
+ * passkey, then submit. Shared by `_runSmartTx` (atomic) and `signAndSubmitTx`
993
+ * (split flow, when a smart build is already on the state machine).
994
+ */
995
+ private _signSubmitSmart;
837
996
  getAppConfig(): Promise<unknown>;
838
997
  getKycStatus(providerId?: string): Promise<{
839
998
  status: KycStatus;
@@ -871,7 +1030,9 @@ declare class PollarClient {
871
1030
  listDistributionRules(): Promise<DistributionRule[]>;
872
1031
  claimDistributionRule(body: DistributionClaimBody): Promise<DistributionClaimContent>;
873
1032
  private _setTxHistoryState;
1033
+ private _setSessionsState;
874
1034
  private _setWalletBalanceState;
1035
+ private _setEnabledAssetsState;
875
1036
  private _newController;
876
1037
  private _flowDeps;
877
1038
  /**
@@ -883,6 +1044,21 @@ declare class PollarClient {
883
1044
  private _resolveWalletAdapter;
884
1045
  private _handleFlowError;
885
1046
  private _restoreSession;
1047
+ /**
1048
+ * Validate the restored session against the server and repopulate the
1049
+ * in-memory profile (PII is never persisted, so it's null after a cold
1050
+ * reload). Goes through the normal authed client, so it coalesces with any
1051
+ * in-flight refresh (onRequest awaits `_refreshPromise`) and, being a GET,
1052
+ * is auto-retried after a 401-triggered refresh.
1053
+ *
1054
+ * - 200 → store profile, mark the session `verified`.
1055
+ * - 401 → the refresh-on-401 path already ran; if the family was
1056
+ * revoked, refresh failed and `_clearSession()` took us to
1057
+ * idle. Nothing to do here — don't double-handle.
1058
+ * - network error → stay optimistic (do NOT log out); revalidated later on
1059
+ * `visibilitychange` or first use.
1060
+ */
1061
+ private _resume;
886
1062
  private _storeSession;
887
1063
  private _clearSession;
888
1064
  private _networkPassphrase;
@@ -898,6 +1074,16 @@ declare class PollarClient {
898
1074
  private _currentBuildData;
899
1075
  }
900
1076
 
1077
+ /**
1078
+ * Version of this `@pollar/core` build (e.g. `'0.8.2'`). Falls back to `'dev'`
1079
+ * when running unbundled.
1080
+ *
1081
+ * Named per-package on purpose: importing it alongside `@pollar/react`'s
1082
+ * `POLLAR_REACT_VERSION` never collides, so an app can report both versions in
1083
+ * a single bug-report / diagnostics line.
1084
+ */
1085
+ declare const POLLAR_CORE_VERSION: string;
1086
+
901
1087
  /**
902
1088
  * In-memory storage backed by a `Map`. Always available, never throws.
903
1089
  * Used as the default fallback for SSR, private browsing, sandboxed iframes
@@ -968,6 +1154,20 @@ declare class WebCryptoKeyManager implements KeyManager {
968
1154
  */
969
1155
  init(): Promise<void>;
970
1156
  private _doInit;
1157
+ /**
1158
+ * Derive the public JWK from a `CryptoKey`. Prefers the `'raw'` export (the
1159
+ * 65-byte uncompressed point `0x04 || X(32) || Y(32)`) and base64url-encodes
1160
+ * the coordinates ourselves — that sidesteps polyfills whose `exportKey('jwk')`
1161
+ * emits non-base64url `x`/`y` (standard base64, `=` padding, or — as seen with
1162
+ * `react-native-quick-crypto` — a stray `.`). Real browsers and most polyfills
1163
+ * support `'raw'` for public EC keys.
1164
+ *
1165
+ * Falls back to the `'jwk'` export (normalized via `canonicalEcJwk`) if `'raw'`
1166
+ * is unsupported or returns an unexpected shape, so this can't regress on a
1167
+ * runtime that only implements the JWK path. Both routes yield identical
1168
+ * coordinate bytes, so the `cnf.jkt` thumbprint is unchanged either way.
1169
+ */
1170
+ private _exportPublicJwk;
971
1171
  reset(): Promise<void>;
972
1172
  getPublicJwk(): Promise<PublicEcJwk>;
973
1173
  getThumbprint(): Promise<string>;
@@ -995,9 +1195,11 @@ declare class WebCryptoKeyManager implements KeyManager {
995
1195
  */
996
1196
  declare function computeJwkThumbprint(jwk: PublicEcJwk): Promise<string>;
997
1197
  /**
998
- * Strip a JWK to only the four required EC public members. Useful when the
999
- * input came from `crypto.subtle.exportKey('jwk', publicKey)` which adds
1000
- * `ext` / `key_ops`. Returns a fresh object — never mutates input.
1198
+ * Strip a JWK to only the four required EC public members and normalize the
1199
+ * coordinates to unpadded base64url. Useful when the input came from
1200
+ * `crypto.subtle.exportKey('jwk', publicKey)` which adds `ext` / `key_ops`
1201
+ * (and, under some RN polyfills, non-base64url coordinates). Returns a fresh
1202
+ * object — never mutates input.
1001
1203
  */
1002
1204
  declare function canonicalEcJwk(jwk: {
1003
1205
  kty?: string;
@@ -1265,6 +1467,66 @@ interface paths {
1265
1467
  patch?: never;
1266
1468
  trace?: never;
1267
1469
  };
1470
+ "/auth/passkey/challenge": {
1471
+ parameters: {
1472
+ query?: never;
1473
+ header?: never;
1474
+ path?: never;
1475
+ cookie?: never;
1476
+ };
1477
+ get?: never;
1478
+ put?: never;
1479
+ /**
1480
+ * Issue a WebAuthn challenge
1481
+ * @description Returns a server challenge bound to the client session for the create()/get() ceremony.
1482
+ */
1483
+ post: operations["postAuthPasskeyChallenge"];
1484
+ delete?: never;
1485
+ options?: never;
1486
+ head?: never;
1487
+ patch?: never;
1488
+ trace?: never;
1489
+ };
1490
+ "/auth/passkey/register": {
1491
+ parameters: {
1492
+ query?: never;
1493
+ header?: never;
1494
+ path?: never;
1495
+ cookie?: never;
1496
+ };
1497
+ get?: never;
1498
+ put?: never;
1499
+ /**
1500
+ * Register a passkey and create a Smart Wallet
1501
+ * @description Verifies the WebAuthn registration, creates the user, deploys the smart-account C-address (sponsored), and sets the session ready.
1502
+ */
1503
+ post: operations["postAuthPasskeyRegister"];
1504
+ delete?: never;
1505
+ options?: never;
1506
+ head?: never;
1507
+ patch?: never;
1508
+ trace?: never;
1509
+ };
1510
+ "/auth/passkey/login": {
1511
+ parameters: {
1512
+ query?: never;
1513
+ header?: never;
1514
+ path?: never;
1515
+ cookie?: never;
1516
+ };
1517
+ get?: never;
1518
+ put?: never;
1519
+ /**
1520
+ * Authenticate a returning passkey user
1521
+ * @description Verifies the WebAuthn assertion against the stored credential, resolves the C-address, sets the session ready.
1522
+ */
1523
+ post: operations["postAuthPasskeyLogin"];
1524
+ delete?: never;
1525
+ options?: never;
1526
+ head?: never;
1527
+ patch?: never;
1528
+ trace?: never;
1529
+ };
1268
1530
  "/auth/login": {
1269
1531
  parameters: {
1270
1532
  query?: never;
@@ -1345,6 +1607,26 @@ interface paths {
1345
1607
  patch?: never;
1346
1608
  trace?: never;
1347
1609
  };
1610
+ "/auth/session/resume": {
1611
+ parameters: {
1612
+ query?: never;
1613
+ header?: never;
1614
+ path?: never;
1615
+ cookie?: never;
1616
+ };
1617
+ /**
1618
+ * Validate the current session and return the user profile
1619
+ * @description DPoP-bound resume/validate + touch. Confirms the refresh-token family is still active, returns the same profile shape as login `data` (mail, names, avatar, providers), and records the return (last_used_at + UA/IP-hash). Does NOT rotate the refresh token or create a new family. A revoked/expired family returns 401 so the client can converge to a logged-out state.
1620
+ */
1621
+ get: operations["getAuthSessionResume"];
1622
+ put?: never;
1623
+ post?: never;
1624
+ delete?: never;
1625
+ options?: never;
1626
+ head?: never;
1627
+ patch?: never;
1628
+ trace?: never;
1629
+ };
1348
1630
  "/auth/sessions/{familyId}": {
1349
1631
  parameters: {
1350
1632
  query?: never;
@@ -1590,8 +1872,8 @@ interface paths {
1590
1872
  cookie?: never;
1591
1873
  };
1592
1874
  /**
1593
- * Get wallet balances
1594
- * @description Returns XLM and configured asset balances for a Stellar account using Soroban RPC (no Horizon). The asset list is derived from the application's enabled assets. "available" reflects the spendable amount after minimum reserve (XLM) and selling liabilities.
1875
+ * Get my wallet balances
1876
+ * @description Returns XLM and the application's enabled-asset balances for the authenticated user's wallet using Soroban RPC (no Horizon). The wallet and network are derived from the session no parameters required. "available" reflects the spendable amount after minimum reserve (XLM) and selling liabilities.
1595
1877
  */
1596
1878
  get: operations["getWalletBalance"];
1597
1879
  put?: never;
@@ -1602,6 +1884,46 @@ interface paths {
1602
1884
  patch?: never;
1603
1885
  trace?: never;
1604
1886
  };
1887
+ "/wallet/assets": {
1888
+ parameters: {
1889
+ query?: never;
1890
+ header?: never;
1891
+ path?: never;
1892
+ cookie?: never;
1893
+ };
1894
+ /**
1895
+ * Get my enabled assets
1896
+ * @description Returns the application's dashboard-enabled assets paired with the authenticated wallet's on-chain trustline state (code, type, issuer, name, trustlineEstablished, limit). No balances. Native XLM is always included with trustlineEstablished=true. Lets the SDK know which trustlines the wallet still needs to add. The wallet and network are derived from the session — no parameters required.
1897
+ */
1898
+ get: operations["getWalletAssets"];
1899
+ put?: never;
1900
+ post?: never;
1901
+ delete?: never;
1902
+ options?: never;
1903
+ head?: never;
1904
+ patch?: never;
1905
+ trace?: never;
1906
+ };
1907
+ "/wallet/{publicKey}/balance": {
1908
+ parameters: {
1909
+ query?: never;
1910
+ header?: never;
1911
+ path?: never;
1912
+ cookie?: never;
1913
+ };
1914
+ /**
1915
+ * Get any wallet balances
1916
+ * @description Returns the real on-chain balances of any Stellar account on the requested network, enumerated via Horizon. Not scoped to the application — every established trustline (native included) is returned.
1917
+ */
1918
+ get: operations["getWalletByPublicKeyBalance"];
1919
+ put?: never;
1920
+ post?: never;
1921
+ delete?: never;
1922
+ options?: never;
1923
+ head?: never;
1924
+ patch?: never;
1925
+ trace?: never;
1926
+ };
1605
1927
  "/kyc/status": {
1606
1928
  parameters: {
1607
1929
  query?: never;
@@ -2478,7 +2800,7 @@ interface operations {
2478
2800
  };
2479
2801
  };
2480
2802
  };
2481
- postAuthLogin: {
2803
+ postAuthPasskeyChallenge: {
2482
2804
  parameters: {
2483
2805
  query?: never;
2484
2806
  header?: never;
@@ -2489,20 +2811,11 @@ interface operations {
2489
2811
  content: {
2490
2812
  "application/json": {
2491
2813
  clientSessionId: string;
2492
- dpopJwk?: {
2493
- /** @constant */
2494
- kty: "EC";
2495
- /** @constant */
2496
- crv: "P-256";
2497
- x: string;
2498
- y: string;
2499
- };
2500
- deviceLabel?: string;
2501
2814
  };
2502
2815
  };
2503
2816
  };
2504
2817
  responses: {
2505
- /** @description Authenticated */
2818
+ /** @description Challenge issued */
2506
2819
  200: {
2507
2820
  headers: {
2508
2821
  [name: string]: unknown;
@@ -2510,47 +2823,12 @@ interface operations {
2510
2823
  content: {
2511
2824
  "application/json": {
2512
2825
  /** @constant */
2513
- code: "SDK_LOGIN_SUCCESS";
2826
+ code: "SDK_PASSKEY_CHALLENGE_CREATED";
2514
2827
  /** @constant */
2515
2828
  success: true;
2516
2829
  content: {
2517
2830
  clientSessionId: string;
2518
- userId: string | null;
2519
- status: string;
2520
- token: {
2521
- accessToken: string;
2522
- refreshToken: string;
2523
- expiresAt: number;
2524
- };
2525
- user: {
2526
- id?: string;
2527
- ready: boolean;
2528
- };
2529
- wallet: {
2530
- publicKey: string | null;
2531
- existsOnStellar?: boolean;
2532
- createdAt?: number;
2533
- };
2534
- data: {
2535
- mail: string;
2536
- first_name: string;
2537
- last_name: string;
2538
- avatar: string;
2539
- providers: {
2540
- email: {
2541
- address: string;
2542
- } | null;
2543
- google: {
2544
- id: string;
2545
- } | null;
2546
- github: {
2547
- id: string;
2548
- } | null;
2549
- wallet: {
2550
- address: string;
2551
- } | null;
2552
- };
2553
- };
2831
+ challenge: string;
2554
2832
  };
2555
2833
  };
2556
2834
  };
@@ -2622,7 +2900,7 @@ interface operations {
2622
2900
  };
2623
2901
  };
2624
2902
  };
2625
- postAuthRefresh: {
2903
+ postAuthPasskeyRegister: {
2626
2904
  parameters: {
2627
2905
  query?: never;
2628
2906
  header?: never;
@@ -2632,12 +2910,15 @@ interface operations {
2632
2910
  requestBody: {
2633
2911
  content: {
2634
2912
  "application/json": {
2635
- refreshToken: string;
2913
+ clientSessionId: string;
2914
+ response: {
2915
+ [key: string]: unknown;
2916
+ };
2636
2917
  };
2637
2918
  };
2638
2919
  };
2639
2920
  responses: {
2640
- /** @description New token pair issued */
2921
+ /** @description Passkey registered, smart wallet created */
2641
2922
  200: {
2642
2923
  headers: {
2643
2924
  [name: string]: unknown;
@@ -2645,15 +2926,12 @@ interface operations {
2645
2926
  content: {
2646
2927
  "application/json": {
2647
2928
  /** @constant */
2648
- code: "SDK_TOKEN_REFRESHED";
2929
+ code: "SDK_PASSKEY_REGISTERED";
2649
2930
  /** @constant */
2650
2931
  success: true;
2651
2932
  content: {
2652
- token: {
2653
- accessToken: string;
2654
- refreshToken: string;
2655
- expiresAt: number;
2656
- };
2933
+ clientSessionId: string;
2934
+ contractAddress: string;
2657
2935
  };
2658
2936
  };
2659
2937
  };
@@ -2725,7 +3003,7 @@ interface operations {
2725
3003
  };
2726
3004
  };
2727
3005
  };
2728
- postAuthLogout: {
3006
+ postAuthPasskeyLogin: {
2729
3007
  parameters: {
2730
3008
  query?: never;
2731
3009
  header?: never;
@@ -2735,12 +3013,15 @@ interface operations {
2735
3013
  requestBody: {
2736
3014
  content: {
2737
3015
  "application/json": {
2738
- everywhere?: boolean;
3016
+ clientSessionId: string;
3017
+ response: {
3018
+ [key: string]: unknown;
3019
+ };
2739
3020
  };
2740
3021
  };
2741
3022
  };
2742
3023
  responses: {
2743
- /** @description Sessions revoked */
3024
+ /** @description Passkey authenticated */
2744
3025
  200: {
2745
3026
  headers: {
2746
3027
  [name: string]: unknown;
@@ -2748,15 +3029,29 @@ interface operations {
2748
3029
  content: {
2749
3030
  "application/json": {
2750
3031
  /** @constant */
2751
- code: "SDK_LOGOUT_SUCCESS";
3032
+ code: "SDK_PASSKEY_AUTHENTICATED";
2752
3033
  /** @constant */
2753
3034
  success: true;
2754
3035
  content: {
2755
- revoked: number;
3036
+ clientSessionId: string;
3037
+ contractAddress: string;
2756
3038
  };
2757
3039
  };
2758
3040
  };
2759
3041
  };
3042
+ /** @description Validation error */
3043
+ 400: {
3044
+ headers: {
3045
+ [name: string]: unknown;
3046
+ };
3047
+ content: {
3048
+ "application/json": {
3049
+ /** @constant */
3050
+ success: false;
3051
+ code: string;
3052
+ };
3053
+ };
3054
+ };
2760
3055
  /** @description Unauthorized */
2761
3056
  401: {
2762
3057
  headers: {
@@ -2770,27 +3065,366 @@ interface operations {
2770
3065
  };
2771
3066
  };
2772
3067
  };
2773
- };
2774
- };
2775
- getAuthSessions: {
2776
- parameters: {
2777
- query?: never;
2778
- header?: never;
2779
- path?: never;
2780
- cookie?: never;
2781
- };
2782
- requestBody?: never;
2783
- responses: {
2784
- /** @description Sessions list */
2785
- 200: {
3068
+ /** @description Forbidden */
3069
+ 403: {
2786
3070
  headers: {
2787
3071
  [name: string]: unknown;
2788
3072
  };
2789
3073
  content: {
2790
3074
  "application/json": {
2791
3075
  /** @constant */
2792
- code: "SDK_SESSIONS_LIST";
2793
- /** @constant */
3076
+ success: false;
3077
+ code: string;
3078
+ };
3079
+ };
3080
+ };
3081
+ /** @description Not found */
3082
+ 404: {
3083
+ headers: {
3084
+ [name: string]: unknown;
3085
+ };
3086
+ content: {
3087
+ "application/json": {
3088
+ /** @constant */
3089
+ success: false;
3090
+ code: string;
3091
+ };
3092
+ };
3093
+ };
3094
+ /** @description Gone (expired) */
3095
+ 410: {
3096
+ headers: {
3097
+ [name: string]: unknown;
3098
+ };
3099
+ content: {
3100
+ "application/json": {
3101
+ /** @constant */
3102
+ success: false;
3103
+ code: string;
3104
+ };
3105
+ };
3106
+ };
3107
+ };
3108
+ };
3109
+ postAuthLogin: {
3110
+ parameters: {
3111
+ query?: never;
3112
+ header?: never;
3113
+ path?: never;
3114
+ cookie?: never;
3115
+ };
3116
+ requestBody: {
3117
+ content: {
3118
+ "application/json": {
3119
+ clientSessionId: string;
3120
+ dpopJwk?: {
3121
+ /** @constant */
3122
+ kty: "EC";
3123
+ /** @constant */
3124
+ crv: "P-256";
3125
+ x: string;
3126
+ y: string;
3127
+ };
3128
+ deviceLabel?: string;
3129
+ };
3130
+ };
3131
+ };
3132
+ responses: {
3133
+ /** @description Authenticated */
3134
+ 200: {
3135
+ headers: {
3136
+ [name: string]: unknown;
3137
+ };
3138
+ content: {
3139
+ "application/json": {
3140
+ /** @constant */
3141
+ code: "SDK_LOGIN_SUCCESS";
3142
+ /** @constant */
3143
+ success: true;
3144
+ content: {
3145
+ clientSessionId: string;
3146
+ userId: string | null;
3147
+ status: string;
3148
+ token: {
3149
+ accessToken: string;
3150
+ refreshToken: string;
3151
+ expiresAt: number;
3152
+ };
3153
+ user: {
3154
+ id?: string;
3155
+ ready: boolean;
3156
+ };
3157
+ wallet: {
3158
+ /** @enum {string} */
3159
+ type: "custodial" | "smart" | "external";
3160
+ publicKey: string | null;
3161
+ address: string | null;
3162
+ existsOnStellar?: boolean;
3163
+ createdAt?: number;
3164
+ linkedAt?: number;
3165
+ network?: string;
3166
+ deployTxHash?: string | null;
3167
+ };
3168
+ data: {
3169
+ mail: string;
3170
+ first_name: string;
3171
+ last_name: string;
3172
+ avatar: string;
3173
+ providers: {
3174
+ email: {
3175
+ address: string;
3176
+ } | null;
3177
+ google: {
3178
+ id: string;
3179
+ } | null;
3180
+ github: {
3181
+ id: string;
3182
+ } | null;
3183
+ wallet: {
3184
+ address: string;
3185
+ } | null;
3186
+ };
3187
+ };
3188
+ };
3189
+ };
3190
+ };
3191
+ };
3192
+ /** @description Validation error */
3193
+ 400: {
3194
+ headers: {
3195
+ [name: string]: unknown;
3196
+ };
3197
+ content: {
3198
+ "application/json": {
3199
+ /** @constant */
3200
+ success: false;
3201
+ code: string;
3202
+ };
3203
+ };
3204
+ };
3205
+ /** @description Unauthorized */
3206
+ 401: {
3207
+ headers: {
3208
+ [name: string]: unknown;
3209
+ };
3210
+ content: {
3211
+ "application/json": {
3212
+ /** @constant */
3213
+ success: false;
3214
+ code: string;
3215
+ };
3216
+ };
3217
+ };
3218
+ /** @description Forbidden */
3219
+ 403: {
3220
+ headers: {
3221
+ [name: string]: unknown;
3222
+ };
3223
+ content: {
3224
+ "application/json": {
3225
+ /** @constant */
3226
+ success: false;
3227
+ code: string;
3228
+ };
3229
+ };
3230
+ };
3231
+ /** @description Not found */
3232
+ 404: {
3233
+ headers: {
3234
+ [name: string]: unknown;
3235
+ };
3236
+ content: {
3237
+ "application/json": {
3238
+ /** @constant */
3239
+ success: false;
3240
+ code: string;
3241
+ };
3242
+ };
3243
+ };
3244
+ /** @description Gone (expired) */
3245
+ 410: {
3246
+ headers: {
3247
+ [name: string]: unknown;
3248
+ };
3249
+ content: {
3250
+ "application/json": {
3251
+ /** @constant */
3252
+ success: false;
3253
+ code: string;
3254
+ };
3255
+ };
3256
+ };
3257
+ };
3258
+ };
3259
+ postAuthRefresh: {
3260
+ parameters: {
3261
+ query?: never;
3262
+ header?: never;
3263
+ path?: never;
3264
+ cookie?: never;
3265
+ };
3266
+ requestBody: {
3267
+ content: {
3268
+ "application/json": {
3269
+ refreshToken: string;
3270
+ };
3271
+ };
3272
+ };
3273
+ responses: {
3274
+ /** @description New token pair issued */
3275
+ 200: {
3276
+ headers: {
3277
+ [name: string]: unknown;
3278
+ };
3279
+ content: {
3280
+ "application/json": {
3281
+ /** @constant */
3282
+ code: "SDK_TOKEN_REFRESHED";
3283
+ /** @constant */
3284
+ success: true;
3285
+ content: {
3286
+ token: {
3287
+ accessToken: string;
3288
+ refreshToken: string;
3289
+ expiresAt: number;
3290
+ };
3291
+ };
3292
+ };
3293
+ };
3294
+ };
3295
+ /** @description Validation error */
3296
+ 400: {
3297
+ headers: {
3298
+ [name: string]: unknown;
3299
+ };
3300
+ content: {
3301
+ "application/json": {
3302
+ /** @constant */
3303
+ success: false;
3304
+ code: string;
3305
+ };
3306
+ };
3307
+ };
3308
+ /** @description Unauthorized */
3309
+ 401: {
3310
+ headers: {
3311
+ [name: string]: unknown;
3312
+ };
3313
+ content: {
3314
+ "application/json": {
3315
+ /** @constant */
3316
+ success: false;
3317
+ code: string;
3318
+ };
3319
+ };
3320
+ };
3321
+ /** @description Forbidden */
3322
+ 403: {
3323
+ headers: {
3324
+ [name: string]: unknown;
3325
+ };
3326
+ content: {
3327
+ "application/json": {
3328
+ /** @constant */
3329
+ success: false;
3330
+ code: string;
3331
+ };
3332
+ };
3333
+ };
3334
+ /** @description Not found */
3335
+ 404: {
3336
+ headers: {
3337
+ [name: string]: unknown;
3338
+ };
3339
+ content: {
3340
+ "application/json": {
3341
+ /** @constant */
3342
+ success: false;
3343
+ code: string;
3344
+ };
3345
+ };
3346
+ };
3347
+ /** @description Gone (expired) */
3348
+ 410: {
3349
+ headers: {
3350
+ [name: string]: unknown;
3351
+ };
3352
+ content: {
3353
+ "application/json": {
3354
+ /** @constant */
3355
+ success: false;
3356
+ code: string;
3357
+ };
3358
+ };
3359
+ };
3360
+ };
3361
+ };
3362
+ postAuthLogout: {
3363
+ parameters: {
3364
+ query?: never;
3365
+ header?: never;
3366
+ path?: never;
3367
+ cookie?: never;
3368
+ };
3369
+ requestBody: {
3370
+ content: {
3371
+ "application/json": {
3372
+ everywhere?: boolean;
3373
+ };
3374
+ };
3375
+ };
3376
+ responses: {
3377
+ /** @description Sessions revoked */
3378
+ 200: {
3379
+ headers: {
3380
+ [name: string]: unknown;
3381
+ };
3382
+ content: {
3383
+ "application/json": {
3384
+ /** @constant */
3385
+ code: "SDK_LOGOUT_SUCCESS";
3386
+ /** @constant */
3387
+ success: true;
3388
+ content: {
3389
+ revoked: number;
3390
+ };
3391
+ };
3392
+ };
3393
+ };
3394
+ /** @description Unauthorized */
3395
+ 401: {
3396
+ headers: {
3397
+ [name: string]: unknown;
3398
+ };
3399
+ content: {
3400
+ "application/json": {
3401
+ /** @constant */
3402
+ success: false;
3403
+ code: string;
3404
+ };
3405
+ };
3406
+ };
3407
+ };
3408
+ };
3409
+ getAuthSessions: {
3410
+ parameters: {
3411
+ query?: never;
3412
+ header?: never;
3413
+ path?: never;
3414
+ cookie?: never;
3415
+ };
3416
+ requestBody?: never;
3417
+ responses: {
3418
+ /** @description Sessions list */
3419
+ 200: {
3420
+ headers: {
3421
+ [name: string]: unknown;
3422
+ };
3423
+ content: {
3424
+ "application/json": {
3425
+ /** @constant */
3426
+ code: "SDK_SESSIONS_LIST";
3427
+ /** @constant */
2794
3428
  success: true;
2795
3429
  content: {
2796
3430
  sessions: {
@@ -2822,6 +3456,64 @@ interface operations {
2822
3456
  };
2823
3457
  };
2824
3458
  };
3459
+ getAuthSessionResume: {
3460
+ parameters: {
3461
+ query?: never;
3462
+ header?: never;
3463
+ path?: never;
3464
+ cookie?: never;
3465
+ };
3466
+ requestBody?: never;
3467
+ responses: {
3468
+ /** @description Session valid; profile returned */
3469
+ 200: {
3470
+ headers: {
3471
+ [name: string]: unknown;
3472
+ };
3473
+ content: {
3474
+ "application/json": {
3475
+ /** @constant */
3476
+ code: "SDK_SESSION_RESUMED";
3477
+ /** @constant */
3478
+ success: true;
3479
+ content: {
3480
+ mail: string;
3481
+ first_name: string;
3482
+ last_name: string;
3483
+ avatar: string;
3484
+ providers: {
3485
+ email: {
3486
+ address: string;
3487
+ } | null;
3488
+ google: {
3489
+ id: string;
3490
+ } | null;
3491
+ github: {
3492
+ id: string;
3493
+ } | null;
3494
+ wallet: {
3495
+ address: string;
3496
+ } | null;
3497
+ };
3498
+ };
3499
+ };
3500
+ };
3501
+ };
3502
+ /** @description Unauthorized */
3503
+ 401: {
3504
+ headers: {
3505
+ [name: string]: unknown;
3506
+ };
3507
+ content: {
3508
+ "application/json": {
3509
+ /** @constant */
3510
+ success: false;
3511
+ code: string;
3512
+ };
3513
+ };
3514
+ };
3515
+ };
3516
+ };
2825
3517
  deleteAuthSessionsByFamilyId: {
2826
3518
  parameters: {
2827
3519
  query?: never;
@@ -3008,7 +3700,8 @@ interface operations {
3008
3700
  "application/json": {
3009
3701
  /** @enum {string} */
3010
3702
  network: "testnet" | "mainnet";
3011
- publicKey: string;
3703
+ publicKey?: string;
3704
+ address?: string;
3012
3705
  options?: {
3013
3706
  timeoutSec?: number;
3014
3707
  memo?: {
@@ -3219,7 +3912,7 @@ interface operations {
3219
3912
  /** @constant */
3220
3913
  success: true;
3221
3914
  content: {
3222
- unsignedXdr: string;
3915
+ unsignedXdr?: string;
3223
3916
  networkPassphrase: string;
3224
3917
  estimatedFee: string;
3225
3918
  summary: {
@@ -3228,6 +3921,12 @@ interface operations {
3228
3921
  network: string;
3229
3922
  fee: string;
3230
3923
  };
3924
+ smart?: {
3925
+ digest: string;
3926
+ entryXdr: string;
3927
+ funcXdr: string;
3928
+ credentialId: string;
3929
+ };
3231
3930
  };
3232
3931
  };
3233
3932
  };
@@ -3285,7 +3984,8 @@ interface operations {
3285
3984
  "application/json": {
3286
3985
  /** @enum {string} */
3287
3986
  network: "testnet" | "mainnet";
3288
- publicKey: string;
3987
+ publicKey?: string;
3988
+ address?: string;
3289
3989
  unsignedXdr: string;
3290
3990
  };
3291
3991
  };
@@ -3378,7 +4078,8 @@ interface operations {
3378
4078
  "application/json": {
3379
4079
  /** @enum {string} */
3380
4080
  network: "testnet" | "mainnet";
3381
- publicKey: string;
4081
+ publicKey?: string;
4082
+ address?: string;
3382
4083
  unsignedXdr: string;
3383
4084
  idempotencyKey?: string;
3384
4085
  };
@@ -3469,8 +4170,18 @@ interface operations {
3469
4170
  "application/json": {
3470
4171
  /** @enum {string} */
3471
4172
  network: "testnet" | "mainnet";
3472
- publicKey: string;
3473
- signedXdr: string;
4173
+ publicKey?: string;
4174
+ address?: string;
4175
+ signedXdr?: string;
4176
+ smart?: {
4177
+ entryXdr: string;
4178
+ funcXdr: string;
4179
+ assertion: {
4180
+ authenticatorData: string;
4181
+ clientDataJSON: string;
4182
+ signature: string;
4183
+ };
4184
+ };
3474
4185
  idempotencyKey?: string;
3475
4186
  };
3476
4187
  };
@@ -3550,7 +4261,8 @@ interface operations {
3550
4261
  "application/json": {
3551
4262
  /** @enum {string} */
3552
4263
  network: "testnet" | "mainnet";
3553
- publicKey: string;
4264
+ publicKey?: string;
4265
+ address?: string;
3554
4266
  options?: {
3555
4267
  timeoutSec?: number;
3556
4268
  memo?: {
@@ -4149,13 +4861,148 @@ interface operations {
4149
4861
  };
4150
4862
  };
4151
4863
  getWalletBalance: {
4864
+ parameters: {
4865
+ query?: never;
4866
+ header?: never;
4867
+ path?: never;
4868
+ cookie?: never;
4869
+ };
4870
+ requestBody?: never;
4871
+ responses: {
4872
+ /** @description Account balances */
4873
+ 200: {
4874
+ headers: {
4875
+ [name: string]: unknown;
4876
+ };
4877
+ content: {
4878
+ "application/json": {
4879
+ /** @constant */
4880
+ code: "SDK_WALLET_BALANCE";
4881
+ /** @constant */
4882
+ success: true;
4883
+ content: {
4884
+ publicKey: string;
4885
+ /** @enum {string} */
4886
+ network: "testnet" | "mainnet";
4887
+ exists: boolean;
4888
+ balances: {
4889
+ /** @enum {string} */
4890
+ type: "native" | "credit_alphanum4" | "credit_alphanum12";
4891
+ code: string;
4892
+ issuer?: string;
4893
+ balance: string;
4894
+ available: string;
4895
+ limit?: string;
4896
+ enabledInApp: boolean;
4897
+ trustlineRemoved: boolean;
4898
+ }[];
4899
+ };
4900
+ };
4901
+ };
4902
+ };
4903
+ /** @description Validation error */
4904
+ 400: {
4905
+ headers: {
4906
+ [name: string]: unknown;
4907
+ };
4908
+ content: {
4909
+ "application/json": {
4910
+ /** @constant */
4911
+ success: false;
4912
+ code: string;
4913
+ };
4914
+ };
4915
+ };
4916
+ /** @description Unauthorized */
4917
+ 401: {
4918
+ headers: {
4919
+ [name: string]: unknown;
4920
+ };
4921
+ content: {
4922
+ "application/json": {
4923
+ /** @constant */
4924
+ success: false;
4925
+ code: string;
4926
+ };
4927
+ };
4928
+ };
4929
+ };
4930
+ };
4931
+ getWalletAssets: {
4932
+ parameters: {
4933
+ query?: never;
4934
+ header?: never;
4935
+ path?: never;
4936
+ cookie?: never;
4937
+ };
4938
+ requestBody?: never;
4939
+ responses: {
4940
+ /** @description Enabled assets with trustline state */
4941
+ 200: {
4942
+ headers: {
4943
+ [name: string]: unknown;
4944
+ };
4945
+ content: {
4946
+ "application/json": {
4947
+ /** @constant */
4948
+ code: "SDK_WALLET_ASSETS";
4949
+ /** @constant */
4950
+ success: true;
4951
+ content: {
4952
+ publicKey: string;
4953
+ /** @enum {string} */
4954
+ network: "testnet" | "mainnet";
4955
+ exists: boolean;
4956
+ assets: {
4957
+ /** @enum {string} */
4958
+ type: "native" | "credit_alphanum4" | "credit_alphanum12";
4959
+ code: string;
4960
+ issuer?: string;
4961
+ name?: string;
4962
+ trustlineEstablished: boolean;
4963
+ limit?: string;
4964
+ }[];
4965
+ };
4966
+ };
4967
+ };
4968
+ };
4969
+ /** @description Validation error */
4970
+ 400: {
4971
+ headers: {
4972
+ [name: string]: unknown;
4973
+ };
4974
+ content: {
4975
+ "application/json": {
4976
+ /** @constant */
4977
+ success: false;
4978
+ code: string;
4979
+ };
4980
+ };
4981
+ };
4982
+ /** @description Unauthorized */
4983
+ 401: {
4984
+ headers: {
4985
+ [name: string]: unknown;
4986
+ };
4987
+ content: {
4988
+ "application/json": {
4989
+ /** @constant */
4990
+ success: false;
4991
+ code: string;
4992
+ };
4993
+ };
4994
+ };
4995
+ };
4996
+ };
4997
+ getWalletByPublicKeyBalance: {
4152
4998
  parameters: {
4153
4999
  query: {
4154
5000
  network: "testnet" | "mainnet";
4155
- publicKey: string;
4156
5001
  };
4157
5002
  header?: never;
4158
- path?: never;
5003
+ path: {
5004
+ publicKey: string;
5005
+ };
4159
5006
  cookie?: never;
4160
5007
  };
4161
5008
  requestBody?: never;
@@ -4997,4 +5844,4 @@ declare function listDistributionRules(api: PollarApiClient): Promise<Distributi
4997
5844
  */
4998
5845
  declare function claimDistributionRule(api: PollarApiClient, body: DistributionClaimBody): Promise<DistributionClaimContent>;
4999
5846
 
5000
- export { AUTH_ERROR_CODES, type AdapterFn, AlbedoAdapter, type AuthErrorCode, type AuthOpenContext, type AuthState, type AuthUrlOpener, type BuildOutcome, type BuildProofArgs, type ConnectWalletResponse, type DistributionClaimBody, type DistributionClaimContent, type DistributionRule, type DistributionRulesState, FreighterAdapter, type KeyManager, type KycFlow, type KycLevel, type KycProvider, type KycStartBody, type KycStartResponse, type KycStatus, type LocalStorageAdapterOptions, type NetworkState, OnStorageDegrade, type PaymentInstructions, type PollarAdapter, type PollarAdapters, type PollarApiClient, type PollarApplicationConfigContent, type PollarApplicationConfigResponse, PollarClient, type PollarClientConfig, PollarFlowError, type PollarLoginOptions, type PollarPersistedSession, type PollarUserProfile, type PublicEcJwk, type RampDirection, type RampQuote, type RampTxStatus, type RampsOfframpBody, type RampsOfframpResponse, type RampsOnrampBody, type RampsOnrampResponse, type RampsQuoteQuery, type RampsQuoteResponse, type RampsTransactionResponse, type RulePeriod, type SessionInfo, type SignAuthEntryOptions, type SignAuthEntryResponse, type SignOutcome, type SignTransactionOptions, type SignTransactionResponse, type StellarBalance, StellarClient, type StellarClientConfig, type StellarNetwork, Storage, type SubmitOutcome, type TransactionState, type TxBuildBody, type TxBuildContent, type TxBuildResponse, type TxBuildSignSubmitBody, type TxBuildSignSubmitContent, type TxBuildSignSubmitResponse, type TxErrorPhase, type TxHistoryContent, type TxHistoryParams, type TxHistoryRecord, type TxHistoryState, type TxSignAndSendBody, type TxSignBody, type TxSignContent, type TxSignResponse, type TxSignSendResponse, type TxSubmitSignedBody, type WalletAdapter, type WalletAdapterResolver, type WalletBalanceContent, type WalletBalanceRecord, type WalletBalanceState, type WalletId, WalletType, WebCryptoKeyManager, buildProof, canonicalEcJwk, claimDistributionRule, computeJwkThumbprint, createLocalStorageAdapter, createMemoryAdapter, createOffRamp, createOnRamp, defaultKeyManager, defaultStorage, getKycProviders, getKycStatus, getRampTransaction, getRampsQuote, isValidSession, listDistributionRules, normalizeHtu, pollKycStatus, pollRampTransaction, type paths as pollarPaths, resolveKyc, startKyc };
5847
+ export { AUTH_ERROR_CODES, type AdapterFn, AlbedoAdapter, type AuthErrorCode, type AuthOpenContext, type AuthState, type AuthUrlOpener, type BuildOutcome, type BuildProofArgs, type ConnectWalletResponse, type DistributionClaimBody, type DistributionClaimContent, type DistributionRule, type DistributionRulesState, type EnabledAssetRecord, type EnabledAssetsState, FreighterAdapter, type KeyManager, type KycFlow, type KycLevel, type KycProvider, type KycStartBody, type KycStartResponse, type KycStatus, type LocalStorageAdapterOptions, type NetworkState, OnStorageDegrade, POLLAR_CORE_VERSION, type PasskeyCeremony, type PasskeySigner, type PaymentInstructions, type PollarAdapter, type PollarAdapters, type PollarApiClient, type PollarApplicationConfigContent, type PollarApplicationConfigResponse, PollarClient, type PollarClientConfig, PollarFlowError, type PollarLoginOptions, type PollarPersistedSession, type PollarUserProfile, type PublicEcJwk, type RampDirection, type RampQuote, type RampTxStatus, type RampsOfframpBody, type RampsOfframpResponse, type RampsOnrampBody, type RampsOnrampResponse, type RampsQuoteQuery, type RampsQuoteResponse, type RampsTransactionResponse, type RulePeriod, type SessionInfo, type SessionsState, type SignAuthEntryOptions, type SignAuthEntryResponse, type SignOutcome, type SignTransactionOptions, type SignTransactionResponse, type StellarBalance, StellarClient, type StellarClientConfig, type StellarNetwork, Storage, type SubmitOutcome, type TransactionState, type TxBuildBody, type TxBuildContent, type TxBuildResponse, type TxBuildSignSubmitBody, type TxBuildSignSubmitContent, type TxBuildSignSubmitResponse, type TxErrorPhase, type TxHistoryContent, type TxHistoryParams, type TxHistoryRecord, type TxHistoryState, type TxSignAndSendBody, type TxSignBody, type TxSignContent, type TxSignResponse, type TxSignSendResponse, type TxSubmitSignedBody, type WalletAdapter, type WalletAdapterResolver, type WalletAssetsContent, type WalletBalanceContent, type WalletBalanceRecord, type WalletBalanceState, type WalletId, WalletType, WebCryptoKeyManager, buildProof, canonicalEcJwk, claimDistributionRule, computeJwkThumbprint, createLocalStorageAdapter, createMemoryAdapter, createOffRamp, createOnRamp, defaultKeyManager, defaultStorage, getKycProviders, getKycStatus, getRampTransaction, getRampsQuote, isValidSession, listDistributionRules, normalizeHtu, pollKycStatus, pollRampTransaction, type paths as pollarPaths, resolveKyc, startKyc };