@human.tech/waap-sdk 2.0.0 → 2.1.0-staging-fb27bb

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 (59) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +167 -216
  3. package/dist/WaaPError-C5nPcaKk.d.mts +168 -0
  4. package/dist/WaaPError-XLgIXUgh.d.ts +168 -0
  5. package/dist/WalletConnect-BTT6LtUu.d.mts +33 -0
  6. package/dist/WalletConnect-BTT6LtUu.d.ts +33 -0
  7. package/dist/WalletConnect-Deg7_JmH.mjs +4 -0
  8. package/dist/WalletConnect-G-lbqknM.js +4 -0
  9. package/dist/asyncSigning-B0KrmKk7.js +1 -0
  10. package/dist/asyncSigning-CzqBbYDP.mjs +1 -0
  11. package/dist/esm-B4jz8Emb.mjs +1 -0
  12. package/dist/esm-D5fDQenf.js +1 -0
  13. package/dist/evm-Ch-aWWat.js +1 -0
  14. package/dist/evm-DHVrAmEw.mjs +1 -0
  15. package/dist/evm.d.mts +7 -0
  16. package/dist/evm.d.ts +7 -0
  17. package/dist/evm.js +1 -0
  18. package/dist/evm.mjs +1 -0
  19. package/dist/index-CMSufeMa.d.ts +775 -0
  20. package/dist/index-CdKntlzX.d.mts +775 -0
  21. package/dist/index.d.mts +239 -933
  22. package/dist/index.d.ts +239 -933
  23. package/dist/index.js +1 -2191
  24. package/dist/index.mjs +1 -2162
  25. package/dist/initializerContext-0oKHzvQG.d.ts +21 -0
  26. package/dist/initializerContext-C39PUnGi.d.mts +21 -0
  27. package/dist/react.d.mts +2 -0
  28. package/dist/react.d.ts +2 -0
  29. package/dist/react.js +1 -0
  30. package/dist/react.mjs +1 -0
  31. package/dist/register-4Afr2Jx8.js +1 -0
  32. package/dist/register-CBlzg5ln.d.ts +107 -0
  33. package/dist/register-CNgjA0yl.mjs +1 -0
  34. package/dist/register-CxsUwgKJ.d.ts +282 -0
  35. package/dist/register-DIZnKDHF.mjs +1 -0
  36. package/dist/register-LmdJdvzn.d.mts +282 -0
  37. package/dist/register-QjrsOe7r.d.mts +107 -0
  38. package/dist/register-ozKwGWOb.js +1 -0
  39. package/dist/solana.d.mts +5 -0
  40. package/dist/solana.d.ts +5 -0
  41. package/dist/solana.js +1 -0
  42. package/dist/solana.mjs +1 -0
  43. package/dist/sui.d.mts +5 -0
  44. package/dist/sui.d.ts +5 -0
  45. package/dist/sui.js +1 -0
  46. package/dist/sui.mjs +1 -0
  47. package/dist/types-DexmJNke.d.mts +397 -0
  48. package/dist/types-DexmJNke.d.ts +397 -0
  49. package/dist/ui-16QpbEyG.js +1 -0
  50. package/dist/ui-BAYRtDQg.mjs +1 -0
  51. package/dist/useWaapAuth-BrqAhAn2.d.ts +246 -0
  52. package/dist/useWaapAuth-C5I7QqyW.d.mts +246 -0
  53. package/dist/useWaapAuth-DHIeb4yc.mjs +1 -0
  54. package/dist/useWaapAuth-Z_ONicYr.js +1 -0
  55. package/dist/walletconnect.d.mts +2 -0
  56. package/dist/walletconnect.d.ts +2 -0
  57. package/dist/walletconnect.js +1 -0
  58. package/dist/walletconnect.mjs +1 -0
  59. package/package.json +53 -18
