@moon-x/core 0.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 (55) hide show
  1. package/README.md +39 -0
  2. package/dist/chain-C9dvKXUY.d.mts +48 -0
  3. package/dist/chain-C9dvKXUY.d.ts +48 -0
  4. package/dist/chunk-264CEGDS.mjs +46 -0
  5. package/dist/chunk-CDT4MC7S.mjs +1532 -0
  6. package/dist/chunk-CMYR6AOY.mjs +0 -0
  7. package/dist/chunk-GQKIA37O.mjs +20 -0
  8. package/dist/chunk-IMLBIIJ4.mjs +36 -0
  9. package/dist/chunk-MOREUKOG.mjs +18 -0
  10. package/dist/chunk-SOKLPX7V.mjs +270 -0
  11. package/dist/index.d.mts +4 -0
  12. package/dist/index.d.ts +4 -0
  13. package/dist/index.js +402 -0
  14. package/dist/index.mjs +33 -0
  15. package/dist/interfaces-9k0eKCc4.d.ts +120 -0
  16. package/dist/interfaces-fNhwnCeY.d.mts +120 -0
  17. package/dist/lib/index.d.mts +410 -0
  18. package/dist/lib/index.d.ts +410 -0
  19. package/dist/lib/index.js +1622 -0
  20. package/dist/lib/index.mjs +89 -0
  21. package/dist/passkey-cache-B9PT3AWX.d.mts +47 -0
  22. package/dist/passkey-cache-B9PT3AWX.d.ts +47 -0
  23. package/dist/passkey-metadata-QqFF2SWQ.d.mts +25 -0
  24. package/dist/passkey-metadata-QqFF2SWQ.d.ts +25 -0
  25. package/dist/post-message-C_99BCBh.d.mts +70 -0
  26. package/dist/post-message-C_99BCBh.d.ts +70 -0
  27. package/dist/react/ethereum.d.mts +26 -0
  28. package/dist/react/ethereum.d.ts +26 -0
  29. package/dist/react/ethereum.js +99 -0
  30. package/dist/react/ethereum.mjs +56 -0
  31. package/dist/react/index.d.mts +182 -0
  32. package/dist/react/index.d.ts +182 -0
  33. package/dist/react/index.js +586 -0
  34. package/dist/react/index.mjs +328 -0
  35. package/dist/react/solana.d.mts +17 -0
  36. package/dist/react/solana.d.ts +17 -0
  37. package/dist/react/solana.js +75 -0
  38. package/dist/react/solana.mjs +35 -0
  39. package/dist/sdk/index.d.mts +126 -0
  40. package/dist/sdk/index.d.ts +126 -0
  41. package/dist/sdk/index.js +864 -0
  42. package/dist/sdk/index.mjs +579 -0
  43. package/dist/types/index.d.mts +1190 -0
  44. package/dist/types/index.d.ts +1190 -0
  45. package/dist/types/index.js +64 -0
  46. package/dist/types/index.mjs +10 -0
  47. package/dist/utils/index.d.mts +11 -0
  48. package/dist/utils/index.d.ts +11 -0
  49. package/dist/utils/index.js +365 -0
  50. package/dist/utils/index.mjs +25 -0
  51. package/dist/web/index.d.mts +20 -0
  52. package/dist/web/index.d.ts +20 -0
  53. package/dist/web/index.js +470 -0
  54. package/dist/web/index.mjs +155 -0
  55. package/package.json +111 -0
