@cmdoss/memwal-sdk 0.6.0 → 0.6.2

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 (273) hide show
  1. package/ARCHITECTURE.md +547 -463
  2. package/BENCHMARKS.md +238 -238
  3. package/README.md +181 -142
  4. package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -1
  5. package/dist/ai-sdk/PDWVectorStore.js +4 -1
  6. package/dist/ai-sdk/PDWVectorStore.js.map +1 -1
  7. package/dist/ai-sdk/types.d.ts +2 -2
  8. package/dist/ai-sdk/types.d.ts.map +1 -1
  9. package/dist/browser.d.ts +12 -13
  10. package/dist/browser.d.ts.map +1 -1
  11. package/dist/browser.js +18 -12
  12. package/dist/browser.js.map +1 -1
  13. package/dist/client/ClientMemoryManager.d.ts +1 -0
  14. package/dist/client/ClientMemoryManager.d.ts.map +1 -1
  15. package/dist/client/ClientMemoryManager.js +5 -1
  16. package/dist/client/ClientMemoryManager.js.map +1 -1
  17. package/dist/client/SimplePDWClient.d.ts +23 -0
  18. package/dist/client/SimplePDWClient.d.ts.map +1 -1
  19. package/dist/client/SimplePDWClient.js +19 -6
  20. package/dist/client/SimplePDWClient.js.map +1 -1
  21. package/dist/client/namespaces/BatchNamespace.js +2 -2
  22. package/dist/client/namespaces/BatchNamespace.js.map +1 -1
  23. package/dist/client/namespaces/IndexNamespace.d.ts +38 -9
  24. package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
  25. package/dist/client/namespaces/IndexNamespace.js +77 -10
  26. package/dist/client/namespaces/IndexNamespace.js.map +1 -1
  27. package/dist/client/namespaces/MemoryNamespace.js +3 -3
  28. package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
  29. package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -1
  30. package/dist/client/namespaces/SearchNamespace.js +25 -14
  31. package/dist/client/namespaces/SearchNamespace.js.map +1 -1
  32. package/dist/client/namespaces/StorageNamespace.js +4 -4
  33. package/dist/client/namespaces/StorageNamespace.js.map +1 -1
  34. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
  35. package/dist/client/namespaces/consolidated/BlockchainNamespace.js +49 -1
  36. package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
  37. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +46 -0
  38. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
  39. package/dist/client/namespaces/consolidated/StorageNamespace.js +36 -2
  40. package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
  41. package/dist/client/signers/DappKitSigner.d.ts +136 -0
  42. package/dist/client/signers/DappKitSigner.d.ts.map +1 -0
  43. package/dist/client/signers/DappKitSigner.js +128 -0
  44. package/dist/client/signers/DappKitSigner.js.map +1 -0
  45. package/dist/client/signers/KeypairSigner.d.ts +4 -0
  46. package/dist/client/signers/KeypairSigner.d.ts.map +1 -1
  47. package/dist/client/signers/KeypairSigner.js +6 -0
  48. package/dist/client/signers/KeypairSigner.js.map +1 -1
  49. package/dist/client/signers/UnifiedSigner.d.ts +10 -0
  50. package/dist/client/signers/UnifiedSigner.d.ts.map +1 -1
  51. package/dist/client/signers/WalletAdapterSigner.d.ts +7 -0
  52. package/dist/client/signers/WalletAdapterSigner.d.ts.map +1 -1
  53. package/dist/client/signers/WalletAdapterSigner.js +9 -0
  54. package/dist/client/signers/WalletAdapterSigner.js.map +1 -1
  55. package/dist/client/signers/index.d.ts +3 -0
  56. package/dist/client/signers/index.d.ts.map +1 -1
  57. package/dist/client/signers/index.js +2 -0
  58. package/dist/client/signers/index.js.map +1 -1
  59. package/dist/generated/utils/index.js +1 -1
  60. package/dist/generated/utils/index.js.map +1 -1
  61. package/dist/graph/GraphService.js +1 -1
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/permissions/ConsentRepository.browser.d.ts +56 -0
  67. package/dist/permissions/ConsentRepository.browser.d.ts.map +1 -0
  68. package/dist/permissions/ConsentRepository.browser.js +198 -0
  69. package/dist/permissions/ConsentRepository.browser.js.map +1 -0
  70. package/dist/services/CapabilityService.js +1 -1
  71. package/dist/services/CapabilityService.js.map +1 -1
  72. package/dist/services/EncryptionService.js +1 -1
  73. package/dist/services/EncryptionService.js.map +1 -1
  74. package/dist/services/GeminiAIService.d.ts.map +1 -1
  75. package/dist/services/GeminiAIService.js +283 -27
  76. package/dist/services/GeminiAIService.js.map +1 -1
  77. package/dist/services/MemoryIndexService.d.ts +31 -2
  78. package/dist/services/MemoryIndexService.d.ts.map +1 -1
  79. package/dist/services/MemoryIndexService.js +75 -3
  80. package/dist/services/MemoryIndexService.js.map +1 -1
  81. package/dist/services/StorageService.d.ts +8 -8
  82. package/dist/services/StorageService.d.ts.map +1 -1
  83. package/dist/services/StorageService.js.map +1 -1
  84. package/dist/services/VectorService.js +2 -2
  85. package/dist/services/VectorService.js.map +1 -1
  86. package/dist/services/storage/BlobAttributesManager.d.ts +4 -4
  87. package/dist/services/storage/BlobAttributesManager.d.ts.map +1 -1
  88. package/dist/services/storage/BlobAttributesManager.js +6 -15
  89. package/dist/services/storage/BlobAttributesManager.js.map +1 -1
  90. package/dist/services/storage/QuiltBatchManager.d.ts +33 -8
  91. package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
  92. package/dist/services/storage/QuiltBatchManager.js +153 -48
  93. package/dist/services/storage/QuiltBatchManager.js.map +1 -1
  94. package/dist/services/storage/WalrusMetadataManager.d.ts +2 -2
  95. package/dist/services/storage/WalrusMetadataManager.d.ts.map +1 -1
  96. package/dist/services/storage/WalrusMetadataManager.js +2 -5
  97. package/dist/services/storage/WalrusMetadataManager.js.map +1 -1
  98. package/dist/services/storage/WalrusStorageManager.d.ts +2 -2
  99. package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -1
  100. package/dist/services/storage/WalrusStorageManager.js +7 -11
  101. package/dist/services/storage/WalrusStorageManager.js.map +1 -1
  102. package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
  103. package/dist/utils/rebuildIndexNode.js +109 -35
  104. package/dist/utils/rebuildIndexNode.js.map +1 -1
  105. package/dist/vector/NodeHnswService.d.ts.map +1 -1
  106. package/dist/vector/NodeHnswService.js +26 -7
  107. package/dist/vector/NodeHnswService.js.map +1 -1
  108. package/dist/wallet/MainWalletService.js +1 -1
  109. package/dist/wallet/MainWalletService.js.map +1 -1
  110. package/package.json +10 -3
  111. package/src/access/index.ts +8 -8
  112. package/src/aggregation/index.ts +8 -8
  113. package/src/ai-sdk/PDWVectorStore.ts +4 -1
  114. package/src/ai-sdk/types.ts +2 -2
  115. package/src/browser.ts +28 -24
  116. package/src/client/ClientMemoryManager.ts +6 -1
  117. package/src/client/SimplePDWClient.ts +57 -15
  118. package/src/client/namespaces/BatchNamespace.ts +2 -2
  119. package/src/client/namespaces/IndexNamespace.ts +89 -11
  120. package/src/client/namespaces/MemoryNamespace.ts +3 -3
  121. package/src/client/namespaces/SearchNamespace.ts +27 -14
  122. package/src/client/namespaces/StorageNamespace.ts +4 -4
  123. package/src/client/namespaces/consolidated/BlockchainNamespace.ts +55 -1
  124. package/src/client/namespaces/consolidated/StorageNamespace.ts +59 -2
  125. package/src/client/signers/DappKitSigner.ts +207 -0
  126. package/src/client/signers/KeypairSigner.ts +7 -0
  127. package/src/client/signers/UnifiedSigner.ts +11 -0
  128. package/src/client/signers/WalletAdapterSigner.ts +10 -0
  129. package/src/client/signers/index.ts +7 -0
  130. package/src/generated/pdw/capability.ts +319 -319
  131. package/src/generated/utils/index.ts +1 -1
  132. package/src/graph/GraphService.ts +1 -1
  133. package/src/index.ts +16 -0
  134. package/src/permissions/ConsentRepository.browser.ts +249 -0
  135. package/src/permissions/index.ts +9 -9
  136. package/src/services/CapabilityService.ts +1 -1
  137. package/src/services/EncryptionService.ts +1 -1
  138. package/src/services/GeminiAIService.ts +283 -27
  139. package/src/services/MemoryIndexService.ts +85 -3
  140. package/src/services/StorageService.ts +8 -8
  141. package/src/services/VectorService.ts +2 -2
  142. package/src/services/storage/BlobAttributesManager.ts +10 -19
  143. package/src/services/storage/QuiltBatchManager.ts +178 -50
  144. package/src/services/storage/WalrusMetadataManager.ts +4 -7
  145. package/src/services/storage/WalrusStorageManager.ts +10 -13
  146. package/src/utils/rebuildIndexNode.ts +126 -43
  147. package/src/vector/NodeHnswService.ts +29 -7
  148. package/src/wallet/MainWalletService.ts +1 -1
  149. package/src/wallet/index.ts +17 -17
  150. package/dist/api/client.d.ts +0 -43
  151. package/dist/api/client.d.ts.map +0 -1
  152. package/dist/api/client.js +0 -136
  153. package/dist/api/client.js.map +0 -1
  154. package/dist/chat/index.d.ts +0 -13
  155. package/dist/chat/index.d.ts.map +0 -1
  156. package/dist/chat/index.js +0 -14
  157. package/dist/chat/index.js.map +0 -1
  158. package/dist/client/namespaces/ChatNamespace.d.ts +0 -110
  159. package/dist/client/namespaces/ChatNamespace.d.ts.map +0 -1
  160. package/dist/client/namespaces/ChatNamespace.js +0 -123
  161. package/dist/client/namespaces/ChatNamespace.js.map +0 -1
  162. package/dist/encryption/index.d.ts +0 -14
  163. package/dist/encryption/index.d.ts.map +0 -1
  164. package/dist/encryption/index.js +0 -14
  165. package/dist/encryption/index.js.map +0 -1
  166. package/dist/graph/BrowserKnowledgeGraphManager.d.ts +0 -101
  167. package/dist/graph/BrowserKnowledgeGraphManager.d.ts.map +0 -1
  168. package/dist/graph/BrowserKnowledgeGraphManager.js +0 -411
  169. package/dist/graph/BrowserKnowledgeGraphManager.js.map +0 -1
  170. package/dist/hooks.wip/index.d.ts +0 -55
  171. package/dist/hooks.wip/index.d.ts.map +0 -1
  172. package/dist/hooks.wip/index.js +0 -58
  173. package/dist/hooks.wip/index.js.map +0 -1
  174. package/dist/hooks.wip/useCreateMemory.d.ts +0 -111
  175. package/dist/hooks.wip/useCreateMemory.d.ts.map +0 -1
  176. package/dist/hooks.wip/useCreateMemory.js +0 -149
  177. package/dist/hooks.wip/useCreateMemory.js.map +0 -1
  178. package/dist/hooks.wip/useCreateMemoryBatch.d.ts +0 -122
  179. package/dist/hooks.wip/useCreateMemoryBatch.d.ts.map +0 -1
  180. package/dist/hooks.wip/useCreateMemoryBatch.js +0 -221
  181. package/dist/hooks.wip/useCreateMemoryBatch.js.map +0 -1
  182. package/dist/hooks.wip/useKnowledgeGraph.d.ts +0 -66
  183. package/dist/hooks.wip/useKnowledgeGraph.d.ts.map +0 -1
  184. package/dist/hooks.wip/useKnowledgeGraph.js +0 -229
  185. package/dist/hooks.wip/useKnowledgeGraph.js.map +0 -1
  186. package/dist/hooks.wip/useMemoryChat.d.ts +0 -106
  187. package/dist/hooks.wip/useMemoryChat.d.ts.map +0 -1
  188. package/dist/hooks.wip/useMemoryChat.js +0 -284
  189. package/dist/hooks.wip/useMemoryChat.js.map +0 -1
  190. package/dist/hooks.wip/useMemoryIndex.d.ts +0 -90
  191. package/dist/hooks.wip/useMemoryIndex.d.ts.map +0 -1
  192. package/dist/hooks.wip/useMemoryIndex.js +0 -218
  193. package/dist/hooks.wip/useMemoryIndex.js.map +0 -1
  194. package/dist/hooks.wip/useMemoryManager.d.ts +0 -35
  195. package/dist/hooks.wip/useMemoryManager.d.ts.map +0 -1
  196. package/dist/hooks.wip/useMemoryManager.js +0 -86
  197. package/dist/hooks.wip/useMemoryManager.js.map +0 -1
  198. package/dist/hooks.wip/useMemorySearch.d.ts +0 -100
  199. package/dist/hooks.wip/useMemorySearch.d.ts.map +0 -1
  200. package/dist/hooks.wip/useMemorySearch.js +0 -278
  201. package/dist/hooks.wip/useMemorySearch.js.map +0 -1
  202. package/dist/hooks.wip/useMemoryServices.d.ts +0 -80
  203. package/dist/hooks.wip/useMemoryServices.d.ts.map +0 -1
  204. package/dist/hooks.wip/useMemoryServices.js +0 -264
  205. package/dist/hooks.wip/useMemoryServices.js.map +0 -1
  206. package/dist/hooks.wip/usePDWRAG.d.ts +0 -112
  207. package/dist/hooks.wip/usePDWRAG.d.ts.map +0 -1
  208. package/dist/hooks.wip/usePDWRAG.js +0 -121
  209. package/dist/hooks.wip/usePDWRAG.js.map +0 -1
  210. package/dist/hooks.wip/usePDWVectorStore.d.ts +0 -68
  211. package/dist/hooks.wip/usePDWVectorStore.d.ts.map +0 -1
  212. package/dist/hooks.wip/usePDWVectorStore.js +0 -102
  213. package/dist/hooks.wip/usePDWVectorStore.js.map +0 -1
  214. package/dist/hooks.wip/useRetrieveEmbedding.d.ts +0 -138
  215. package/dist/hooks.wip/useRetrieveEmbedding.d.ts.map +0 -1
  216. package/dist/hooks.wip/useRetrieveEmbedding.js +0 -121
  217. package/dist/hooks.wip/useRetrieveEmbedding.js.map +0 -1
  218. package/dist/hooks.wip/useSearchMemories.d.ts +0 -103
  219. package/dist/hooks.wip/useSearchMemories.d.ts.map +0 -1
  220. package/dist/hooks.wip/useSearchMemories.js +0 -146
  221. package/dist/hooks.wip/useSearchMemories.js.map +0 -1
  222. package/dist/hooks.wip/useStoreEmbedding.d.ts +0 -174
  223. package/dist/hooks.wip/useStoreEmbedding.d.ts.map +0 -1
  224. package/dist/hooks.wip/useStoreEmbedding.js +0 -167
  225. package/dist/hooks.wip/useStoreEmbedding.js.map +0 -1
  226. package/dist/hooks.wip/useWalletMemories.d.ts +0 -119
  227. package/dist/hooks.wip/useWalletMemories.d.ts.map +0 -1
  228. package/dist/hooks.wip/useWalletMemories.js +0 -166
  229. package/dist/hooks.wip/useWalletMemories.js.map +0 -1
  230. package/dist/hooks.wip/utils/cache.d.ts +0 -25
  231. package/dist/hooks.wip/utils/cache.d.ts.map +0 -1
  232. package/dist/hooks.wip/utils/cache.js +0 -38
  233. package/dist/hooks.wip/utils/cache.js.map +0 -1
  234. package/dist/hooks.wip/utils/types.d.ts +0 -138
  235. package/dist/hooks.wip/utils/types.d.ts.map +0 -1
  236. package/dist/hooks.wip/utils/types.js +0 -5
  237. package/dist/hooks.wip/utils/types.js.map +0 -1
  238. package/dist/infrastructure/ai/EmbeddingService.d.ts +0 -101
  239. package/dist/infrastructure/ai/EmbeddingService.d.ts.map +0 -1
  240. package/dist/infrastructure/ai/EmbeddingService.js +0 -242
  241. package/dist/infrastructure/ai/EmbeddingService.js.map +0 -1
  242. package/dist/infrastructure/ai/GeminiAIService.d.ts +0 -84
  243. package/dist/infrastructure/ai/GeminiAIService.d.ts.map +0 -1
  244. package/dist/infrastructure/ai/GeminiAIService.js +0 -300
  245. package/dist/infrastructure/ai/GeminiAIService.js.map +0 -1
  246. package/dist/infrastructure/ai/index.d.ts +0 -8
  247. package/dist/infrastructure/ai/index.d.ts.map +0 -1
  248. package/dist/infrastructure/ai/index.js +0 -8
  249. package/dist/infrastructure/ai/index.js.map +0 -1
  250. package/dist/memory/index.d.ts +0 -13
  251. package/dist/memory/index.d.ts.map +0 -1
  252. package/dist/memory/index.js +0 -14
  253. package/dist/memory/index.js.map +0 -1
  254. package/dist/services/ChatService.d.ts +0 -89
  255. package/dist/services/ChatService.d.ts.map +0 -1
  256. package/dist/services/ChatService.js +0 -319
  257. package/dist/services/ChatService.js.map +0 -1
  258. package/dist/transactions/index.d.ts +0 -13
  259. package/dist/transactions/index.d.ts.map +0 -1
  260. package/dist/transactions/index.js +0 -14
  261. package/dist/transactions/index.js.map +0 -1
  262. package/dist/types/wallet.d.ts +0 -12
  263. package/dist/types/wallet.d.ts.map +0 -1
  264. package/dist/types/wallet.js +0 -13
  265. package/dist/types/wallet.js.map +0 -1
  266. package/dist/view/ViewService.d.ts +0 -136
  267. package/dist/view/ViewService.d.ts.map +0 -1
  268. package/dist/view/ViewService.js +0 -325
  269. package/dist/view/ViewService.js.map +0 -1
  270. package/dist/view/index.d.ts +0 -7
  271. package/dist/view/index.d.ts.map +0 -1
  272. package/dist/view/index.js +0 -7
  273. package/dist/view/index.js.map +0 -1
