@cmdoss/memwal-sdk 0.6.2 → 0.8.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/ARCHITECTURE.md +547 -547
- package/BENCHMARKS.md +238 -238
- package/README.md +310 -181
- package/dist/ai-sdk/tools.d.ts +2 -2
- package/dist/ai-sdk/tools.js +2 -2
- package/dist/client/ClientMemoryManager.js +2 -2
- package/dist/client/ClientMemoryManager.js.map +1 -1
- package/dist/client/PersonalDataWallet.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.d.ts +29 -1
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +45 -13
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.d.ts +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.js +1 -1
- package/dist/client/namespaces/MemoryNamespace.d.ts +31 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +272 -39
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/AINamespace.d.ts +2 -2
- package/dist/client/namespaces/consolidated/AINamespace.js +2 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +12 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js +62 -4
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +67 -2
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js +549 -16
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/config/ConfigurationHelper.js +61 -61
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/graph/GraphService.js +21 -21
- package/dist/graph/GraphService.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/seal/EncryptionService.d.ts +9 -5
- package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -1
- package/dist/infrastructure/seal/EncryptionService.js +37 -15
- package/dist/infrastructure/seal/EncryptionService.js.map +1 -1
- package/dist/infrastructure/seal/SealService.d.ts +13 -5
- package/dist/infrastructure/seal/SealService.d.ts.map +1 -1
- package/dist/infrastructure/seal/SealService.js +36 -34
- package/dist/infrastructure/seal/SealService.js.map +1 -1
- package/dist/langchain/createPDWRAG.js +30 -30
- package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -1
- package/dist/retrieval/MemoryDecryptionPipeline.js +2 -1
- package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -1
- package/dist/retrieval/MemoryRetrievalService.d.ts +31 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -1
- package/dist/retrieval/MemoryRetrievalService.js +44 -4
- package/dist/retrieval/MemoryRetrievalService.js.map +1 -1
- package/dist/services/CapabilityService.d.ts.map +1 -1
- package/dist/services/CapabilityService.js +30 -14
- package/dist/services/CapabilityService.js.map +1 -1
- package/dist/services/CrossContextPermissionService.d.ts.map +1 -1
- package/dist/services/CrossContextPermissionService.js +9 -7
- package/dist/services/CrossContextPermissionService.js.map +1 -1
- package/dist/services/EmbeddingService.d.ts +28 -1
- package/dist/services/EmbeddingService.d.ts.map +1 -1
- package/dist/services/EmbeddingService.js +54 -0
- package/dist/services/EmbeddingService.js.map +1 -1
- package/dist/services/EncryptionService.d.ts.map +1 -1
- package/dist/services/EncryptionService.js +6 -5
- package/dist/services/EncryptionService.js.map +1 -1
- package/dist/services/GeminiAIService.js +309 -309
- package/dist/services/IndexManager.d.ts +5 -1
- package/dist/services/IndexManager.d.ts.map +1 -1
- package/dist/services/IndexManager.js +17 -40
- package/dist/services/IndexManager.js.map +1 -1
- package/dist/services/QueryService.js +1 -1
- package/dist/services/QueryService.js.map +1 -1
- package/dist/services/StorageService.d.ts +11 -0
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js +73 -10
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/TransactionService.d.ts +20 -0
- package/dist/services/TransactionService.d.ts.map +1 -1
- package/dist/services/TransactionService.js +43 -0
- package/dist/services/TransactionService.js.map +1 -1
- package/dist/services/ViewService.js +2 -2
- package/dist/services/ViewService.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +101 -1
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +410 -20
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/index.d.ts +1 -1
- package/dist/services/storage/index.d.ts.map +1 -1
- package/dist/services/storage/index.js.map +1 -1
- package/dist/utils/LRUCache.d.ts +106 -0
- package/dist/utils/LRUCache.d.ts.map +1 -0
- package/dist/utils/LRUCache.js +281 -0
- package/dist/utils/LRUCache.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/memoryIndexOnChain.d.ts +212 -0
- package/dist/utils/memoryIndexOnChain.d.ts.map +1 -0
- package/dist/utils/memoryIndexOnChain.js +312 -0
- package/dist/utils/memoryIndexOnChain.js.map +1 -0
- package/dist/utils/rebuildIndexNode.d.ts +29 -0
- package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
- package/dist/utils/rebuildIndexNode.js +366 -98
- package/dist/utils/rebuildIndexNode.js.map +1 -1
- package/dist/vector/HnswWasmService.d.ts +20 -5
- package/dist/vector/HnswWasmService.d.ts.map +1 -1
- package/dist/vector/HnswWasmService.js +73 -40
- package/dist/vector/HnswWasmService.js.map +1 -1
- package/dist/vector/IHnswService.d.ts +10 -1
- package/dist/vector/IHnswService.d.ts.map +1 -1
- package/dist/vector/IHnswService.js.map +1 -1
- package/dist/vector/NodeHnswService.d.ts +16 -0
- package/dist/vector/NodeHnswService.d.ts.map +1 -1
- package/dist/vector/NodeHnswService.js +84 -5
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/dist/vector/createHnswService.d.ts +1 -1
- package/dist/vector/createHnswService.js +1 -1
- package/dist/vector/index.d.ts +1 -1
- package/dist/vector/index.js +1 -1
- package/package.json +157 -157
- package/src/access/PermissionService.ts +635 -635
- package/src/aggregation/AggregationService.ts +389 -389
- package/src/ai-sdk/PDWVectorStore.ts +715 -715
- package/src/ai-sdk/index.ts +65 -65
- package/src/ai-sdk/tools.ts +460 -460
- package/src/ai-sdk/types.ts +404 -404
- package/src/batch/BatchManager.ts +597 -597
- package/src/batch/BatchingService.ts +429 -429
- package/src/batch/MemoryProcessingCache.ts +492 -492
- package/src/batch/index.ts +30 -30
- package/src/browser.ts +200 -200
- package/src/client/ClientMemoryManager.ts +987 -987
- package/src/client/PersonalDataWallet.ts +345 -345
- package/src/client/SimplePDWClient.ts +1289 -1222
- package/src/client/factory.ts +154 -154
- package/src/client/namespaces/AnalyticsNamespace.ts +377 -377
- package/src/client/namespaces/BatchNamespace.ts +356 -356
- package/src/client/namespaces/CacheNamespace.ts +123 -123
- package/src/client/namespaces/CapabilityNamespace.ts +217 -217
- package/src/client/namespaces/ClassifyNamespace.ts +169 -169
- package/src/client/namespaces/ContextNamespace.ts +297 -297
- package/src/client/namespaces/EmbeddingsNamespace.ts +99 -99
- package/src/client/namespaces/EncryptionNamespace.ts +221 -221
- package/src/client/namespaces/GraphNamespace.ts +468 -468
- package/src/client/namespaces/IndexNamespace.ts +361 -361
- package/src/client/namespaces/MemoryNamespace.ts +1422 -1135
- package/src/client/namespaces/PermissionsNamespace.ts +254 -254
- package/src/client/namespaces/PipelineNamespace.ts +220 -220
- package/src/client/namespaces/SearchNamespace.ts +1049 -1049
- package/src/client/namespaces/StorageNamespace.ts +458 -458
- package/src/client/namespaces/TxNamespace.ts +260 -260
- package/src/client/namespaces/WalletNamespace.ts +243 -243
- package/src/client/namespaces/consolidated/AINamespace.ts +449 -449
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +607 -546
- package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -648
- package/src/client/namespaces/consolidated/StorageNamespace.ts +1141 -497
- package/src/client/namespaces/consolidated/index.ts +39 -39
- package/src/client/signers/KeypairSigner.ts +108 -108
- package/src/client/signers/UnifiedSigner.ts +110 -110
- package/src/client/signers/WalletAdapterSigner.ts +159 -159
- package/src/client/signers/index.ts +26 -26
- package/src/config/ConfigurationHelper.ts +412 -412
- package/src/config/defaults.ts +51 -51
- package/src/config/index.ts +8 -8
- package/src/config/validation.ts +70 -70
- package/src/core/index.ts +14 -14
- package/src/core/interfaces/IService.ts +307 -307
- package/src/core/interfaces/index.ts +8 -8
- package/src/core/types/capability.ts +297 -297
- package/src/core/types/index.ts +870 -870
- package/src/core/types/wallet.ts +270 -270
- package/src/core/types.ts +9 -9
- package/src/core/wallet.ts +222 -222
- package/src/embedding/index.ts +19 -19
- package/src/embedding/types.ts +357 -357
- package/src/errors/index.ts +602 -602
- package/src/errors/recovery.ts +461 -461
- package/src/errors/validation.ts +567 -567
- package/src/generated/pdw/capability.ts +319 -319
- package/src/graph/GraphService.ts +887 -887
- package/src/graph/KnowledgeGraphManager.ts +728 -728
- package/src/graph/index.ts +25 -25
- package/src/index.ts +498 -474
- package/src/infrastructure/index.ts +22 -22
- package/src/infrastructure/seal/EncryptionService.ts +628 -603
- package/src/infrastructure/seal/SealService.ts +613 -615
- package/src/infrastructure/seal/index.ts +9 -9
- package/src/infrastructure/sui/BlockchainManager.ts +627 -627
- package/src/infrastructure/sui/SuiService.ts +888 -888
- package/src/infrastructure/sui/index.ts +9 -9
- package/src/infrastructure/walrus/StorageManager.ts +604 -604
- package/src/infrastructure/walrus/WalrusStorageService.ts +612 -612
- package/src/infrastructure/walrus/index.ts +9 -9
- package/src/langchain/PDWEmbeddings.ts +145 -145
- package/src/langchain/PDWVectorStore.ts +456 -456
- package/src/langchain/createPDWRAG.ts +303 -303
- package/src/langchain/index.ts +47 -47
- package/src/permissions/ConsentRepository.browser.ts +249 -249
- package/src/permissions/ConsentRepository.ts +364 -364
- package/src/pipeline/MemoryPipeline.ts +862 -862
- package/src/pipeline/PipelineManager.ts +683 -683
- package/src/pipeline/index.ts +26 -26
- package/src/retrieval/AdvancedSearchService.ts +629 -629
- package/src/retrieval/MemoryAnalyticsService.ts +711 -711
- package/src/retrieval/MemoryDecryptionPipeline.ts +825 -824
- package/src/retrieval/MemoryRetrievalService.ts +904 -830
- package/src/retrieval/index.ts +42 -42
- package/src/services/BatchService.ts +352 -352
- package/src/services/CapabilityService.ts +464 -448
- package/src/services/ClassifierService.ts +465 -465
- package/src/services/CrossContextPermissionService.ts +486 -484
- package/src/services/EmbeddingService.ts +771 -706
- package/src/services/EncryptionService.ts +712 -711
- package/src/services/GeminiAIService.ts +753 -753
- package/src/services/IndexManager.ts +977 -1004
- package/src/services/MemoryIndexService.ts +1003 -1003
- package/src/services/MemoryService.ts +369 -369
- package/src/services/QueryService.ts +890 -890
- package/src/services/StorageService.ts +1182 -1111
- package/src/services/TransactionService.ts +838 -790
- package/src/services/VectorService.ts +462 -462
- package/src/services/ViewService.ts +484 -484
- package/src/services/index.ts +25 -25
- package/src/services/storage/BlobAttributesManager.ts +333 -333
- package/src/services/storage/KnowledgeGraphManager.ts +425 -425
- package/src/services/storage/MemorySearchManager.ts +387 -387
- package/src/services/storage/QuiltBatchManager.ts +1130 -660
- package/src/services/storage/WalrusMetadataManager.ts +268 -268
- package/src/services/storage/WalrusStorageManager.ts +287 -287
- package/src/services/storage/index.ts +57 -52
- package/src/types/index.ts +13 -13
- package/src/utils/LRUCache.ts +378 -0
- package/src/utils/index.ts +76 -68
- package/src/utils/memoryIndexOnChain.ts +507 -0
- package/src/utils/rebuildIndex.ts +290 -290
- package/src/utils/rebuildIndexNode.ts +771 -424
- package/src/vector/BrowserHnswIndexService.ts +758 -758
- package/src/vector/HnswWasmService.ts +731 -679
- package/src/vector/IHnswService.ts +233 -224
- package/src/vector/NodeHnswService.ts +833 -735
- package/src/vector/VectorManager.ts +478 -478
- package/src/vector/createHnswService.ts +135 -135
- package/src/vector/index.ts +56 -56
- package/src/wallet/ContextWalletService.ts +656 -656
- package/src/wallet/MainWalletService.ts +317 -317
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Consolidated Namespaces - Unified API Surface
|
|
3
|
-
*
|
|
4
|
-
* Exports all consolidated namespaces that merge related functionality
|
|
5
|
-
* into a cleaner, more intuitive API.
|
|
6
|
-
*
|
|
7
|
-
* @module client/namespaces/consolidated
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export { AINamespace } from './AINamespace';
|
|
11
|
-
export type {
|
|
12
|
-
PatternAnalysis,
|
|
13
|
-
ClassificationResult,
|
|
14
|
-
EmbedOptions
|
|
15
|
-
} from './AINamespace';
|
|
16
|
-
|
|
17
|
-
export { SecurityNamespace } from './SecurityNamespace';
|
|
18
|
-
export type {
|
|
19
|
-
EncryptionResult,
|
|
20
|
-
DecryptionOptions,
|
|
21
|
-
ContextInfo
|
|
22
|
-
} from './SecurityNamespace';
|
|
23
|
-
|
|
24
|
-
export { BlockchainNamespace } from './BlockchainNamespace';
|
|
25
|
-
export type {
|
|
26
|
-
MemoryTxOptions,
|
|
27
|
-
BatchOperationType,
|
|
28
|
-
BatchOperation,
|
|
29
|
-
WalletInfo,
|
|
30
|
-
OwnedObject
|
|
31
|
-
} from './BlockchainNamespace';
|
|
32
|
-
|
|
33
|
-
export { StorageNamespace } from './StorageNamespace';
|
|
34
|
-
export type {
|
|
35
|
-
CacheStats,
|
|
36
|
-
UploadResult,
|
|
37
|
-
MemoryPackage,
|
|
38
|
-
UploadOptions
|
|
39
|
-
} from './StorageNamespace';
|
|
1
|
+
/**
|
|
2
|
+
* Consolidated Namespaces - Unified API Surface
|
|
3
|
+
*
|
|
4
|
+
* Exports all consolidated namespaces that merge related functionality
|
|
5
|
+
* into a cleaner, more intuitive API.
|
|
6
|
+
*
|
|
7
|
+
* @module client/namespaces/consolidated
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export { AINamespace } from './AINamespace';
|
|
11
|
+
export type {
|
|
12
|
+
PatternAnalysis,
|
|
13
|
+
ClassificationResult,
|
|
14
|
+
EmbedOptions
|
|
15
|
+
} from './AINamespace';
|
|
16
|
+
|
|
17
|
+
export { SecurityNamespace } from './SecurityNamespace';
|
|
18
|
+
export type {
|
|
19
|
+
EncryptionResult,
|
|
20
|
+
DecryptionOptions,
|
|
21
|
+
ContextInfo
|
|
22
|
+
} from './SecurityNamespace';
|
|
23
|
+
|
|
24
|
+
export { BlockchainNamespace } from './BlockchainNamespace';
|
|
25
|
+
export type {
|
|
26
|
+
MemoryTxOptions,
|
|
27
|
+
BatchOperationType,
|
|
28
|
+
BatchOperation,
|
|
29
|
+
WalletInfo,
|
|
30
|
+
OwnedObject
|
|
31
|
+
} from './BlockchainNamespace';
|
|
32
|
+
|
|
33
|
+
export { StorageNamespace } from './StorageNamespace';
|
|
34
|
+
export type {
|
|
35
|
+
CacheStats,
|
|
36
|
+
UploadResult,
|
|
37
|
+
MemoryPackage,
|
|
38
|
+
UploadOptions
|
|
39
|
+
} from './StorageNamespace';
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Keypair Signer Implementation
|
|
3
|
-
*
|
|
4
|
-
* Wraps @mysten/sui Keypair for use with SimplePDWClient.
|
|
5
|
-
* Suitable for Node.js, backend services, CLI tools.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
10
|
-
* import { KeypairSigner } from 'personal-data-wallet-sdk/client';
|
|
11
|
-
*
|
|
12
|
-
* const keypair = Ed25519Keypair.fromSecretKey(privateKey);
|
|
13
|
-
* const signer = new KeypairSigner(keypair, suiClient);
|
|
14
|
-
*
|
|
15
|
-
* const pdw = await createPDWClient({
|
|
16
|
-
* signer,
|
|
17
|
-
* network: 'testnet'
|
|
18
|
-
* });
|
|
19
|
-
* ```
|
|
20
|
-
*
|
|
21
|
-
* @module client/signers
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
import type { SuiClient } from '@mysten/sui/client';
|
|
25
|
-
import type { Keypair, Signer } from '@mysten/sui/cryptography';
|
|
26
|
-
import type { Transaction } from '@mysten/sui/transactions';
|
|
27
|
-
import type {
|
|
28
|
-
UnifiedSigner,
|
|
29
|
-
SignAndExecuteResult,
|
|
30
|
-
SignPersonalMessageResult
|
|
31
|
-
} from './UnifiedSigner';
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Keypair-based signer for Node.js and backend environments
|
|
35
|
-
*/
|
|
36
|
-
export class KeypairSigner implements UnifiedSigner {
|
|
37
|
-
constructor(
|
|
38
|
-
private keypair: Keypair,
|
|
39
|
-
private client: SuiClient
|
|
40
|
-
) {}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Sign and execute transaction using keypair
|
|
44
|
-
*/
|
|
45
|
-
async signAndExecuteTransaction(transaction: Transaction): Promise<SignAndExecuteResult> {
|
|
46
|
-
const result = await this.client.signAndExecuteTransaction({
|
|
47
|
-
transaction,
|
|
48
|
-
signer: this.keypair,
|
|
49
|
-
options: {
|
|
50
|
-
showEffects: true,
|
|
51
|
-
showEvents: true,
|
|
52
|
-
showObjectChanges: true
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// Wait for transaction to be finalized to prevent gas coin version conflicts
|
|
57
|
-
if (result.digest) {
|
|
58
|
-
await this.client.waitForTransaction({ digest: result.digest });
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return {
|
|
62
|
-
digest: result.digest,
|
|
63
|
-
effects: result.effects,
|
|
64
|
-
events: result.events || undefined,
|
|
65
|
-
objectChanges: result.objectChanges || undefined
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Sign personal message using keypair
|
|
71
|
-
*/
|
|
72
|
-
async signPersonalMessage(message: Uint8Array): Promise<SignPersonalMessageResult> {
|
|
73
|
-
const { signature } = await this.keypair.signPersonalMessage(message);
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
signature, // Base64 string
|
|
77
|
-
bytes: message // Original message bytes
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Get Sui address from keypair
|
|
83
|
-
*/
|
|
84
|
-
getAddress(): string {
|
|
85
|
-
return this.keypair.getPublicKey().toSuiAddress();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Get public key bytes
|
|
90
|
-
*/
|
|
91
|
-
getPublicKey(): Uint8Array {
|
|
92
|
-
return this.keypair.getPublicKey().toRawBytes();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Get underlying Signer (Keypair)
|
|
97
|
-
*/
|
|
98
|
-
getSigner(): Signer {
|
|
99
|
-
return this.keypair;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Get SuiClient instance
|
|
104
|
-
*/
|
|
105
|
-
getClient(): SuiClient {
|
|
106
|
-
return this.client;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Keypair Signer Implementation
|
|
3
|
+
*
|
|
4
|
+
* Wraps @mysten/sui Keypair for use with SimplePDWClient.
|
|
5
|
+
* Suitable for Node.js, backend services, CLI tools.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
10
|
+
* import { KeypairSigner } from 'personal-data-wallet-sdk/client';
|
|
11
|
+
*
|
|
12
|
+
* const keypair = Ed25519Keypair.fromSecretKey(privateKey);
|
|
13
|
+
* const signer = new KeypairSigner(keypair, suiClient);
|
|
14
|
+
*
|
|
15
|
+
* const pdw = await createPDWClient({
|
|
16
|
+
* signer,
|
|
17
|
+
* network: 'testnet'
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @module client/signers
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import type { SuiClient } from '@mysten/sui/client';
|
|
25
|
+
import type { Keypair, Signer } from '@mysten/sui/cryptography';
|
|
26
|
+
import type { Transaction } from '@mysten/sui/transactions';
|
|
27
|
+
import type {
|
|
28
|
+
UnifiedSigner,
|
|
29
|
+
SignAndExecuteResult,
|
|
30
|
+
SignPersonalMessageResult
|
|
31
|
+
} from './UnifiedSigner';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Keypair-based signer for Node.js and backend environments
|
|
35
|
+
*/
|
|
36
|
+
export class KeypairSigner implements UnifiedSigner {
|
|
37
|
+
constructor(
|
|
38
|
+
private keypair: Keypair,
|
|
39
|
+
private client: SuiClient
|
|
40
|
+
) {}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Sign and execute transaction using keypair
|
|
44
|
+
*/
|
|
45
|
+
async signAndExecuteTransaction(transaction: Transaction): Promise<SignAndExecuteResult> {
|
|
46
|
+
const result = await this.client.signAndExecuteTransaction({
|
|
47
|
+
transaction,
|
|
48
|
+
signer: this.keypair,
|
|
49
|
+
options: {
|
|
50
|
+
showEffects: true,
|
|
51
|
+
showEvents: true,
|
|
52
|
+
showObjectChanges: true
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// Wait for transaction to be finalized to prevent gas coin version conflicts
|
|
57
|
+
if (result.digest) {
|
|
58
|
+
await this.client.waitForTransaction({ digest: result.digest });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
digest: result.digest,
|
|
63
|
+
effects: result.effects,
|
|
64
|
+
events: result.events || undefined,
|
|
65
|
+
objectChanges: result.objectChanges || undefined
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Sign personal message using keypair
|
|
71
|
+
*/
|
|
72
|
+
async signPersonalMessage(message: Uint8Array): Promise<SignPersonalMessageResult> {
|
|
73
|
+
const { signature } = await this.keypair.signPersonalMessage(message);
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
signature, // Base64 string
|
|
77
|
+
bytes: message // Original message bytes
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Get Sui address from keypair
|
|
83
|
+
*/
|
|
84
|
+
getAddress(): string {
|
|
85
|
+
return this.keypair.getPublicKey().toSuiAddress();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Get public key bytes
|
|
90
|
+
*/
|
|
91
|
+
getPublicKey(): Uint8Array {
|
|
92
|
+
return this.keypair.getPublicKey().toRawBytes();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get underlying Signer (Keypair)
|
|
97
|
+
*/
|
|
98
|
+
getSigner(): Signer {
|
|
99
|
+
return this.keypair;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Get SuiClient instance
|
|
104
|
+
*/
|
|
105
|
+
getClient(): SuiClient {
|
|
106
|
+
return this.client;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified Signer Interface
|
|
3
|
-
*
|
|
4
|
-
* Abstracts signing operations to work with both:
|
|
5
|
-
* - Keypair (Node.js, backend, CLI)
|
|
6
|
-
* - WalletAdapter (Browser, React dApps)
|
|
7
|
-
*
|
|
8
|
-
* This allows SimplePDWClient to work in any environment.
|
|
9
|
-
*
|
|
10
|
-
* @module client/signers
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { Transaction } from '@mysten/sui/transactions';
|
|
14
|
-
import type { Signer } from '@mysten/sui/cryptography';
|
|
15
|
-
import type { SuiClient } from '@mysten/sui/client';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Result of signing and executing a transaction
|
|
19
|
-
*/
|
|
20
|
-
export interface SignAndExecuteResult {
|
|
21
|
-
/**
|
|
22
|
-
* Transaction digest
|
|
23
|
-
*/
|
|
24
|
-
digest: string;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Transaction effects
|
|
28
|
-
*/
|
|
29
|
-
effects?: any;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Events emitted
|
|
33
|
-
*/
|
|
34
|
-
events?: any[];
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Object changes
|
|
38
|
-
*/
|
|
39
|
-
objectChanges?: any[];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Result of signing a personal message
|
|
44
|
-
*/
|
|
45
|
-
export interface SignPersonalMessageResult {
|
|
46
|
-
/**
|
|
47
|
-
* Signature (Base64-encoded string)
|
|
48
|
-
*/
|
|
49
|
-
signature: string;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Signed bytes
|
|
53
|
-
*/
|
|
54
|
-
bytes: Uint8Array;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Unified Signer Interface
|
|
59
|
-
*
|
|
60
|
-
* Provides consistent signing API across different wallet types
|
|
61
|
-
*/
|
|
62
|
-
export interface UnifiedSigner {
|
|
63
|
-
/**
|
|
64
|
-
* Sign and execute a transaction on Sui blockchain
|
|
65
|
-
*
|
|
66
|
-
* @param transaction - The transaction to sign and execute
|
|
67
|
-
* @returns Transaction result with digest and effects
|
|
68
|
-
*/
|
|
69
|
-
signAndExecuteTransaction(transaction: Transaction): Promise<SignAndExecuteResult>;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Sign a personal message (for SEAL encryption identity)
|
|
73
|
-
*
|
|
74
|
-
* @param message - The message bytes to sign
|
|
75
|
-
* @returns Signature result
|
|
76
|
-
*/
|
|
77
|
-
signPersonalMessage(message: Uint8Array): Promise<SignPersonalMessageResult>;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Get the Sui address of this signer
|
|
81
|
-
*
|
|
82
|
-
* @returns Sui address (0x-prefixed hex string)
|
|
83
|
-
*/
|
|
84
|
-
getAddress(): string;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Get the public key (if available)
|
|
88
|
-
*
|
|
89
|
-
* @returns Public key bytes or null
|
|
90
|
-
*/
|
|
91
|
-
getPublicKey?(): Uint8Array | null;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Get the underlying Signer (for services that need full Signer interface)
|
|
95
|
-
*
|
|
96
|
-
* Note: This may not be available for all signer types (e.g., wallet adapters)
|
|
97
|
-
* @returns Signer instance or throws error if not available
|
|
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;
|
|
110
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Unified Signer Interface
|
|
3
|
+
*
|
|
4
|
+
* Abstracts signing operations to work with both:
|
|
5
|
+
* - Keypair (Node.js, backend, CLI)
|
|
6
|
+
* - WalletAdapter (Browser, React dApps)
|
|
7
|
+
*
|
|
8
|
+
* This allows SimplePDWClient to work in any environment.
|
|
9
|
+
*
|
|
10
|
+
* @module client/signers
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type { Transaction } from '@mysten/sui/transactions';
|
|
14
|
+
import type { Signer } from '@mysten/sui/cryptography';
|
|
15
|
+
import type { SuiClient } from '@mysten/sui/client';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Result of signing and executing a transaction
|
|
19
|
+
*/
|
|
20
|
+
export interface SignAndExecuteResult {
|
|
21
|
+
/**
|
|
22
|
+
* Transaction digest
|
|
23
|
+
*/
|
|
24
|
+
digest: string;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Transaction effects
|
|
28
|
+
*/
|
|
29
|
+
effects?: any;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Events emitted
|
|
33
|
+
*/
|
|
34
|
+
events?: any[];
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Object changes
|
|
38
|
+
*/
|
|
39
|
+
objectChanges?: any[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Result of signing a personal message
|
|
44
|
+
*/
|
|
45
|
+
export interface SignPersonalMessageResult {
|
|
46
|
+
/**
|
|
47
|
+
* Signature (Base64-encoded string)
|
|
48
|
+
*/
|
|
49
|
+
signature: string;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Signed bytes
|
|
53
|
+
*/
|
|
54
|
+
bytes: Uint8Array;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Unified Signer Interface
|
|
59
|
+
*
|
|
60
|
+
* Provides consistent signing API across different wallet types
|
|
61
|
+
*/
|
|
62
|
+
export interface UnifiedSigner {
|
|
63
|
+
/**
|
|
64
|
+
* Sign and execute a transaction on Sui blockchain
|
|
65
|
+
*
|
|
66
|
+
* @param transaction - The transaction to sign and execute
|
|
67
|
+
* @returns Transaction result with digest and effects
|
|
68
|
+
*/
|
|
69
|
+
signAndExecuteTransaction(transaction: Transaction): Promise<SignAndExecuteResult>;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Sign a personal message (for SEAL encryption identity)
|
|
73
|
+
*
|
|
74
|
+
* @param message - The message bytes to sign
|
|
75
|
+
* @returns Signature result
|
|
76
|
+
*/
|
|
77
|
+
signPersonalMessage(message: Uint8Array): Promise<SignPersonalMessageResult>;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Get the Sui address of this signer
|
|
81
|
+
*
|
|
82
|
+
* @returns Sui address (0x-prefixed hex string)
|
|
83
|
+
*/
|
|
84
|
+
getAddress(): string;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get the public key (if available)
|
|
88
|
+
*
|
|
89
|
+
* @returns Public key bytes or null
|
|
90
|
+
*/
|
|
91
|
+
getPublicKey?(): Uint8Array | null;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Get the underlying Signer (for services that need full Signer interface)
|
|
95
|
+
*
|
|
96
|
+
* Note: This may not be available for all signer types (e.g., wallet adapters)
|
|
97
|
+
* @returns Signer instance or throws error if not available
|
|
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;
|
|
110
|
+
}
|