@@ -0,0 +1,328 @@
1
+ import {
2
+ formatPasskeyLabel,
3
+ resolvePasskeyMetadata
4
+ } from "../chunk-CDT4MC7S.mjs";
5
+ import "../chunk-GQKIA37O.mjs";
6
+ import {
7
+ SDKProvider,
8
+ useMoonKeySDK
9
+ } from "../chunk-MOREUKOG.mjs";
10
+
11
+ // src/react/use-login-with-email.ts
12
+ import { useCallback, useEffect, useRef, useState } from "react";
13
+ var useLoginWithEmail = (callbacks) => {
14
+ const sdk = useMoonKeySDK();
15
+ const [state, setState] = useState({ status: "idle" });
16
+ const callbacksRef = useRef(callbacks);
17
+ useEffect(() => {
18
+ callbacksRef.current = callbacks;
19
+ });
20
+ const sendCode = useCallback(
21
+ async (params) => {
22
+ setState({ status: "sending" });
23
+ try {
24
+ await sdk.sendCode(params);
25
+ setState({ status: "awaiting-code", email: params.email });
26
+ } catch (e) {
27
+ const err = e instanceof Error ? e : new Error(String(e));
28
+ setState({ status: "error", error: err });
29
+ callbacksRef.current?.onError?.(err);
30
+ throw err;
31
+ }
32
+ },
33
+ [sdk]
34
+ );
35
+ const loginWithCode = useCallback(
36
+ async (params) => {
37
+ setState({ status: "verifying" });
38
+ try {
39
+ await sdk.loginWithCode(params);
40
+ const user = await sdk.getCurrentSession?.();
41
+ setState({ status: "complete" });
42
+ callbacksRef.current?.onComplete?.(user);
43
+ } catch (e) {
44
+ const err = e instanceof Error ? e : new Error(String(e));
45
+ setState({ status: "error", error: err });
46
+ callbacksRef.current?.onError?.(err);
47
+ throw err;
48
+ }
49
+ },
50
+ [sdk]
51
+ );
52
+ const reset = useCallback(() => setState({ status: "idle" }), []);
53
+ return { state, sendCode, loginWithCode, reset };
54
+ };
55
+
56
+ // src/react/use-register-passkey.ts
57
+ import { useCallback as useCallback2, useState as useState2 } from "react";
58
+ var useRegisterPasskey = () => {
59
+ const sdk = useMoonKeySDK();
60
+ const [isRegistering, setIsRegistering] = useState2(false);
61
+ const [error, setError] = useState2(null);
62
+ const registerPasskey = useCallback2(
63
+ async (params) => {
64
+ if (!sdk.registerPasskey) {
65
+ const msg = "registerPasskey not available on this SDK";
66
+ setError(msg);
67
+ throw new Error(msg);
68
+ }
69
+ setIsRegistering(true);
70
+ setError(null);
71
+ try {
72
+ const result = await sdk.registerPasskey(params);
73
+ return result;
74
+ } catch (err) {
75
+ const msg = err instanceof Error ? err.message : String(err);
76
+ setError(msg);
77
+ throw err;
78
+ } finally {
79
+ setIsRegistering(false);
80
+ }
81
+ },
82
+ [sdk]
83
+ );
84
+ return { registerPasskey, isRegistering, error };
85
+ };
86
+
87
+ // src/react/use-user.ts
88
+ import { useCallback as useCallback3, useState as useState3 } from "react";
89
+ var useUser = () => {
90
+ const sdk = useMoonKeySDK();
91
+ const [loading, setLoading] = useState3(false);
92
+ const refresh = useCallback3(async () => {
93
+ setLoading(true);
94
+ try {
95
+ if (sdk.refreshUser) {
96
+ await sdk.refreshUser();
97
+ } else {
98
+ await sdk.getUser();
99
+ }
100
+ } finally {
101
+ setLoading(false);
102
+ }
103
+ }, [sdk]);
104
+ return {
105
+ // `user` returned as `any` to preserve the loose typing both demos
106
+ // already rely on (`.email`, `.user_id`, `.first_name`, etc.). The
107
+ // concrete shape lives in the iframe-app — apps that want stricter
108
+ // types should narrow at the call site.
109
+ user: sdk.user ?? null,
110
+ loading,
111
+ refresh,
112
+ refreshUser: refresh
113
+ };
114
+ };
115
+
116
+ // src/react/use-wallets.ts
117
+ import { useCallback as useCallback4, useEffect as useEffect2, useRef as useRef2, useState as useState4 } from "react";
118
+ var useWallets = (walletType) => {
119
+ const sdk = useMoonKeySDK();
120
+ const sdkRef = useRef2(sdk);
121
+ sdkRef.current = sdk;
122
+ const [wallets, setWallets] = useState4([]);
123
+ const [loading, setLoading] = useState4(false);
124
+ const [error, setError] = useState4(null);
125
+ const isAuthenticated = !!sdk.isAuthenticated;
126
+ const refresh = useCallback4(async () => {
127
+ setLoading(true);
128
+ setError(null);
129
+ try {
130
+ const result = await sdkRef.current.getWallets(walletType);
131
+ setWallets(result.wallets || []);
132
+ } catch (e) {
133
+ setError(e instanceof Error ? e : new Error(String(e)));
134
+ } finally {
135
+ setLoading(false);
136
+ }
137
+ }, [walletType]);
138
+ useEffect2(() => {
139
+ if (!isAuthenticated) {
140
+ setWallets([]);
141
+ return;
142
+ }
143
+ refresh();
144
+ }, [isAuthenticated, refresh]);
145
+ return { wallets, loading, error, refresh, refetch: refresh };
146
+ };
147
+
148
+ // src/react/use-logout.ts
149
+ import { useCallback as useCallback5 } from "react";
150
+ var useLogout = () => {
151
+ const sdk = useMoonKeySDK();
152
+ const logout = useCallback5(async () => sdk.logout(), [sdk]);
153
+ return { logout };
154
+ };
155
+
156
+ // src/react/use-create-wallet.ts
157
+ var useCreateWallet = () => {
158
+ const sdk = useMoonKeySDK();
159
+ return {
160
+ createWallet: (walletType, options) => sdk.createWallet(walletType, options)
161
+ };
162
+ };
163
+
164
+ // src/react/use-import-key.ts
165
+ var useImportKey = () => {
166
+ const sdk = useMoonKeySDK();
167
+ return {
168
+ importKey: (walletType, key) => sdk.importKey(walletType, key)
169
+ };
170
+ };
171
+
172
+ // src/react/use-passkey-status.ts
173
+ import { useCallback as useCallback6, useEffect as useEffect3, useReducer } from "react";
174
+ var sharedHasPasskey = null;
175
+ var sharedPasskeys = [];
176
+ var sharedLoading = false;
177
+ var sharedError = null;
178
+ var sharedInflight = null;
179
+ var subscribers = /* @__PURE__ */ new Set();
180
+ function notifyAll() {
181
+ subscribers.forEach((cb) => {
182
+ try {
183
+ cb();
184
+ } catch {
185
+ }
186
+ });
187
+ }
188
+ function resetShared() {
189
+ sharedHasPasskey = null;
190
+ sharedPasskeys = [];
191
+ sharedLoading = false;
192
+ sharedError = null;
193
+ sharedInflight = null;
194
+ notifyAll();
195
+ }
196
+ async function sharedRefresh(sdk) {
197
+ if (!sdk?.getPasskeyStatus) return;
198
+ if (sharedInflight) return sharedInflight;
199
+ const run = (async () => {
200
+ sharedLoading = true;
201
+ sharedError = null;
202
+ notifyAll();
203
+ try {
204
+ const status = await sdk.getPasskeyStatus();
205
+ sharedHasPasskey = !!status.has_passkey;
206
+ sharedPasskeys = (status.passkeys || []).map((p) => {
207
+ const metadata = resolvePasskeyMetadata({
208
+ aaguid: p.aaguid,
209
+ transports: p.transports,
210
+ backupState: p.backup_state,
211
+ registeredBrowser: p.registered_browser,
212
+ registeredOS: p.registered_os
213
+ });
214
+ return {
215
+ ...p,
216
+ label: formatPasskeyLabel({
217
+ aaguid: p.aaguid,
218
+ transports: p.transports,
219
+ registeredBrowser: p.registered_browser,
220
+ registeredOS: p.registered_os
221
+ }),
222
+ metadata
223
+ };
224
+ });
225
+ } catch (e) {
226
+ sharedError = e instanceof Error ? e.message : "Failed to load status";
227
+ } finally {
228
+ sharedLoading = false;
229
+ sharedInflight = null;
230
+ notifyAll();
231
+ }
232
+ })();
233
+ sharedInflight = run;
234
+ return run;
235
+ }
236
+ var usePasskeyStatus = () => {
237
+ const sdk = useMoonKeySDK();
238
+ const [, forceUpdate] = useReducer((x) => x + 1, 0);
239
+ useEffect3(() => {
240
+ const cb = () => forceUpdate();
241
+ subscribers.add(cb);
242
+ return () => {
243
+ subscribers.delete(cb);
244
+ };
245
+ }, []);
246
+ const refresh = useCallback6(async () => {
247
+ return sharedRefresh(sdk);
248
+ }, [sdk]);
249
+ useEffect3(() => {
250
+ if (!sdk?.getPasskeyStatus) return;
251
+ if (sdk.ready && !sdk.isAuthenticated) {
252
+ resetShared();
253
+ return;
254
+ }
255
+ if (!sdk.ready || !sdk.isAuthenticated) return;
256
+ sharedRefresh(sdk);
257
+ }, [sdk, sdk?.ready, sdk?.isAuthenticated]);
258
+ return {
259
+ hasPasskey: sharedHasPasskey,
260
+ passkeys: sharedPasskeys,
261
+ loading: sharedLoading,
262
+ error: sharedError,
263
+ refresh
264
+ };
265
+ };
266
+
267
+ // src/react/use-manage-passkeys.ts
268
+ import { useCallback as useCallback7, useState as useState5 } from "react";
269
+ var useAddPasskey = () => {
270
+ const sdk = useMoonKeySDK();
271
+ const [isAdding, setIsAdding] = useState5(false);
272
+ const [error, setError] = useState5(null);
273
+ const addPasskey = useCallback7(
274
+ async (params) => {
275
+ if (!sdk?.addPasskey) throw new Error("SDK not ready");
276
+ setIsAdding(true);
277
+ setError(null);
278
+ try {
279
+ return await sdk.addPasskey(params);
280
+ } catch (e) {
281
+ const msg = e instanceof Error ? e.message : "Failed to add passkey";
282
+ setError(msg);
283
+ throw e;
284
+ } finally {
285
+ setIsAdding(false);
286
+ }
287
+ },
288
+ [sdk]
289
+ );
290
+ return { addPasskey, isAdding, error };
291
+ };
292
+ var useRemovePasskey = () => {
293
+ const sdk = useMoonKeySDK();
294
+ const [isRemoving, setIsRemoving] = useState5(false);
295
+ const [error, setError] = useState5(null);
296
+ const removePasskey = useCallback7(
297
+ async (credentialIdB64url) => {
298
+ if (!sdk?.removePasskey) throw new Error("SDK not ready");
299
+ setIsRemoving(true);
300
+ setError(null);
301
+ try {
302
+ await sdk.removePasskey(credentialIdB64url);
303
+ } catch (e) {
304
+ const msg = e instanceof Error ? e.message : "Failed to remove passkey";
305
+ setError(msg);
306
+ throw e;
307
+ } finally {
308
+ setIsRemoving(false);
309
+ }
310
+ },
311
+ [sdk]
312
+ );
313
+ return { removePasskey, isRemoving, error };
314
+ };
315
+ export {
316
+ SDKProvider,
317
+ useAddPasskey,
318
+ useCreateWallet,
319
+ useImportKey,
320
+ useLoginWithEmail,
321
+ useLogout,
322
+ useMoonKeySDK,
323
+ usePasskeyStatus,
324
+ useRegisterPasskey,
325
+ useRemovePasskey,
326
+ useUser,
327
+ useWallets
328
+ };
@@ -0,0 +1,17 @@
1
+ import { SolanaGetBalanceParams, SolanaGetBalanceResult, SolanaSendTransactionParams, SolanaSendTransactionResult, SolanaSignMessageParams, SolanaSignMessageResult, SolanaSignTransactionParams, SolanaSignTransactionResult } from '../types/index.mjs';
2
+ import '../chain-C9dvKXUY.mjs';
3
+
4
+ declare const useSignMessage: () => {
5
+ signMessage: (params: SolanaSignMessageParams) => Promise<SolanaSignMessageResult>;
6
+ };
7
+ declare const useSignTransaction: () => {
8
+ signTransaction: (params: SolanaSignTransactionParams) => Promise<SolanaSignTransactionResult>;
9
+ };
10
+ declare const useSendTransaction: () => {
11
+ sendTransaction: (params: SolanaSendTransactionParams) => Promise<SolanaSendTransactionResult>;
12
+ };
13
+ declare const useGetBalance: () => {
14
+ getBalance: (params: SolanaGetBalanceParams) => Promise<SolanaGetBalanceResult>;
15
+ };
16
+
17
+ export { useGetBalance, useSendTransaction, useSignMessage, useSignTransaction };
@@ -0,0 +1,17 @@
1
+ import { SolanaGetBalanceParams, SolanaGetBalanceResult, SolanaSendTransactionParams, SolanaSendTransactionResult, SolanaSignMessageParams, SolanaSignMessageResult, SolanaSignTransactionParams, SolanaSignTransactionResult } from '../types/index.js';
2
+ import '../chain-C9dvKXUY.js';
3
+
4
+ declare const useSignMessage: () => {
5
+ signMessage: (params: SolanaSignMessageParams) => Promise<SolanaSignMessageResult>;
6
+ };
7
+ declare const useSignTransaction: () => {
8
+ signTransaction: (params: SolanaSignTransactionParams) => Promise<SolanaSignTransactionResult>;
9
+ };
10
+ declare const useSendTransaction: () => {
11
+ sendTransaction: (params: SolanaSendTransactionParams) => Promise<SolanaSendTransactionResult>;
12
+ };
13
+ declare const useGetBalance: () => {
14
+ getBalance: (params: SolanaGetBalanceParams) => Promise<SolanaGetBalanceResult>;
15
+ };
16
+
17
+ export { useGetBalance, useSendTransaction, useSignMessage, useSignTransaction };
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/react/solana.ts
21
+ var solana_exports = {};
22
+ __export(solana_exports, {
23
+ useGetBalance: () => useGetBalance,
24
+ useSendTransaction: () => useSendTransaction,
25
+ useSignMessage: () => useSignMessage,
26
+ useSignTransaction: () => useSignTransaction
27
+ });
28
+ module.exports = __toCommonJS(solana_exports);
29
+
30
+ // src/react/sdk-context.ts
31
+ var import_react = require("react");
32
+ var SDKContext = (0, import_react.createContext)(null);
33
+ var SDKProvider = SDKContext.Provider;
34
+ var useMoonKeySDK = () => {
35
+ const sdk = (0, import_react.useContext)(SDKContext);
36
+ if (!sdk) {
37
+ throw new Error(
38
+ "MoonKey hook called outside a <MoonKeyProvider> \u2014 wrap your app in the provider from @moon-x/react-sdk (web) or @moon-x/react-native-sdk (RN)."
39
+ );
40
+ }
41
+ return sdk;
42
+ };
43
+
44
+ // src/react/solana.ts
45
+ var useSignMessage = () => {
46
+ const sdk = useMoonKeySDK();
47
+ return {
48
+ signMessage: (params) => sdk.signSolanaMessageHeadless(params)
49
+ };
50
+ };
51
+ var useSignTransaction = () => {
52
+ const sdk = useMoonKeySDK();
53
+ return {
54
+ signTransaction: (params) => sdk.signSolanaTransactionHeadless(params)
55
+ };
56
+ };
57
+ var useSendTransaction = () => {
58
+ const sdk = useMoonKeySDK();
59
+ return {
60
+ sendTransaction: (params) => sdk.sendSolanaTransactionHeadless(params)
61
+ };
62
+ };
63
+ var useGetBalance = () => {
64
+ const sdk = useMoonKeySDK();
65
+ return {
66
+ getBalance: (params) => sdk.getSolanaBalance(params)
67
+ };
68
+ };
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ useGetBalance,
72
+ useSendTransaction,
73
+ useSignMessage,
74
+ useSignTransaction
75
+ });
@@ -0,0 +1,35 @@
1
+ import {
2
+ useMoonKeySDK
3
+ } from "../chunk-MOREUKOG.mjs";
4
+
5
+ // src/react/solana.ts
6
+ var useSignMessage = () => {
7
+ const sdk = useMoonKeySDK();
8
+ return {
9
+ signMessage: (params) => sdk.signSolanaMessageHeadless(params)
10
+ };
11
+ };
12
+ var useSignTransaction = () => {
13
+ const sdk = useMoonKeySDK();
14
+ return {
15
+ signTransaction: (params) => sdk.signSolanaTransactionHeadless(params)
16
+ };
17
+ };
18
+ var useSendTransaction = () => {
19
+ const sdk = useMoonKeySDK();
20
+ return {
21
+ sendTransaction: (params) => sdk.sendSolanaTransactionHeadless(params)
22
+ };
23
+ };
24
+ var useGetBalance = () => {
25
+ const sdk = useMoonKeySDK();
26
+ return {
27
+ getBalance: (params) => sdk.getSolanaBalance(params)
28
+ };
29
+ };
30
+ export {
31
+ useGetBalance,
32
+ useSendTransaction,
33
+ useSignMessage,
34
+ useSignTransaction
35
+ };
@@ -0,0 +1,126 @@
1
+ import { T as Transport, P as PasskeyAssertor, K as KvStorage } from '../interfaces-fNhwnCeY.mjs';
2
+ export { O as OAuthOpener, a as PlatformImpls } from '../interfaces-fNhwnCeY.mjs';
3
+ import { C as CachedAssertion } from '../passkey-cache-B9PT3AWX.mjs';
4
+ import { EthereumSignMessageParams, EthereumSignMessageResult, EthereumSignTransactionParams, EthereumSignTransactionResult, EthereumSignTypedDataParams, EthereumSignTypedDataResult, EthereumSignHashParams, EthereumSignHashResult, EthereumSign7702AuthorizationParams, EthereumSign7702AuthorizationResult, EthereumSendTransactionParams, EthereumSendTransactionResult, EthereumGetBalanceParams, EthereumGetBalanceResult, EthereumGetTokenAccountsByOwnerParams, EthereumGetTokenAccountsByOwnerResult, SolanaSignMessageParams, SolanaSignMessageResult, SolanaSignTransactionParams, SolanaSignTransactionResult, SolanaSendTransactionParams, SolanaSendTransactionResult, SolanaGetBalanceParams, SolanaGetBalanceResult, SolanaGetTokenAccountsByOwnerParams, SolanaGetTokenAccountsByOwnerResult, PublicWallet } from '../types/index.mjs';
5
+ import '../post-message-C_99BCBh.mjs';
6
+ import '../chain-C9dvKXUY.mjs';
7
+
8
+ type AssertPasskeyInParentResult = CachedAssertion;
9
+ declare const assertPasskeyInParent: ({ transport, passkey, publishableKey, requireFreshAssertion, }: {
10
+ transport: Transport;
11
+ passkey: PasskeyAssertor;
12
+ publishableKey: string;
13
+ requireFreshAssertion?: boolean;
14
+ }) => Promise<AssertPasskeyInParentResult>;
15
+
16
+ declare const getHeadlessEthereumMethods: ({ transport, passkey, publishableKey, }: {
17
+ transport: Transport;
18
+ passkey: PasskeyAssertor;
19
+ publishableKey: string;
20
+ }) => {
21
+ signEthereumMessageHeadless: (params: EthereumSignMessageParams) => Promise<EthereumSignMessageResult>;
22
+ signEthereumTransactionHeadless: (params: EthereumSignTransactionParams) => Promise<EthereumSignTransactionResult>;
23
+ signEthereumTypedDataHeadless: (params: EthereumSignTypedDataParams) => Promise<EthereumSignTypedDataResult>;
24
+ signEthereumHashHeadless: (params: EthereumSignHashParams) => Promise<EthereumSignHashResult>;
25
+ signEthereum7702AuthorizationHeadless: (params: EthereumSign7702AuthorizationParams) => Promise<EthereumSign7702AuthorizationResult>;
26
+ sendEthereumTransactionHeadless: (params: EthereumSendTransactionParams) => Promise<EthereumSendTransactionResult>;
27
+ getEthereumBalance: (params: EthereumGetBalanceParams) => Promise<EthereumGetBalanceResult>;
28
+ getEthereumTokenAccountsByOwner: (params: EthereumGetTokenAccountsByOwnerParams) => Promise<EthereumGetTokenAccountsByOwnerResult>;
29
+ getEthereumConfirmTransaction: (params: {
30
+ transaction: string | object;
31
+ walletAddress: string;
32
+ rpcUrl: string;
33
+ network?: string;
34
+ }) => Promise<unknown>;
35
+ };
36
+
37
+ declare const getHeadlessSolanaMethods: ({ transport, passkey, publishableKey, }: {
38
+ transport: Transport;
39
+ passkey: PasskeyAssertor;
40
+ publishableKey: string;
41
+ }) => {
42
+ signSolanaMessageHeadless: (params: SolanaSignMessageParams) => Promise<SolanaSignMessageResult>;
43
+ signSolanaTransactionHeadless: (params: SolanaSignTransactionParams) => Promise<SolanaSignTransactionResult>;
44
+ sendSolanaTransactionHeadless: (params: SolanaSendTransactionParams) => Promise<SolanaSendTransactionResult>;
45
+ getSolanaBalance: (params: SolanaGetBalanceParams) => Promise<SolanaGetBalanceResult>;
46
+ getSolanaTokenAccountsByOwner: (params: SolanaGetTokenAccountsByOwnerParams) => Promise<SolanaGetTokenAccountsByOwnerResult>;
47
+ };
48
+
49
+ interface SendCodeParams {
50
+ email: string;
51
+ disableSignup?: boolean;
52
+ }
53
+ interface LoginWithCodeParams {
54
+ code: string;
55
+ }
56
+ interface VerifyOAuthParams {
57
+ provider: "google" | "apple";
58
+ code?: string;
59
+ token?: string;
60
+ state?: string;
61
+ }
62
+ declare const getHeadlessAuthenticationMethods: ({ transport, publishableKey, emailConfig, setIsAuthenticated, setUser, }: {
63
+ transport: Transport;
64
+ publishableKey: string;
65
+ emailConfig?: {
66
+ expiresIn?: number;
67
+ };
68
+ setIsAuthenticated?: (isAuth: boolean) => void;
69
+ setUser?: (user: unknown | null) => void;
70
+ }) => {
71
+ /** Send a one-time passcode to the user's email address. */
72
+ sendCode: (params: SendCodeParams) => Promise<void>;
73
+ /**
74
+ * Verify the OTP and complete the login. The iframe-app handles
75
+ * session persistence; on success the SDK flips isAuthenticated and
76
+ * fetches the real user object to populate provider state.
77
+ */
78
+ loginWithCode: (params: LoginWithCodeParams) => Promise<unknown>;
79
+ /**
80
+ * Commit an OAuth code/token for a session. The deep-link / popup
81
+ * round-trip lives in the platform-specific OAuth hook; this method
82
+ * is the tail-end commit step the hook calls.
83
+ */
84
+ verifyOAuth: (params: VerifyOAuthParams) => Promise<unknown>;
85
+ };
86
+
87
+ declare const getHeadlessGeneralMethods: ({ transport, passkey, storage, publishableKey, setIsAuthenticated, setUser, }: {
88
+ transport: Transport;
89
+ passkey: PasskeyAssertor;
90
+ storage: KvStorage;
91
+ publishableKey: string;
92
+ setIsAuthenticated?: (isAuth: boolean) => void;
93
+ setUser?: (user: unknown | null) => void;
94
+ }) => {
95
+ getPasskeyStatus: () => Promise<unknown>;
96
+ removePasskey: (credentialIdB64url: string) => Promise<void>;
97
+ createWallet: (walletType: "solana" | "ethereum", options?: {
98
+ createAdditional?: boolean;
99
+ walletIndex?: number;
100
+ requireFreshAssertion?: boolean;
101
+ }) => Promise<{
102
+ wallet: PublicWallet;
103
+ }>;
104
+ importKey: (walletType: "solana" | "ethereum", key: string, options?: {
105
+ requireFreshAssertion?: boolean;
106
+ }) => Promise<{
107
+ wallet: PublicWallet;
108
+ }>;
109
+ getWallets: (walletType: "solana" | "ethereum") => Promise<{
110
+ wallets: unknown[];
111
+ walletType: string;
112
+ }>;
113
+ getSessionTokens: () => Promise<{
114
+ accessToken: string;
115
+ identityToken: string;
116
+ expiresAt: number;
117
+ } | null>;
118
+ logout: () => Promise<{
119
+ success: boolean;
120
+ message: string;
121
+ }>;
122
+ getCurrentSession: () => Promise<unknown>;
123
+ getUser: () => Promise<unknown>;
124
+ };
125
+
126
+ export { type AssertPasskeyInParentResult, KvStorage, type LoginWithCodeParams, PasskeyAssertor, type SendCodeParams, Transport, type VerifyOAuthParams, assertPasskeyInParent, getHeadlessAuthenticationMethods, getHeadlessEthereumMethods, getHeadlessGeneralMethods, getHeadlessSolanaMethods };