@@ -0,0 +1,207 @@
1
+ /**
2
+ * DappKit Signer Implementation
3
+ *
4
+ * Adapter for @mysten/dapp-kit hooks to work with SimplePDWClient.
5
+ * Bridges dApp-kit's hook-based API with SDK's UnifiedSigner interface.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { DappKitSigner, createSimplePDWClient } from '@cmdoss/memwal-sdk';
10
+ * import { useCurrentAccount, useSignAndExecuteTransaction, useSuiClient } from '@mysten/dapp-kit';
11
+ *
12
+ * function MyComponent() {
13
+ * const account = useCurrentAccount();
14
+ * const client = useSuiClient();
15
+ * const { mutateAsync: signAndExecute } = useSignAndExecuteTransaction();
16
+ *
17
+ * const signer = useMemo(() => {
18
+ * if (!account) return null;
19
+ * return new DappKitSigner({
20
+ * address: account.address,
21
+ * client,
22
+ * signAndExecuteTransaction: signAndExecute,
23
+ * });
24
+ * }, [account, client, signAndExecute]);
25
+ *
26
+ * // Now use signer with SDK
27
+ * const pdw = await createSimplePDWClient({ signer, network: 'testnet' });
28
+ * }
29
+ * ```
30
+ *
31
+ * @module client/signers
32
+ */
33
+
34
+ import type { Transaction } from '@mysten/sui/transactions';
35
+ import type { SuiClient } from '@mysten/sui/client';
36
+ import type { Signer } from '@mysten/sui/cryptography';
37
+ import type {
38
+ UnifiedSigner,
39
+ SignAndExecuteResult,
40
+ SignPersonalMessageResult
41
+ } from './UnifiedSigner';
42
+
43
+ /**
44
+ * Function signature for dApp-kit's signAndExecuteTransaction
45
+ * Compatible with useSignAndExecuteTransaction().mutateAsync
46
+ */
47
+ export interface DappKitSignAndExecuteFn {
48
+ (params: { transaction: Transaction }): Promise<{
49
+ digest: string;
50
+ effects?: any;
51
+ events?: any[];
52
+ objectChanges?: any[];
53
+ }>;
54
+ }
55
+
56
+ /**
57
+ * Function signature for dApp-kit's signPersonalMessage
58
+ * Compatible with useSignPersonalMessage().mutateAsync
59
+ */
60
+ export interface DappKitSignPersonalMessageFn {
61
+ (params: { message: Uint8Array }): Promise<{
62
+ signature: string;
63
+ bytes?: Uint8Array;
64
+ }>;
65
+ }
66
+
67
+ /**
68
+ * Configuration for DappKitSigner
69
+ */
70
+ export interface DappKitSignerConfig {
71
+ /**
72
+ * User's Sui address (from useCurrentAccount().address)
73
+ */
74
+ address: string;
75
+
76
+ /**
77
+ * SuiClient instance (from useSuiClient())
78
+ */
79
+ client: SuiClient;
80
+
81
+ /**
82
+ * signAndExecuteTransaction function (from useSignAndExecuteTransaction().mutateAsync)
83
+ */
84
+ signAndExecuteTransaction: DappKitSignAndExecuteFn;
85
+
86
+ /**
87
+ * signPersonalMessage function (from useSignPersonalMessage().mutateAsync)
88
+ * Optional - only required for operations that need message signing
89
+ */
90
+ signPersonalMessage?: DappKitSignPersonalMessageFn;
91
+
92
+ /**
93
+ * Public key bytes (optional, from useCurrentAccount().publicKey)
94
+ */
95
+ publicKey?: Uint8Array;
96
+ }
97
+
98
+ /**
99
+ * DappKitSigner - Adapter for @mysten/dapp-kit hooks
100
+ *
101
+ * Wraps dApp-kit's useSignAndExecuteTransaction and useSignPersonalMessage hooks
102
+ * to provide a UnifiedSigner interface compatible with SDK managers.
103
+ *
104
+ * This adapter does NOT depend on React - it accepts function references
105
+ * that can come from dApp-kit hooks or any other source with compatible signatures.
106
+ */
107
+ export class DappKitSigner implements UnifiedSigner {
108
+ private config: DappKitSignerConfig;
109
+
110
+ constructor(config: DappKitSignerConfig) {
111
+ if (!config.address) {
112
+ throw new Error('DappKitSigner requires an address');
113
+ }
114
+ if (!config.client) {
115
+ throw new Error('DappKitSigner requires a SuiClient');
116
+ }
117
+ if (!config.signAndExecuteTransaction) {
118
+ throw new Error('DappKitSigner requires signAndExecuteTransaction function');
119
+ }
120
+ this.config = config;
121
+ }
122
+
123
+ /**
124
+ * Sign and execute transaction using dApp-kit hook
125
+ *
126
+ * Wraps the dApp-kit signAndExecuteTransaction function and waits for
127
+ * transaction finalization to prevent gas coin version conflicts.
128
+ */
129
+ async signAndExecuteTransaction(transaction: Transaction): Promise<SignAndExecuteResult> {
130
+ const result = await this.config.signAndExecuteTransaction({ transaction });
131
+
132
+ // Wait for transaction to be finalized (important for gas coin versioning)
133
+ if (result.digest) {
134
+ try {
135
+ await this.config.client.waitForTransaction({ digest: result.digest });
136
+ } catch (waitError) {
137
+ console.warn('DappKitSigner: waitForTransaction failed:', waitError);
138
+ // Continue anyway - transaction was submitted
139
+ }
140
+ }
141
+
142
+ return {
143
+ digest: result.digest,
144
+ effects: result.effects,
145
+ events: result.events,
146
+ objectChanges: result.objectChanges,
147
+ };
148
+ }
149
+
150
+ /**
151
+ * Sign personal message using dApp-kit hook
152
+ *
153
+ * Required for SEAL encryption identity and other message signing operations.
154
+ */
155
+ async signPersonalMessage(message: Uint8Array): Promise<SignPersonalMessageResult> {
156
+ if (!this.config.signPersonalMessage) {
157
+ throw new Error(
158
+ 'DappKitSigner: signPersonalMessage not configured. ' +
159
+ 'Pass signPersonalMessage function from useSignPersonalMessage().mutateAsync'
160
+ );
161
+ }
162
+
163
+ const result = await this.config.signPersonalMessage({ message });
164
+
165
+ return {
166
+ signature: result.signature,
167
+ bytes: result.bytes || message,
168
+ };
169
+ }
170
+
171
+ /**
172
+ * Get Sui address
173
+ */
174
+ getAddress(): string {
175
+ return this.config.address;
176
+ }
177
+
178
+ /**
179
+ * Get public key (if available)
180
+ */
181
+ getPublicKey(): Uint8Array | null {
182
+ return this.config.publicKey || null;
183
+ }
184
+
185
+ /**
186
+ * Get underlying Signer
187
+ *
188
+ * Note: dApp-kit does not expose the underlying Signer for security reasons.
189
+ * Use KeypairSigner for backend/Node.js environments that need raw Signer access.
190
+ */
191
+ getSigner(): Signer {
192
+ throw new Error(
193
+ 'DappKitSigner does not expose underlying Signer. ' +
194
+ 'Browser wallets do not provide raw Signer access for security. ' +
195
+ 'Use KeypairSigner for backend/Node.js environments.'
196
+ );
197
+ }
198
+
199
+ /**
200
+ * Get SuiClient
201
+ *
202
+ * Returns the SuiClient instance for managers that need to build transactions.
203
+ */
204
+ getClient(): SuiClient {
205
+ return this.config.client;
206
+ }
207
+ }
@@ -98,4 +98,11 @@ export class KeypairSigner implements UnifiedSigner {
98
98
  getSigner(): Signer {
99
99
  return this.keypair;
100
100
  }
101
+
102
+ /**
103
+ * Get SuiClient instance
104
+ */
105
+ getClient(): SuiClient {
106
+ return this.client;
107
+ }
101
108
  }