@@ -0,0 +1,246 @@
1
+ import { s as RequestArguments } from "./types-DexmJNke.js";
2
+ import { d as WaaPSquidStatus } from "./index-CMSufeMa.js";
3
+ //#region ../silk-interface-core/dist/esm/types/asyncSigning.d.ts
4
+ /**
5
+ * Types for async transaction feature.
6
+ *
7
+ * When async transactions are enabled, signing happens synchronously (the
8
+ * promise waits for the signed artifact), but broadcasting and confirmation
9
+ * happen in the background.
10
+ *
11
+ * - For eth_sendTransaction: promise resolves with the deterministic hash of
12
+ * the signed transaction, then broadcasting/confirmation continue in the
13
+ * background with events.
14
+ * - For personal_sign, eth_signTypedData_v4, eth_signTransaction: promise resolves
15
+ * with the signature directly. No events needed.
16
+ */
17
+ /**
18
+ * Event types emitted during async transaction lifecycle.
19
+ * Only relevant for eth_sendTransaction — other signing methods resolve synchronously.
20
+ */
21
+ type AsyncEventType = 'waap_sign_pending' | 'waap_2fa_required' | 'waap_sign_complete' | 'waap_sign_failed' | 'waap_tx_pending' | 'waap_tx_confirmed' | 'waap_tx_failed';
22
+ /** Runtime-safe event names for SDK consumers. */
23
+ declare const WAAP_EVENTS: {
24
+ readonly signPending: 'waap_sign_pending';
25
+ readonly twoFactorRequired: 'waap_2fa_required';
26
+ readonly signComplete: 'waap_sign_complete';
27
+ readonly signFailed: 'waap_sign_failed';
28
+ readonly txPending: 'waap_tx_pending';
29
+ readonly txConfirmed: 'waap_tx_confirmed';
30
+ readonly txFailed: 'waap_tx_failed';
31
+ readonly squidPending: 'waap_squid_pending';
32
+ readonly squidReady: 'waap_squid_ready';
33
+ readonly squidFailed: 'waap_squid_failed';
34
+ };
35
+ /**
36
+ * Emitted when signing completes and transaction is ready for broadcasting.
37
+ * Contains the signature and serialized signed transaction.
38
+ * Only emitted for eth_sendTransaction.
39
+ */
40
+ interface AsyncSignCompleteEvent {
41
+ /** Stable correlation ID returned by the async request response. */
42
+ txHash: string;
43
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
44
+ pendingTxId?: string;
45
+ signature: string;
46
+ serializedTx: string;
47
+ }
48
+ /**
49
+ * Emitted when transaction has been broadcast and is pending confirmation.
50
+ * Only emitted for eth_sendTransaction.
51
+ */
52
+ interface AsyncTxPendingEvent {
53
+ /** Stable correlation ID returned by the async request response. */
54
+ txHash: string;
55
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
56
+ pendingTxId?: string;
57
+ }
58
+ /**
59
+ * Emitted when transaction is confirmed on-chain.
60
+ * Only emitted for eth_sendTransaction.
61
+ */
62
+ interface AsyncTxConfirmedEvent {
63
+ /** Stable correlation ID returned by the async request response. */
64
+ txHash: string;
65
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
66
+ pendingTxId?: string;
67
+ receipt: {
68
+ blockNumber: number;
69
+ blockHash: string;
70
+ transactionHash: string;
71
+ status: 'success' | 'reverted';
72
+ gasUsed: bigint;
73
+ };
74
+ }
75
+ /**
76
+ * Emitted when an error occurs during broadcast or confirmation.
77
+ * Only emitted for eth_sendTransaction.
78
+ */
79
+ interface AsyncTxFailedEvent {
80
+ /** Stable correlation ID returned by the async request response. */
81
+ txHash: string;
82
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
83
+ pendingTxId?: string;
84
+ error: string;
85
+ stage: 'broadcast' | 'confirmation';
86
+ }
87
+ /**
88
+ * Union type for all async transaction events
89
+ */
90
+ type AsyncEvent = AsyncSignCompleteEvent | AsyncTxPendingEvent | AsyncTxConfirmedEvent | AsyncTxFailedEvent;
91
+ /**
92
+ * Options passed from SDK to iframe with transaction requests.
93
+ * `async` enables async transaction mode where eth_sendTransaction
94
+ * resolves with the signed transaction hash immediately after signing, while
95
+ * broadcasting continues in the background.
96
+ */
97
+ interface SilkOptions {
98
+ async: boolean;
99
+ /** @deprecated Use `async` instead. */
100
+ asyncSigning?: boolean;
101
+ }
102
+ /** @deprecated No longer emitted in v2. Signing now completes before the promise resolves. */
103
+ interface AsyncSignPendingEvent {
104
+ pendingTxId: string;
105
+ txRequest?: {
106
+ to?: string;
107
+ from?: string;
108
+ value?: string;
109
+ data?: string;
110
+ chainId?: number;
111
+ };
112
+ }
113
+ /** @deprecated No longer emitted in v2. */
114
+ interface Async2faRequiredEvent {
115
+ pendingTxId: string;
116
+ }
117
+ /** @deprecated No longer emitted in v2. Signing errors reject the promise directly. */
118
+ interface AsyncSignFailedEvent {
119
+ pendingTxId: string;
120
+ error: string;
121
+ }
122
+ interface AsyncTxResponse {
123
+ pendingTxId: string;
124
+ status: 'pending';
125
+ }
126
+ //#endregion
127
+ //#region src/hooks/useWaapTransaction.d.ts
128
+ /**
129
+ * Transaction state tracked by the hook.
130
+ * Keyed by the signed transaction hash returned from an async send.
131
+ */
132
+ interface TxState {
133
+ status: 'signed' | 'tx_pending' | 'confirmed' | 'failed';
134
+ txHash: string;
135
+ /** @deprecated Alias for `txHash`, retained for legacy event consumers. */
136
+ pendingTxId?: string;
137
+ signature?: string;
138
+ serializedTx?: string;
139
+ receipt?: AsyncTxConfirmedEvent['receipt'];
140
+ error?: string;
141
+ stage?: AsyncTxFailedEvent['stage'];
142
+ }
143
+ /**
144
+ * Options for useWaapTransaction hook
145
+ */
146
+ interface UseWaapTransactionOptions {
147
+ onSigned?: (event: AsyncSignCompleteEvent) => void;
148
+ onTxPending?: (event: AsyncTxPendingEvent) => void;
149
+ onConfirmed?: (event: AsyncTxConfirmedEvent) => void;
150
+ onFailed?: (event: AsyncTxFailedEvent) => void;
151
+ /** @deprecated No longer emitted in v2. */
152
+ onPending?: (event: any) => void;
153
+ /** @deprecated No longer emitted in v2. */
154
+ on2faRequired?: (event: any) => void;
155
+ /** @deprecated Use `onFailed` instead. */
156
+ onSignFailed?: (event: any) => void;
157
+ }
158
+ /**
159
+ * Return type for useWaapTransaction hook
160
+ */
161
+ interface UseWaapTransactionReturn {
162
+ /**
163
+ * Send a transaction using eth_sendTransaction.
164
+ * When asyncTxs is enabled, resolves with the signed transaction hash after
165
+ * signing. Broadcasting continues in the background with events.
166
+ */
167
+ sendTransaction: (txRequest: RequestArguments['params']) => Promise<string>;
168
+ /**
169
+ * Sign a transaction without broadcasting using eth_signTransaction.
170
+ * Always resolves with the signature directly.
171
+ */
172
+ signTransaction: (txRequest: RequestArguments['params']) => Promise<string>;
173
+ /**
174
+ * Map of signed transaction hashes to their current state
175
+ */
176
+ pendingTransactions: Map<string, TxState>;
177
+ /**
178
+ * Whether there are any pending transactions
179
+ */
180
+ isAnyPending: boolean;
181
+ }
182
+ type TransactionProvider = {
183
+ request: (args: RequestArguments) => Promise<unknown>;
184
+ on: (event: string, listener: (...args: any[]) => void) => unknown;
185
+ removeListener?: (event: string, listener: (...args: any[]) => void) => unknown;
186
+ };
187
+ /**
188
+ * React hook for handling async transactions with WaaP SDK.
189
+ *
190
+ * When `asyncTxs` is enabled (via `initWaaP({ asyncTxs: true })` or per-request `{ async: true }`):
191
+ * - `eth_sendTransaction` resolves with the signed transaction hash
192
+ * after signing
193
+ * - Broadcasting and confirmation happen in the background with events
194
+ * - Use the callbacks to track transaction lifecycle
195
+ *
196
+ * Other signing methods (`personal_sign`, `eth_signTypedData_v4`, `eth_signTransaction`)
197
+ * always resolve with the signature directly — no events needed.
198
+ *
199
+ * @example
200
+ * ```tsx
201
+ * const { sendTransaction, pendingTransactions, isAnyPending } = useWaapTransaction({
202
+ * onSigned: ({ txHash }) => console.log('Signed:', txHash),
203
+ * onTxPending: ({ txHash }) => console.log('Broadcasting:', txHash),
204
+ * onConfirmed: ({ txHash, receipt }) => console.log('Confirmed:', txHash),
205
+ * onFailed: ({ txHash, error }) => console.error('Failed:', txHash, error)
206
+ * });
207
+ *
208
+ * const handleSend = async () => {
209
+ * const txHash = await sendTransaction([{ to: '0x...', value: '0x...' }]);
210
+ * console.log('Signed:', txHash);
211
+ * };
212
+ * ```
213
+ */
214
+ declare function useWaapTransaction(providerOrOptions?: TransactionProvider | UseWaapTransactionOptions, explicitOptions?: UseWaapTransactionOptions): UseWaapTransactionReturn;
215
+ //#endregion
216
+ //#region src/hooks/useWaapAuth.d.ts
217
+ /** Return type for useWaapAuth hook. */
218
+ interface UseWaapAuthReturn {
219
+ /** True once connect event fires (wallet is ready to use). */
220
+ isConnected: boolean;
221
+ /** True while LITE onboarding is in progress. */
222
+ isPending: boolean;
223
+ /** True when LITE onboarding initialized successfully. */
224
+ squidReady: boolean;
225
+ /** Error message if LITE onboarding failed (wallet falls back to standard mode). */
226
+ error: string | null;
227
+ /** Current EVM address (lite address once onboarding succeeded, standard otherwise). */
228
+ address: string | null;
229
+ /** Lite Sui address once onboarding succeeded, else null. */
230
+ suiAddress: string | null;
231
+ /** Lite Solana address once onboarding succeeded, else null. */
232
+ solanaAddress: string | null;
233
+ /** Public lifecycle; the legacy readiness booleans above derive from it. */
234
+ squidStatus: WaaPSquidStatus;
235
+ }
236
+ /**
237
+ * React hook for tracking the multichain LITE ("Squid" brand) onboarding
238
+ * state. Pass `initWaaPSquid().session` (or an individual chain facade).
239
+ */
240
+ declare function useWaapAuth(provider: {
241
+ on: (event: string, listener: (...args: any[]) => void) => any;
242
+ removeListener: (event: string, listener: (...args: any[]) => void) => any;
243
+ getSquidStatus?: () => WaaPSquidStatus;
244
+ } | null): UseWaapAuthReturn;
245
+ //#endregion
246
+ export { WAAP_EVENTS as _, useWaapTransaction as a, AsyncEventType as c, AsyncSignPendingEvent as d, AsyncTxConfirmedEvent as f, SilkOptions as g, AsyncTxResponse as h, UseWaapTransactionReturn as i, AsyncSignCompleteEvent as l, AsyncTxPendingEvent as m, TxState as n, Async2faRequiredEvent as o, AsyncTxFailedEvent as p, UseWaapTransactionOptions as r, AsyncEvent as s, useWaapAuth as t, AsyncSignFailedEvent as u };
@@ -0,0 +1,246 @@
1
+ import { s as RequestArguments } from "./types-DexmJNke.mjs";
2
+ import { d as WaaPSquidStatus } from "./index-CdKntlzX.mjs";
3
+ //#region ../silk-interface-core/dist/esm/types/asyncSigning.d.ts
4
+ /**
5
+ * Types for async transaction feature.
6
+ *
7
+ * When async transactions are enabled, signing happens synchronously (the
8
+ * promise waits for the signed artifact), but broadcasting and confirmation
9
+ * happen in the background.
10
+ *
11
+ * - For eth_sendTransaction: promise resolves with the deterministic hash of
12
+ * the signed transaction, then broadcasting/confirmation continue in the
13
+ * background with events.
14
+ * - For personal_sign, eth_signTypedData_v4, eth_signTransaction: promise resolves
15
+ * with the signature directly. No events needed.
16
+ */
17
+ /**
18
+ * Event types emitted during async transaction lifecycle.
19
+ * Only relevant for eth_sendTransaction — other signing methods resolve synchronously.
20
+ */
21
+ type AsyncEventType = 'waap_sign_pending' | 'waap_2fa_required' | 'waap_sign_complete' | 'waap_sign_failed' | 'waap_tx_pending' | 'waap_tx_confirmed' | 'waap_tx_failed';
22
+ /** Runtime-safe event names for SDK consumers. */
23
+ declare const WAAP_EVENTS: {
24
+ readonly signPending: 'waap_sign_pending';
25
+ readonly twoFactorRequired: 'waap_2fa_required';
26
+ readonly signComplete: 'waap_sign_complete';
27
+ readonly signFailed: 'waap_sign_failed';
28
+ readonly txPending: 'waap_tx_pending';
29
+ readonly txConfirmed: 'waap_tx_confirmed';
30
+ readonly txFailed: 'waap_tx_failed';
31
+ readonly squidPending: 'waap_squid_pending';
32
+ readonly squidReady: 'waap_squid_ready';
33
+ readonly squidFailed: 'waap_squid_failed';
34
+ };
35
+ /**
36
+ * Emitted when signing completes and transaction is ready for broadcasting.
37
+ * Contains the signature and serialized signed transaction.
38
+ * Only emitted for eth_sendTransaction.
39
+ */
40
+ interface AsyncSignCompleteEvent {
41
+ /** Stable correlation ID returned by the async request response. */
42
+ txHash: string;
43
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
44
+ pendingTxId?: string;
45
+ signature: string;
46
+ serializedTx: string;
47
+ }
48
+ /**
49
+ * Emitted when transaction has been broadcast and is pending confirmation.
50
+ * Only emitted for eth_sendTransaction.
51
+ */
52
+ interface AsyncTxPendingEvent {
53
+ /** Stable correlation ID returned by the async request response. */
54
+ txHash: string;
55
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
56
+ pendingTxId?: string;
57
+ }
58
+ /**
59
+ * Emitted when transaction is confirmed on-chain.
60
+ * Only emitted for eth_sendTransaction.
61
+ */
62
+ interface AsyncTxConfirmedEvent {
63
+ /** Stable correlation ID returned by the async request response. */
64
+ txHash: string;
65
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
66
+ pendingTxId?: string;
67
+ receipt: {
68
+ blockNumber: number;
69
+ blockHash: string;
70
+ transactionHash: string;
71
+ status: 'success' | 'reverted';
72
+ gasUsed: bigint;
73
+ };
74
+ }
75
+ /**
76
+ * Emitted when an error occurs during broadcast or confirmation.
77
+ * Only emitted for eth_sendTransaction.
78
+ */
79
+ interface AsyncTxFailedEvent {
80
+ /** Stable correlation ID returned by the async request response. */
81
+ txHash: string;
82
+ /** @deprecated Alias for `txHash`, retained for legacy consumers. */
83
+ pendingTxId?: string;
84
+ error: string;
85
+ stage: 'broadcast' | 'confirmation';
86
+ }
87
+ /**
88
+ * Union type for all async transaction events
89
+ */
90
+ type AsyncEvent = AsyncSignCompleteEvent | AsyncTxPendingEvent | AsyncTxConfirmedEvent | AsyncTxFailedEvent;
91
+ /**
92
+ * Options passed from SDK to iframe with transaction requests.
93
+ * `async` enables async transaction mode where eth_sendTransaction
94
+ * resolves with the signed transaction hash immediately after signing, while
95
+ * broadcasting continues in the background.
96
+ */
97
+ interface SilkOptions {
98
+ async: boolean;
99
+ /** @deprecated Use `async` instead. */
100
+ asyncSigning?: boolean;
101
+ }
102
+ /** @deprecated No longer emitted in v2. Signing now completes before the promise resolves. */
103
+ interface AsyncSignPendingEvent {
104
+ pendingTxId: string;
105
+ txRequest?: {
106
+ to?: string;
107
+ from?: string;
108
+ value?: string;
109
+ data?: string;
110
+ chainId?: number;
111
+ };
112
+ }
113
+ /** @deprecated No longer emitted in v2. */
114
+ interface Async2faRequiredEvent {
115
+ pendingTxId: string;
116
+ }
117
+ /** @deprecated No longer emitted in v2. Signing errors reject the promise directly. */
118
+ interface AsyncSignFailedEvent {
119
+ pendingTxId: string;
120
+ error: string;
121
+ }
122
+ interface AsyncTxResponse {
123
+ pendingTxId: string;
124
+ status: 'pending';
125
+ }
126
+ //#endregion
127
+ //#region src/hooks/useWaapTransaction.d.ts
128
+ /**
129
+ * Transaction state tracked by the hook.
130
+ * Keyed by the signed transaction hash returned from an async send.
131
+ */
132
+ interface TxState {
133
+ status: 'signed' | 'tx_pending' | 'confirmed' | 'failed';
134
+ txHash: string;
135
+ /** @deprecated Alias for `txHash`, retained for legacy event consumers. */
136
+ pendingTxId?: string;
137
+ signature?: string;
138
+ serializedTx?: string;
139
+ receipt?: AsyncTxConfirmedEvent['receipt'];
140
+ error?: string;
141
+ stage?: AsyncTxFailedEvent['stage'];
142
+ }
143
+ /**
144
+ * Options for useWaapTransaction hook
145
+ */
146
+ interface UseWaapTransactionOptions {
147
+ onSigned?: (event: AsyncSignCompleteEvent) => void;
148
+ onTxPending?: (event: AsyncTxPendingEvent) => void;
149
+ onConfirmed?: (event: AsyncTxConfirmedEvent) => void;
150
+ onFailed?: (event: AsyncTxFailedEvent) => void;
151
+ /** @deprecated No longer emitted in v2. */
152
+ onPending?: (event: any) => void;
153
+ /** @deprecated No longer emitted in v2. */
154
+ on2faRequired?: (event: any) => void;
155
+ /** @deprecated Use `onFailed` instead. */
156
+ onSignFailed?: (event: any) => void;
157
+ }
158
+ /**
159
+ * Return type for useWaapTransaction hook
160
+ */
161
+ interface UseWaapTransactionReturn {
162
+ /**
163
+ * Send a transaction using eth_sendTransaction.
164
+ * When asyncTxs is enabled, resolves with the signed transaction hash after
165
+ * signing. Broadcasting continues in the background with events.
166
+ */
167
+ sendTransaction: (txRequest: RequestArguments['params']) => Promise<string>;
168
+ /**
169
+ * Sign a transaction without broadcasting using eth_signTransaction.
170
+ * Always resolves with the signature directly.
171
+ */
172
+ signTransaction: (txRequest: RequestArguments['params']) => Promise<string>;
173
+ /**
174
+ * Map of signed transaction hashes to their current state
175
+ */
176
+ pendingTransactions: Map<string, TxState>;
177
+ /**
178
+ * Whether there are any pending transactions
179
+ */
180
+ isAnyPending: boolean;
181
+ }
182
+ type TransactionProvider = {
183
+ request: (args: RequestArguments) => Promise<unknown>;
184
+ on: (event: string, listener: (...args: any[]) => void) => unknown;
185
+ removeListener?: (event: string, listener: (...args: any[]) => void) => unknown;
186
+ };
187
+ /**
188
+ * React hook for handling async transactions with WaaP SDK.
189
+ *
190
+ * When `asyncTxs` is enabled (via `initWaaP({ asyncTxs: true })` or per-request `{ async: true }`):
191
+ * - `eth_sendTransaction` resolves with the signed transaction hash
192
+ * after signing
193
+ * - Broadcasting and confirmation happen in the background with events
194
+ * - Use the callbacks to track transaction lifecycle
195
+ *
196
+ * Other signing methods (`personal_sign`, `eth_signTypedData_v4`, `eth_signTransaction`)
197
+ * always resolve with the signature directly — no events needed.
198
+ *
199
+ * @example
200
+ * ```tsx
201
+ * const { sendTransaction, pendingTransactions, isAnyPending } = useWaapTransaction({
202
+ * onSigned: ({ txHash }) => console.log('Signed:', txHash),
203
+ * onTxPending: ({ txHash }) => console.log('Broadcasting:', txHash),
204
+ * onConfirmed: ({ txHash, receipt }) => console.log('Confirmed:', txHash),
205
+ * onFailed: ({ txHash, error }) => console.error('Failed:', txHash, error)
206
+ * });
207
+ *
208
+ * const handleSend = async () => {
209
+ * const txHash = await sendTransaction([{ to: '0x...', value: '0x...' }]);
210
+ * console.log('Signed:', txHash);
211
+ * };
212
+ * ```
213
+ */
214
+ declare function useWaapTransaction(providerOrOptions?: TransactionProvider | UseWaapTransactionOptions, explicitOptions?: UseWaapTransactionOptions): UseWaapTransactionReturn;
215
+ //#endregion
216
+ //#region src/hooks/useWaapAuth.d.ts
217
+ /** Return type for useWaapAuth hook. */
218
+ interface UseWaapAuthReturn {
219
+ /** True once connect event fires (wallet is ready to use). */
220
+ isConnected: boolean;
221
+ /** True while LITE onboarding is in progress. */
222
+ isPending: boolean;
223
+ /** True when LITE onboarding initialized successfully. */
224
+ squidReady: boolean;
225
+ /** Error message if LITE onboarding failed (wallet falls back to standard mode). */
226
+ error: string | null;
227
+ /** Current EVM address (lite address once onboarding succeeded, standard otherwise). */
228
+ address: string | null;
229
+ /** Lite Sui address once onboarding succeeded, else null. */
230
+ suiAddress: string | null;
231
+ /** Lite Solana address once onboarding succeeded, else null. */
232
+ solanaAddress: string | null;
233
+ /** Public lifecycle; the legacy readiness booleans above derive from it. */
234
+ squidStatus: WaaPSquidStatus;
235
+ }
236
+ /**
237
+ * React hook for tracking the multichain LITE ("Squid" brand) onboarding
238
+ * state. Pass `initWaaPSquid().session` (or an individual chain facade).
239
+ */
240
+ declare function useWaapAuth(provider: {
241
+ on: (event: string, listener: (...args: any[]) => void) => any;
242
+ removeListener: (event: string, listener: (...args: any[]) => void) => any;
243
+ getSquidStatus?: () => WaaPSquidStatus;
244
+ } | null): UseWaapAuthReturn;
245
+ //#endregion
246
+ export { WAAP_EVENTS as _, useWaapTransaction as a, AsyncEventType as c, AsyncSignPendingEvent as d, AsyncTxConfirmedEvent as f, SilkOptions as g, AsyncTxResponse as h, UseWaapTransactionReturn as i, AsyncSignCompleteEvent as l, AsyncTxPendingEvent as m, TxState as n, Async2faRequiredEvent as o, AsyncTxFailedEvent as p, UseWaapTransactionOptions as r, AsyncEvent as s, useWaapAuth as t, AsyncSignFailedEvent as u };
@@ -0,0 +1 @@
1
+ import"./esm-B4jz8Emb.mjs";import{t as e}from"./asyncSigning-CzqBbYDP.mjs";import{useCallback as t,useEffect as n,useRef as r,useState as i}from"react";function a(e,a){let o=e&&`request`in e?e:void 0,s=o?a:e,[c,l]=i(new Map),u=r(s);return n(()=>{u.current=s},[s]),n(()=>{let e=o||window.waap||window.silk;if(!e){console.warn(`[useWaapTransaction] WaaP provider not found. Make sure initWaaP() was called.`);return}let t=e=>{l(t=>{let n=new Map(t);return n.set(e.txHash,{status:`signed`,txHash:e.txHash,pendingTxId:e.pendingTxId,signature:e.signature,serializedTx:e.serializedTx}),n}),u.current?.onSigned?.(e)},n=e=>{l(t=>{let n=new Map(t),r=n.get(e.txHash);return n.set(e.txHash,{...r??{txHash:e.txHash},status:`tx_pending`,txHash:e.txHash,pendingTxId:e.pendingTxId}),n}),u.current?.onTxPending?.(e)},r=e=>{l(t=>{let n=new Map(t),r=n.get(e.txHash);return n.set(e.txHash,{...r??{txHash:e.txHash},status:`confirmed`,txHash:e.txHash,pendingTxId:e.pendingTxId,receipt:e.receipt}),n}),u.current?.onConfirmed?.(e)},i=e=>{l(t=>{let n=new Map(t),r=n.get(e.txHash);return n.set(e.txHash,{...r??{txHash:e.txHash},status:`failed`,txHash:e.txHash,pendingTxId:e.pendingTxId,error:e.error,stage:e.stage}),n}),u.current?.onFailed?.(e)};return e.on(`waap_sign_complete`,t),e.on(`waap_tx_pending`,n),e.on(`waap_tx_confirmed`,r),e.on(`waap_tx_failed`,i),()=>{e.removeListener?.(`waap_sign_complete`,t),e.removeListener?.(`waap_tx_pending`,n),e.removeListener?.(`waap_tx_confirmed`,r),e.removeListener?.(`waap_tx_failed`,i)}},[o]),{sendTransaction:t(async e=>{let t=o||window.waap||window.silk;if(!t)throw Error(`WaaP provider not found`);return await t.request({method:`eth_sendTransaction`,params:e})},[o]),signTransaction:t(async e=>{let t=o||window.waap||window.silk;if(!t)throw Error(`WaaP provider not found`);return t.request({method:`eth_signTransaction`,params:e})},[o]),pendingTransactions:c,isAnyPending:Array.from(c.values()).some(e=>e.status===`signed`||e.status===`tx_pending`)}}const o=()=>({state:`absent`}),s=(e,t)=>e?.getSquidStatus?.()??t;function c(t){let[r,a]=i(!1),[c,l]=i(()=>s(t,o())),[u,d]=i(null),[f,p]=i(null),[m,h]=i(null);return n(()=>{if(!t)return;let n=e=>{let n=s(t,e);return l(n),n};n(o());let r=e=>{let t=e.transactionDigest;n({state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e.message?{message:e.message}:{}})},i=e=>{n({state:`active`}).state===`active`&&(d(e.evm),p(e.sui??null),h(e.solana??null))},c=e=>{n({state:`failed`,message:e.error})},u=()=>a(!0),f=e=>{d(e.length>0?e[0]:null)},m=()=>{a(!1),l(o()),d(null),p(null),h(null)};return t.on(e.squidPending,r),t.on(e.squidReady,i),t.on(e.squidFailed,c),t.on(`connect`,u),t.on(`accountsChanged`,f),t.on(`disconnect`,m),()=>{t.removeListener(e.squidPending,r),t.removeListener(e.squidReady,i),t.removeListener(e.squidFailed,c),t.removeListener(`connect`,u),t.removeListener(`accountsChanged`,f),t.removeListener(`disconnect`,m)}},[t]),{isConnected:r,isPending:c.state===`provisioning`||c.state===`awaiting-network`,squidReady:c.state===`active`,error:c.state===`failed`?c.message??null:null,address:u,suiAddress:f,solanaAddress:m,squidStatus:c}}export{a as n,c as t};
@@ -0,0 +1 @@
1
+ require("./esm-D5fDQenf.js");const e=require("./asyncSigning-B0KrmKk7.js");let t=require("react");function n(e,n){let r=e&&`request`in e?e:void 0,i=r?n:e,[a,o]=(0,t.useState)(new Map),s=(0,t.useRef)(i);return(0,t.useEffect)(()=>{s.current=i},[i]),(0,t.useEffect)(()=>{let e=r||window.waap||window.silk;if(!e){console.warn(`[useWaapTransaction] WaaP provider not found. Make sure initWaaP() was called.`);return}let t=e=>{o(t=>{let n=new Map(t);return n.set(e.txHash,{status:`signed`,txHash:e.txHash,pendingTxId:e.pendingTxId,signature:e.signature,serializedTx:e.serializedTx}),n}),s.current?.onSigned?.(e)},n=e=>{o(t=>{let n=new Map(t),r=n.get(e.txHash);return n.set(e.txHash,{...r??{txHash:e.txHash},status:`tx_pending`,txHash:e.txHash,pendingTxId:e.pendingTxId}),n}),s.current?.onTxPending?.(e)},i=e=>{o(t=>{let n=new Map(t),r=n.get(e.txHash);return n.set(e.txHash,{...r??{txHash:e.txHash},status:`confirmed`,txHash:e.txHash,pendingTxId:e.pendingTxId,receipt:e.receipt}),n}),s.current?.onConfirmed?.(e)},a=e=>{o(t=>{let n=new Map(t),r=n.get(e.txHash);return n.set(e.txHash,{...r??{txHash:e.txHash},status:`failed`,txHash:e.txHash,pendingTxId:e.pendingTxId,error:e.error,stage:e.stage}),n}),s.current?.onFailed?.(e)};return e.on(`waap_sign_complete`,t),e.on(`waap_tx_pending`,n),e.on(`waap_tx_confirmed`,i),e.on(`waap_tx_failed`,a),()=>{e.removeListener?.(`waap_sign_complete`,t),e.removeListener?.(`waap_tx_pending`,n),e.removeListener?.(`waap_tx_confirmed`,i),e.removeListener?.(`waap_tx_failed`,a)}},[r]),{sendTransaction:(0,t.useCallback)(async e=>{let t=r||window.waap||window.silk;if(!t)throw Error(`WaaP provider not found`);return await t.request({method:`eth_sendTransaction`,params:e})},[r]),signTransaction:(0,t.useCallback)(async e=>{let t=r||window.waap||window.silk;if(!t)throw Error(`WaaP provider not found`);return t.request({method:`eth_signTransaction`,params:e})},[r]),pendingTransactions:a,isAnyPending:Array.from(a.values()).some(e=>e.status===`signed`||e.status===`tx_pending`)}}const r=()=>({state:`absent`}),i=(e,t)=>e?.getSquidStatus?.()??t;function a(n){let[a,o]=(0,t.useState)(!1),[s,c]=(0,t.useState)(()=>i(n,r())),[l,u]=(0,t.useState)(null),[d,f]=(0,t.useState)(null),[p,m]=(0,t.useState)(null);return(0,t.useEffect)(()=>{if(!n)return;let t=e=>{let t=i(n,e);return c(t),t};t(r());let a=e=>{let n=e.transactionDigest;t({state:n?`awaiting-network`:`provisioning`,...n?{operationId:n,transactionDigest:n}:{},...e.message?{message:e.message}:{}})},s=e=>{t({state:`active`}).state===`active`&&(u(e.evm),f(e.sui??null),m(e.solana??null))},l=e=>{t({state:`failed`,message:e.error})},d=()=>o(!0),p=e=>{u(e.length>0?e[0]:null)},h=()=>{o(!1),c(r()),u(null),f(null),m(null)};return n.on(e.t.squidPending,a),n.on(e.t.squidReady,s),n.on(e.t.squidFailed,l),n.on(`connect`,d),n.on(`accountsChanged`,p),n.on(`disconnect`,h),()=>{n.removeListener(e.t.squidPending,a),n.removeListener(e.t.squidReady,s),n.removeListener(e.t.squidFailed,l),n.removeListener(`connect`,d),n.removeListener(`accountsChanged`,p),n.removeListener(`disconnect`,h)}},[n]),{isConnected:a,isPending:s.state===`provisioning`||s.state===`awaiting-network`,squidReady:s.state===`active`,error:s.state===`failed`?s.message??null:null,address:l,suiAddress:d,solanaAddress:p,squidStatus:s}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
@@ -0,0 +1,2 @@
1
+ import { t as SilkWalletConnect } from "./WalletConnect-BTT6LtUu.mjs";
2
+ export { SilkWalletConnect, SilkWalletConnect as WaaPWalletConnect };
@@ -0,0 +1,2 @@
1
+ import { t as SilkWalletConnect } from "./WalletConnect-BTT6LtUu.js";
2
+ export { SilkWalletConnect, SilkWalletConnect as WaaPWalletConnect };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./WalletConnect-G-lbqknM.js");exports.SilkWalletConnect=e.t,exports.WaaPWalletConnect=e.t;
@@ -0,0 +1 @@
1
+ import{t as e}from"./WalletConnect-Deg7_JmH.mjs";export{e as SilkWalletConnect,e as WaaPWalletConnect};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@human.tech/waap-sdk",
3
- "version": "2.0.0",
3
+ "version": "2.1.0-staging-fb27bb",
4
4
  "description": "SDK for interacting with WaaP",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {
@@ -8,12 +8,45 @@
8
8
  "types": "./dist/index.d.ts",
9
9
  "require": "./dist/index.js",
10
10
  "import": "./dist/index.mjs"
11
+ },
12
+ "./evm": {
13
+ "types": "./dist/evm.d.ts",
14
+ "require": "./dist/evm.js",
15
+ "import": "./dist/evm.mjs"
16
+ },
17
+ "./sui": {
18
+ "types": "./dist/sui.d.ts",
19
+ "require": "./dist/sui.js",
20
+ "import": "./dist/sui.mjs"
21
+ },
22
+ "./solana": {
23
+ "types": "./dist/solana.d.ts",
24
+ "require": "./dist/solana.js",
25
+ "import": "./dist/solana.mjs"
26
+ },
27
+ "./react": {
28
+ "types": "./dist/react.d.ts",
29
+ "require": "./dist/react.js",
30
+ "import": "./dist/react.mjs"
31
+ },
32
+ "./walletconnect": {
33
+ "types": "./dist/walletconnect.d.ts",
34
+ "require": "./dist/walletconnect.js",
35
+ "import": "./dist/walletconnect.mjs"
11
36
  }
12
37
  },