@@ -12,6 +12,7 @@
12
12
 
13
13
  import type { Transaction } from '@mysten/sui/transactions';
14
14
  import type { Signer } from '@mysten/sui/cryptography';
15
+ import type { SuiClient } from '@mysten/sui/client';
15
16
 
16
17
  /**
17
18
  * Result of signing and executing a transaction
@@ -96,4 +97,14 @@ export interface UnifiedSigner {
96
97
  * @returns Signer instance or throws error if not available
97
98
  */
98
99
  getSigner(): Signer;
100
+
101
+ /**
102
+ * Get the SuiClient instance (optional)
103
+ *
104
+ * Used by managers that need to build transactions or wait for confirmations.
105
+ * Returns null if not available (e.g., WalletAdapterSigner).
106
+ *
107
+ * @returns SuiClient instance or null
108
+ */
109
+ getClient?(): SuiClient | null;
99
110
  }
@@ -146,4 +146,14 @@ export class WalletAdapterSigner implements UnifiedSigner {
146
146
  'Use KeypairSigner for backend/Node.js environments.'
147
147
  );
148
148
  }
149
+
150
+ /**
151
+ * Get SuiClient instance
152
+ *
153
+ * Note: WalletAdapter doesn't provide SuiClient.
154
+ * Use DappKitSigner if you need client access.
155
+ */
156
+ getClient(): null {
157
+ return null;
158
+ }
149
159
  }
@@ -4,6 +4,7 @@
4
4
  * Unified signer interface supporting multiple signing methods:
5
5
  * - Keypair (Node.js, backend, CLI)
6
6
  * - WalletAdapter (Browser, React dApps)
7
+ * - DappKit (Browser, @mysten/dapp-kit hooks)
7
8
  *
8
9
  * @module client/signers
9
10
  */
@@ -17,3 +18,9 @@ export type {
17
18
  export { KeypairSigner } from './KeypairSigner';
18
19
  export { WalletAdapterSigner } from './WalletAdapterSigner';
19
20
  export type { WalletAdapter } from './WalletAdapterSigner';
21
+ export { DappKitSigner } from './DappKitSigner';
22
+ export type {
23
+ DappKitSignerConfig,
24
+ DappKitSignAndExecuteFn,
25
+ DappKitSignPersonalMessageFn
26
+ } from './DappKitSigner';