13
38
  "main": "./dist/index.js",
14
39
  "module": "./dist/index.mjs",
40
+ "sideEffects": [
41
+ "**/WaapComponent.*"
42
+ ],
15
43
  "author": "",
16
44
  "license": "",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://github.com/holonym-foundation/silk.git",
48
+ "directory": "packages/waap-sdk"
49
+ },
17
50
  "private": false,
18
51
  "publishConfig": {
19
52
  "access": "public"
@@ -31,8 +64,14 @@
31
64
  "@types/events": "^3.0.0",
32
65
  "@types/node": "18.15.11",
33
66
  "@types/react": "^18.0.0",
34
- "tsup": "^8.0.0",
35
- "typescript": "^5.0.4"
67
+ "@types/react-dom": "^18.0.0",
68
+ "@typescript/native": "npm:typescript@^7.0.2",
69
+ "jsdom": "^22.0.0",
70
+ "react": "18.3.1",
71
+ "react-dom": "^18.0.0",
72
+ "tsdown": "^0.22.4",
73
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
74
+ "vitest": "^4.1.10"
36
75
  },
37
76
  "peerDependencies": {
38
77
  "react": ">=16.8.0"
@@ -43,23 +82,19 @@
43
82
  }
44
83
  },
45
84
  "dependencies": {
46
- "@metamask/rpc-errors": "^5.1.1",
47
- "@mysten/sui": "^1.45.2",
48
- "@mysten/wallet-standard": "^0.13.0",
49
- "@reown/appkit": "^1.8.17",
50
- "@reown/appkit-adapter-ethers": "^1.8.17",
85
+ "@mysten/sui": "2.17.0",
86
+ "@mysten/wallet-standard": "0.20.3",
87
+ "@reown/appkit": "1.8.22",
88
+ "@reown/appkit-adapter-ethers": "1.8.22",
89
+ "@wallet-standard/wallet": "1.1.1",
51
90
  "ethers": "^6.16.0",
52
- "events": "^3.3.0",
53
- "pino-pretty": "^10.2.0",
54
- "zod": "^3.21.4",
55
- "zod-validation-error": "^1.3.0",
56
- "@human.tech/waap-constants": "1.0.0",
57
- "@human.tech/waap-interface-core": "1.0.0"
91
+ "events": "^3.3.0"
58
92
  },
59
93
  "scripts": {
60
- "build": "tsup",
61
- "build-to-publish": "NODE_ENV=production tsup",
62
- "build:inline-deps": "tsup --no-external",
63
- "dev": "tsup --watch"
94
+ "build": "tsdown --config-loader native",
95
+ "build-to-publish": "NODE_ENV=production tsdown --config-loader native",
96
+ "dev": "tsdown --config-loader native --watch",
97
+ "test": "vitest run && pnpm test:types",
98
+ "test:types": "pnpm build && pnpm exec tsc --noEmit -p tsconfig.public-api.json"
64
99
  }
65
100
  }