@dainprotocol/service-sdk 1.1.13 → 1.1.14

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ // File: src/__tests__/crypto-plugin.test.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("tslib");
5
+ const client_auth_1 = require("@/client/client-auth");
6
+ const client_1 = require("@/client/client");
7
+ const ed25519_1 = require("@noble/curves/ed25519");
8
+ const bs58_1 = tslib_1.__importDefault(require("bs58"));
9
+ const nodeService_1 = require("@/service/nodeService");
10
+ const core_1 = require("@/service/core");
11
+ const zod_1 = require("zod");
12
+ const crypto_plugin_1 = require("@/plugins/crypto-plugin");
13
+ const cuid2_1 = require("@paralleldrive/cuid2");
14
+ describe("DAIN Framework CryptoPlugin System", () => {
15
+ // Generate test keys
16
+ const servicePrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
17
+ const servicePublicKey = ed25519_1.ed25519.getPublicKey(servicePrivateKey);
18
+ const serviceAddress = bs58_1.default.encode(servicePublicKey);
19
+ const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
20
+ // Set up client authentication
21
+ const agentAuth = new client_auth_1.DainClientAuth({
22
+ privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
23
+ agentId: "agent-crypto-test",
24
+ orgId: "org-crypto-test",
25
+ });
26
+ // Create a test wallet configuration
27
+ const testWallets = [
28
+ { chain: "sol", address: "Sol11111111111111111111111111111111111111111" },
29
+ { chain: "eth", address: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" },
30
+ { chain: "arb", address: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" }
31
+ ];
32
+ // Create separate CryptoPlugin instances for client and service
33
+ const clientCryptoPlugin = new crypto_plugin_1.CryptoPlugin(testWallets);
34
+ const serviceCryptoPlugin = new crypto_plugin_1.CryptoPlugin(); // Service doesn't need wallet information
35
+ // Initialize the connection to the DAIN service with the client crypto plugin
36
+ const dainConnection = new client_1.DainServiceConnection("http://localhost:4485", agentAuth, {
37
+ plugins: [clientCryptoPlugin]
38
+ });
39
+ // Create a mock Solana transaction (added id field)
40
+ const mockSolanaTransaction = {
41
+ encodedTx: "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
42
+ chain: "sol",
43
+ signer: "Sol11111111111111111111111111111111111111111",
44
+ metadata: {
45
+ description: "Test SOL Transfer",
46
+ amount: 0.01,
47
+ recipient: "SolRecipient111111111111111111111111111111111"
48
+ }
49
+ };
50
+ // Create a mock Ethereum transaction (added id field)
51
+ const mockEthereumTransaction = {
52
+ encodedTx: "0xf86c0a85046c7cfe0083016dea94d1310c1e0aa1b9d5dfe80aa9ee4a8b0a48d0f2a780a46057361d00000000000000000000000000000000000000000000000000000000000003e880820a95a0f5d4c5201602ddf5110f112a85fb0cf39a85e3a3174cd237b8383670cab7a3b5a048f2be5cc9f0a0b3f22e60f709c649d5a6a4ad3d70ce44ec80b96ffe7843508c",
53
+ chain: "eth",
54
+ signer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
55
+ metadata: {
56
+ description: "Test ETH Transfer",
57
+ amount: 0.1,
58
+ recipient: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
59
+ gasLimit: 21000
60
+ }
61
+ };
62
+ // Create a test tool that uses wallet information and creates unsigned transactions
63
+ const cryptoTransferTool = (0, core_1.createTool)({
64
+ id: "crypto-transfer",
65
+ name: "Cryptocurrency Transfer Tool",
66
+ description: "Creates unsigned transactions for cryptocurrency transfers",
67
+ input: zod_1.z.object({
68
+ amount: zod_1.z.number().positive(),
69
+ chain: zod_1.z.enum(["sol", "eth", "arb"]),
70
+ recipientAddress: zod_1.z.string()
71
+ }),
72
+ output: zod_1.z.object({
73
+ success: zod_1.z.boolean(),
74
+ message: zod_1.z.string(),
75
+ signatureRequests: zod_1.z.array(zod_1.z.object({
76
+ txs: zod_1.z.array(zod_1.z.object({
77
+ id: zod_1.z.string(),
78
+ encodedTx: zod_1.z.string(),
79
+ chain: zod_1.z.enum(["sol", "eth", "arb"]),
80
+ signer: zod_1.z.string(),
81
+ metadata: zod_1.z.any().optional()
82
+ }))
83
+ })).optional()
84
+ }),
85
+ handler: async ({ amount, chain, recipientAddress }, agentInfo, context) => {
86
+ // Use the SERVICE-SIDE plugin (serviceCryptoPlugin) helper to get the user's wallets
87
+ const wallets = serviceCryptoPlugin.getUserWallets(context);
88
+ console.log(`[SERVICE] Available user wallets:`, wallets);
89
+ // Get the wallet for the specified chain
90
+ const userWallet = serviceCryptoPlugin.getUserWalletForChain(context, chain);
91
+ if (!userWallet) {
92
+ return {
93
+ text: `No wallet found for ${chain} chain`,
94
+ data: {
95
+ success: false,
96
+ message: `No ${chain} wallet found for this user. Please connect a ${chain} wallet.`
97
+ },
98
+ ui: null
99
+ };
100
+ }
101
+ console.log(`[SERVICE] Using ${chain} wallet: ${userWallet} for transfer of ${amount} to ${recipientAddress}`);
102
+ // Create mock transactions based on the chain
103
+ let mockTransaction;
104
+ if (chain === "sol") {
105
+ mockTransaction = {
106
+ ...mockSolanaTransaction,
107
+ signer: userWallet,
108
+ metadata: {
109
+ ...mockSolanaTransaction.metadata,
110
+ amount: amount,
111
+ recipient: recipientAddress
112
+ }
113
+ };
114
+ }
115
+ else if (chain === "eth" || chain === "arb") {
116
+ mockTransaction = {
117
+ ...mockEthereumTransaction,
118
+ chain: chain,
119
+ signer: userWallet,
120
+ metadata: {
121
+ ...mockEthereumTransaction.metadata,
122
+ amount: amount,
123
+ recipient: recipientAddress
124
+ }
125
+ };
126
+ }
127
+ else {
128
+ return {
129
+ text: `Unsupported chain: ${chain}`,
130
+ data: {
131
+ success: false,
132
+ message: `Chain ${chain} is not supported yet.`
133
+ },
134
+ ui: null
135
+ };
136
+ }
137
+ // Create a transaction with a unique ID using the service plugin helper
138
+ const transactionWithId = serviceCryptoPlugin.createTransaction(mockTransaction);
139
+ // Log the transaction ID for debugging
140
+ console.log(`[SERVICE] Created transaction with ID: ${transactionWithId.id}`);
141
+ // Create a signature request using the SERVICE-SIDE plugin helper
142
+ const signatureRequest = serviceCryptoPlugin.createTransactionRequest([transactionWithId]);
143
+ return {
144
+ text: `Created unsigned ${chain} transaction for ${amount} to ${recipientAddress}`,
145
+ data: {
146
+ success: true,
147
+ message: `Created unsigned ${chain} transaction. Please sign to complete the transfer.`,
148
+ signatureRequests: [signatureRequest]
149
+ },
150
+ ui: null
151
+ };
152
+ },
153
+ });
154
+ // Initialize the DAIN service with the SERVICE crypto plugin instance
155
+ const dainService = (0, nodeService_1.defineDAINService)({
156
+ metadata: {
157
+ title: "Crypto Plugin Test Service",
158
+ description: "A DAIN service for testing the crypto plugin",
159
+ version: "1.0.0",
160
+ author: "Test Author",
161
+ tags: ["crypto", "plugin", "test"],
162
+ },
163
+ identity: {
164
+ publicKey: bs58_1.default.encode(servicePublicKey),
165
+ agentId: "crypto-agent",
166
+ orgId: "crypto-org",
167
+ privateKey: bs58_1.default.encode(servicePrivateKey),
168
+ },
169
+ tools: [cryptoTransferTool],
170
+ plugins: [serviceCryptoPlugin] // Using service-side plugin instance
171
+ });
172
+ let server;
173
+ beforeAll(async () => {
174
+ server = await dainService.startNode({ port: 4485 });
175
+ await new Promise(resolve => setTimeout(resolve, 500)); // Give server time to start
176
+ });
177
+ afterAll(async () => {
178
+ await server.shutdown();
179
+ });
180
+ it("should assign unique IDs to transactions", async () => {
181
+ console.log("[CLIENT] Using client plugin with wallets:", clientCryptoPlugin.getWallets());
182
+ console.log("[SERVICE] Using service plugin with wallets:", serviceCryptoPlugin.getWallets());
183
+ // Call the tool WITHOUT providing wallet information in the params
184
+ // The client plugin should automatically add wallet info
185
+ const params = {
186
+ amount: 0.05,
187
+ chain: "sol",
188
+ recipientAddress: "SolRecipient222222222222222222222222222222222"
189
+ // No wallets provided - they should come from the client plugin
190
+ };
191
+ // Call the tool
192
+ const result = await dainConnection.callTool("crypto-transfer", params);
193
+ console.log("[CLIENT] Received response:", JSON.stringify(result, null, 2));
194
+ // Verify the response
195
+ expect(result.data.success).toBe(true);
196
+ expect(result.data.message).toContain("Created unsigned sol transaction");
197
+ // Use the CLIENT plugin helper to extract transaction requests
198
+ const signatureRequests = clientCryptoPlugin.getRequestedCryptoSignatures(result);
199
+ console.log("[CLIENT] Extracted signature requests:", JSON.stringify(signatureRequests, null, 2));
200
+ expect(signatureRequests).toBeDefined();
201
+ expect(signatureRequests.length).toBe(1);
202
+ expect(signatureRequests[0].txs.length).toBe(1);
203
+ const transaction = signatureRequests[0].txs[0];
204
+ expect(transaction.chain).toBe("sol");
205
+ expect(transaction.signer).toBe(testWallets[0].address);
206
+ expect(transaction.encodedTx).toBeDefined();
207
+ // Verify the transaction has an ID
208
+ expect(transaction.id).toBeDefined();
209
+ expect(typeof transaction.id).toBe("string");
210
+ expect(transaction.id.length).toBeGreaterThan(10);
211
+ // Save the transaction ID for later use
212
+ const txId = transaction.id;
213
+ console.log(`[CLIENT] Transaction ID: ${txId}`);
214
+ // Test getTransactionById method
215
+ const foundTx = clientCryptoPlugin.getTransactionById(result, txId);
216
+ expect(foundTx).toBeDefined();
217
+ expect(foundTx?.id).toBe(txId);
218
+ });
219
+ it("should handle Ethereum transactions with unique IDs", async () => {
220
+ // Prepare the tool parameters without wallet information
221
+ const params = {
222
+ amount: 0.25,
223
+ chain: "eth",
224
+ recipientAddress: "0xRecipientEthereumAddress0123456789abcdef"
225
+ // No wallets provided - they should come from the client plugin
226
+ };
227
+ // Call the tool
228
+ const result = await dainConnection.callTool("crypto-transfer", params);
229
+ // Verify the response
230
+ expect(result.data.success).toBe(true);
231
+ expect(result.data.message).toContain("Created unsigned eth transaction");
232
+ // Get transaction requests using the CLIENT plugin
233
+ const signatureRequests = clientCryptoPlugin.getRequestedCryptoSignatures(result);
234
+ const transaction = signatureRequests[0].txs[0];
235
+ expect(transaction.chain).toBe("eth");
236
+ expect(transaction.signer).toBe(testWallets[1].address);
237
+ expect(transaction.metadata?.amount).toBe(0.25);
238
+ expect(transaction.metadata?.recipient).toBe("0xRecipientEthereumAddress0123456789abcdef");
239
+ // Verify the transaction has an ID
240
+ expect(transaction.id).toBeDefined();
241
+ expect(typeof transaction.id).toBe("string");
242
+ console.log(`[CLIENT] Ethereum transaction ID: ${transaction.id}`);
243
+ });
244
+ it("should show wallet information flow and transaction IDs", async () => {
245
+ // Add a new custom wallet to the client plugin
246
+ clientCryptoPlugin.addWallet({
247
+ chain: "sol",
248
+ address: "CustomSolAddress123456789"
249
+ });
250
+ // Call the tool with the updated client plugin
251
+ const result = await dainConnection.callTool("crypto-transfer", {
252
+ amount: 0.75,
253
+ chain: "sol",
254
+ recipientAddress: "NewRecipientAddress"
255
+ });
256
+ // Verify the result uses the updated wallet
257
+ const signatureRequests = clientCryptoPlugin.getRequestedCryptoSignatures(result);
258
+ const transaction = signatureRequests[0].txs[0];
259
+ // The address should be the new custom one we just added
260
+ expect(transaction.signer).toBe("CustomSolAddress123456789");
261
+ expect(transaction.metadata?.amount).toBe(0.75);
262
+ // Verify the transaction has an ID
263
+ expect(transaction.id).toBeDefined();
264
+ console.log(`[CLIENT] Updated wallet transaction ID: ${transaction.id}`);
265
+ });
266
+ it("should demonstrate creating and accessing transactions with IDs", async () => {
267
+ // Create a transaction directly with the createTransaction method
268
+ const txData = {
269
+ encodedTx: "0xManuallyCreatedTx",
270
+ chain: "eth",
271
+ signer: "0xManualAddress",
272
+ metadata: { test: true, purpose: "Demo" }
273
+ };
274
+ // Create a transaction with the client plugin
275
+ const tx1 = clientCryptoPlugin.createTransaction(txData);
276
+ // Create another transaction with the same data
277
+ const tx2 = clientCryptoPlugin.createTransaction(txData);
278
+ // Create a transaction with a predefined ID
279
+ const customId = (0, cuid2_1.createId)();
280
+ const tx3 = clientCryptoPlugin.createTransaction({
281
+ ...txData,
282
+ id: customId
283
+ });
284
+ // Verify each transaction has a unique ID
285
+ expect(tx1.id).toBeDefined();
286
+ expect(tx2.id).toBeDefined();
287
+ expect(tx3.id).toBeDefined();
288
+ // Transaction IDs should be unique
289
+ expect(tx1.id).not.toBe(tx2.id);
290
+ // Custom ID should be preserved
291
+ expect(tx3.id).toBe(customId);
292
+ console.log(`[TEST] Manual transaction IDs:`, {
293
+ tx1Id: tx1.id,
294
+ tx2Id: tx2.id,
295
+ tx3Id: tx3.id
296
+ });
297
+ // Create a signature request with multiple transactions
298
+ const signatureRequest = clientCryptoPlugin.createTransactionRequest([tx1, tx2, tx3]);
299
+ // Verify the signature request contains all transactions
300
+ expect(signatureRequest.txs.length).toBe(3);
301
+ expect(signatureRequest.txs.map(tx => tx.id)).toContain(tx1.id);
302
+ expect(signatureRequest.txs.map(tx => tx.id)).toContain(tx2.id);
303
+ expect(signatureRequest.txs.map(tx => tx.id)).toContain(tx3.id);
304
+ });
305
+ it("should allow service plugin to process transactions with additional data", async () => {
306
+ // Create a new test with a local function that adds metadata
307
+ // We'll use a real function instead of adding to the plugin instance
308
+ const addServiceMetadata = (tx) => {
309
+ return {
310
+ ...tx,
311
+ metadata: {
312
+ ...tx.metadata,
313
+ timestamp: Date.now(),
314
+ serviceId: "test-service-id",
315
+ enhanced: true
316
+ }
317
+ };
318
+ };
319
+ // Create a simple tool handler that would use this function
320
+ // This simulates what a service would do
321
+ const processTransaction = async (chain, userWallet) => {
322
+ // Create a basic transaction with ID
323
+ const baseTx = {
324
+ encodedTx: "0xBasicTransaction",
325
+ chain: chain,
326
+ signer: userWallet,
327
+ metadata: { basic: true }
328
+ };
329
+ // Create transaction with ID using the helper
330
+ const tx = serviceCryptoPlugin.createTransaction(baseTx);
331
+ // Enhance it with service-side metadata
332
+ const enhancedTx = addServiceMetadata(tx);
333
+ // Create the signature request
334
+ const request = {
335
+ txs: [enhancedTx]
336
+ };
337
+ return {
338
+ success: true,
339
+ signatureRequests: [request]
340
+ };
341
+ };
342
+ // Simulate processing with a simple test
343
+ const testWallet = "0xTestWalletAddress";
344
+ const result = await processTransaction("eth", testWallet);
345
+ // Verify the metadata was added
346
+ expect(result.signatureRequests[0].txs[0].metadata?.enhanced).toBe(true);
347
+ expect(result.signatureRequests[0].txs[0].metadata?.serviceId).toBe("test-service-id");
348
+ expect(result.signatureRequests[0].txs[0].metadata?.timestamp).toBeDefined();
349
+ expect(result.signatureRequests[0].txs[0].metadata?.basic).toBe(true); // Original data preserved
350
+ // Make sure the transaction info is correct
351
+ expect(result.signatureRequests[0].txs[0].chain).toBe("eth");
352
+ expect(result.signatureRequests[0].txs[0].signer).toBe(testWallet);
353
+ // Verify the transaction has an ID
354
+ expect(result.signatureRequests[0].txs[0].id).toBeDefined();
355
+ console.log(`[TEST] Service processed transaction ID: ${result.signatureRequests[0].txs[0].id}`);
356
+ });
357
+ });
358
+ //# sourceMappingURL=crypto-plugin.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-plugin.test.js","sourceRoot":"","sources":["../../src/__tests__/crypto-plugin.test.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,6 @@ const convertToVercelTool_1 = require("@/lib/convertToVercelTool");
12
12
  const schemaStructure_1 = require("@/lib/schemaStructure");
13
13
  const client_auth_1 = require("@/client/client-auth");
14
14
  const client_1 = require("@/client/client");
15
- const fs_1 = tslib_1.__importDefault(require("fs"));
16
15
  describe("DAIN Framework Integration", () => {
17
16
  const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
18
17
  const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
@@ -417,7 +416,7 @@ describe("DAIN Framework Integration", () => {
417
416
  const port = app.port;
418
417
  const response = await dainConnection.makeRequest("GET", "/getAllToolsAsJsonSchema", {});
419
418
  console.log("JSON SCHEMA", JSON.stringify(response, null, 2));
420
- fs_1.default.writeFileSync("jsonSchema.json", JSON.stringify(response, null, 2));
419
+ // fs.writeFileSync("jsonSchema.json", JSON.stringify(response, null, 2));
421
420
  expect(response).toEqual({
422
421
  "tools": [
423
422
  {
@@ -1 +1 @@
1
- {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './service';
2
2
  export * as DAINServiceClient from "./client";
3
3
  export { createTool, createService, createToolbox, CoreUtils } from './service';
4
+ export * as DAINPlugins from "./plugins";
4
5
  export * as DAINServicePayments from "./lib/payments";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DAINServicePayments = exports.CoreUtils = exports.createToolbox = exports.createService = exports.createTool = exports.DAINServiceClient = void 0;
3
+ exports.DAINServicePayments = exports.DAINPlugins = exports.CoreUtils = exports.createToolbox = exports.createService = exports.createTool = exports.DAINServiceClient = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./service"), exports);
6
6
  exports.DAINServiceClient = tslib_1.__importStar(require("./client"));
@@ -10,6 +10,8 @@ Object.defineProperty(exports, "createTool", { enumerable: true, get: function (
10
10
  Object.defineProperty(exports, "createService", { enumerable: true, get: function () { return service_1.createService; } });
11
11
  Object.defineProperty(exports, "createToolbox", { enumerable: true, get: function () { return service_1.createToolbox; } });
12
12
  Object.defineProperty(exports, "CoreUtils", { enumerable: true, get: function () { return service_1.CoreUtils; } });
13
+ // Export plugins for easy access
14
+ exports.DAINPlugins = tslib_1.__importStar(require("./plugins"));
13
15
  // If you want to keep the previous naming convention, you can do:
14
16
  // export * as DAINService from './service';
15
17
  // This will create a namespace DAINService containing all exports from './service'
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,sEAA8C;AAE9C,6CAA6C;AAC7C,qCAAgF;AAAvE,qGAAA,UAAU,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,oGAAA,SAAS,OAAA;AAE5D,kEAAkE;AAClE,4CAA4C;AAC5C,mFAAmF;AAEnF,8EAAsD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,sEAA8C;AAE9C,6CAA6C;AAC7C,qCAAgF;AAAvE,qGAAA,UAAU,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,oGAAA,SAAS,OAAA;AAE5D,iCAAiC;AACjC,iEAAyC;AAEzC,kEAAkE;AAClE,4CAA4C;AAC5C,mFAAmF;AAEnF,8EAAsD"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * DAIN Crypto Plugin
3
+ *
4
+ * This plugin provides cryptocurrency wallet integration and transaction handling
5
+ * functionality for DAIN services.
6
+ */
7
+ export * from '../crypto-plugin';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * DAIN Crypto Plugin
4
+ *
5
+ * This plugin provides cryptocurrency wallet integration and transaction handling
6
+ * functionality for DAIN services.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const tslib_1 = require("tslib");
10
+ tslib_1.__exportStar(require("../crypto-plugin"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/crypto/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2DAAiC"}
@@ -0,0 +1,148 @@
1
+ import { BaseDainPlugin } from './base';
2
+ export type BlockchainNetwork = 'eth' | 'sol' | 'arb';
3
+ export interface WalletInfo {
4
+ chain: BlockchainNetwork;
5
+ address: string;
6
+ }
7
+ export interface UnsignedTransaction {
8
+ id: string;
9
+ encodedTx: string;
10
+ chain: BlockchainNetwork;
11
+ signer: string;
12
+ metadata?: Record<string, any>;
13
+ }
14
+ export interface TransactionSignatureRequest {
15
+ txs: UnsignedTransaction[];
16
+ }
17
+ export interface CryptoPluginConfig {
18
+ supportedChains?: BlockchainNetwork[];
19
+ wallets?: WalletInfo[];
20
+ }
21
+ export interface CryptoPluginInput {
22
+ wallets: WalletInfo[];
23
+ }
24
+ export interface CryptoPluginOutput {
25
+ signatureRequests?: TransactionSignatureRequest[];
26
+ }
27
+ /**
28
+ * CryptoPlugin for handling cryptocurrency transaction workflows
29
+ *
30
+ * This plugin allows services to request transaction signatures from clients
31
+ * by sending back unsigned transactions. Clients can provide their wallet
32
+ * addresses which tools can access and use to create appropriate transactions.
33
+ */
34
+ export declare class CryptoPlugin extends BaseDainPlugin<CryptoPluginConfig, CryptoPluginInput, CryptoPluginOutput> {
35
+ id: string;
36
+ name: string;
37
+ version: string;
38
+ description: string;
39
+ type: "both";
40
+ config: CryptoPluginConfig;
41
+ private wallets;
42
+ /**
43
+ * Create a new CryptoPlugin instance
44
+ * @param config Plugin configuration or array of wallet information
45
+ *
46
+ * @example
47
+ * // Initialize with wallet information directly
48
+ * const cryptoPlugin = new CryptoPlugin([
49
+ * { chain: 'eth', address: '0x1234...' },
50
+ * { chain: 'sol', address: 'Sol456...' }
51
+ * ]);
52
+ *
53
+ * @example
54
+ * // Initialize with full configuration
55
+ * const cryptoPlugin = new CryptoPlugin({
56
+ * supportedChains: ['eth', 'sol'],
57
+ * wallets: [
58
+ * { chain: 'eth', address: '0x1234...' },
59
+ * { chain: 'sol', address: 'Sol456...' }
60
+ * ]
61
+ * });
62
+ */
63
+ constructor(configOrWallets?: CryptoPluginConfig | WalletInfo[]);
64
+ /**
65
+ * Set or update wallet information
66
+ * @param wallets Array of wallet information
67
+ */
68
+ setWallets(wallets: WalletInfo[]): void;
69
+ /**
70
+ * Add a single wallet
71
+ * @param wallet Wallet information to add
72
+ */
73
+ addWallet(wallet: WalletInfo): void;
74
+ /**
75
+ * Get all configured wallets
76
+ * @returns Array of wallet information
77
+ */
78
+ getWallets(): WalletInfo[];
79
+ /**
80
+ * Get plugin input data from a tool context with proper typing
81
+ */
82
+ getInputData(context: any): CryptoPluginInput | undefined;
83
+ /**
84
+ * Get plugin output data from a response with proper typing
85
+ */
86
+ getResponseData(response: any): CryptoPluginOutput | undefined;
87
+ /**
88
+ * Create a standardized response for this plugin with proper typing
89
+ */
90
+ createResponse(data: Partial<CryptoPluginOutput>): CryptoPluginOutput;
91
+ /**
92
+ * Get user wallets from context
93
+ * @param context Tool context
94
+ * @returns Array of wallet information or empty array if none found
95
+ */
96
+ getUserWallets(context: any): WalletInfo[];
97
+ /**
98
+ * Get wallet address for a specific chain
99
+ * @param context Tool context
100
+ * @param chain Blockchain network
101
+ * @returns Wallet address or undefined if not found
102
+ */
103
+ getUserWalletForChain(context: any, chain: BlockchainNetwork): string | undefined;
104
+ /**
105
+ * Helper to create a transaction signature request
106
+ * @param transactions Array of unsigned transactions
107
+ * @returns Properly formatted transaction signature request
108
+ */
109
+ createTransactionRequest(transactions: UnsignedTransaction[]): TransactionSignatureRequest;
110
+ /**
111
+ * Create a single transaction with a unique ID
112
+ * @param transaction Transaction data, ID will be generated if not provided
113
+ * @returns Transaction with a guaranteed unique ID
114
+ */
115
+ createTransaction(transaction: Omit<UnsignedTransaction, 'id'> & {
116
+ id?: string;
117
+ }): UnsignedTransaction;
118
+ /**
119
+ * Get requested transaction signatures from a response
120
+ * @param response Tool response
121
+ * @returns Array of transaction signature requests or empty array if none
122
+ */
123
+ getRequestedCryptoSignatures(response: any): TransactionSignatureRequest[];
124
+ /**
125
+ * Get a specific transaction by ID from all signature requests
126
+ * @param response Tool response
127
+ * @param id Transaction ID to find
128
+ * @returns Transaction or undefined if not found
129
+ */
130
+ getTransactionById(response: any, id: string): UnsignedTransaction | undefined;
131
+ /**
132
+ * Process client input before sending to service
133
+ * Automatically adds wallet information to the request
134
+ */
135
+ processInputClient(input: any): Promise<CryptoPluginInput>;
136
+ /**
137
+ * Process service output before sending to client
138
+ */
139
+ processOutputService(output: any): Promise<CryptoPluginOutput>;
140
+ /**
141
+ * Process client output after receiving service response
142
+ */
143
+ processOutputClient(output: any): Promise<any>;
144
+ /**
145
+ * Process service input before handling the request
146
+ */
147
+ processInputService(input: any): Promise<any>;
148
+ }
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CryptoPlugin = void 0;
4
+ const base_1 = require("./base");
5
+ const cuid2_1 = require("@paralleldrive/cuid2");
6
+ /**
7
+ * CryptoPlugin for handling cryptocurrency transaction workflows
8
+ *
9
+ * This plugin allows services to request transaction signatures from clients
10
+ * by sending back unsigned transactions. Clients can provide their wallet
11
+ * addresses which tools can access and use to create appropriate transactions.
12
+ */
13
+ class CryptoPlugin extends base_1.BaseDainPlugin {
14
+ id = 'crypto-plugin';
15
+ name = 'Crypto Plugin';
16
+ version = '1.0.0';
17
+ description = 'Handles cryptocurrency wallet information and transaction signing requests';
18
+ type = 'both';
19
+ config;
20
+ wallets;
21
+ /**
22
+ * Create a new CryptoPlugin instance
23
+ * @param config Plugin configuration or array of wallet information
24
+ *
25
+ * @example
26
+ * // Initialize with wallet information directly
27
+ * const cryptoPlugin = new CryptoPlugin([
28
+ * { chain: 'eth', address: '0x1234...' },
29
+ * { chain: 'sol', address: 'Sol456...' }
30
+ * ]);
31
+ *
32
+ * @example
33
+ * // Initialize with full configuration
34
+ * const cryptoPlugin = new CryptoPlugin({
35
+ * supportedChains: ['eth', 'sol'],
36
+ * wallets: [
37
+ * { chain: 'eth', address: '0x1234...' },
38
+ * { chain: 'sol', address: 'Sol456...' }
39
+ * ]
40
+ * });
41
+ */
42
+ constructor(configOrWallets = {}) {
43
+ super();
44
+ // Handle the case where an array of wallets is passed directly
45
+ if (Array.isArray(configOrWallets)) {
46
+ this.config = { supportedChains: ['eth', 'sol', 'arb'] };
47
+ this.wallets = [...configOrWallets];
48
+ }
49
+ else {
50
+ // Set default supported chains if not provided
51
+ this.config = {
52
+ supportedChains: configOrWallets.supportedChains || ['eth', 'sol', 'arb'],
53
+ wallets: configOrWallets.wallets
54
+ };
55
+ this.wallets = configOrWallets.wallets || [];
56
+ }
57
+ }
58
+ /**
59
+ * Set or update wallet information
60
+ * @param wallets Array of wallet information
61
+ */
62
+ setWallets(wallets) {
63
+ this.wallets = [...wallets];
64
+ // Update config as well for consistency
65
+ this.config.wallets = [...wallets];
66
+ }
67
+ /**
68
+ * Add a single wallet
69
+ * @param wallet Wallet information to add
70
+ */
71
+ addWallet(wallet) {
72
+ // Remove any existing wallet for the same chain
73
+ this.wallets = this.wallets.filter(w => w.chain !== wallet.chain);
74
+ // Add the new wallet
75
+ this.wallets.push(wallet);
76
+ // Update config as well
77
+ this.config.wallets = [...this.wallets];
78
+ }
79
+ /**
80
+ * Get all configured wallets
81
+ * @returns Array of wallet information
82
+ */
83
+ getWallets() {
84
+ return [...this.wallets];
85
+ }
86
+ /**
87
+ * Get plugin input data from a tool context with proper typing
88
+ */
89
+ getInputData(context) {
90
+ return super.getInputData(context);
91
+ }
92
+ /**
93
+ * Get plugin output data from a response with proper typing
94
+ */
95
+ getResponseData(response) {
96
+ return super.getResponseData(response);
97
+ }
98
+ /**
99
+ * Create a standardized response for this plugin with proper typing
100
+ */
101
+ createResponse(data) {
102
+ return super.createResponse(data);
103
+ }
104
+ /**
105
+ * Get user wallets from context
106
+ * @param context Tool context
107
+ * @returns Array of wallet information or empty array if none found
108
+ */
109
+ getUserWallets(context) {
110
+ const pluginData = this.getInputData(context);
111
+ if (!pluginData || !pluginData.wallets) {
112
+ return [];
113
+ }
114
+ return pluginData.wallets;
115
+ }
116
+ /**
117
+ * Get wallet address for a specific chain
118
+ * @param context Tool context
119
+ * @param chain Blockchain network
120
+ * @returns Wallet address or undefined if not found
121
+ */
122
+ getUserWalletForChain(context, chain) {
123
+ const wallets = this.getUserWallets(context);
124
+ const wallet = wallets.find(w => w.chain === chain);
125
+ return wallet?.address;
126
+ }
127
+ /**
128
+ * Helper to create a transaction signature request
129
+ * @param transactions Array of unsigned transactions
130
+ * @returns Properly formatted transaction signature request
131
+ */
132
+ createTransactionRequest(transactions) {
133
+ // Ensure each transaction has a unique ID
134
+ const txsWithIds = transactions.map(tx => {
135
+ if (!tx.id) {
136
+ return {
137
+ ...tx,
138
+ id: (0, cuid2_1.createId)()
139
+ };
140
+ }
141
+ return tx;
142
+ });
143
+ return { txs: txsWithIds };
144
+ }
145
+ /**
146
+ * Create a single transaction with a unique ID
147
+ * @param transaction Transaction data, ID will be generated if not provided
148
+ * @returns Transaction with a guaranteed unique ID
149
+ */
150
+ createTransaction(transaction) {
151
+ return {
152
+ ...transaction,
153
+ id: transaction.id || (0, cuid2_1.createId)()
154
+ };
155
+ }
156
+ /**
157
+ * Get requested transaction signatures from a response
158
+ * @param response Tool response
159
+ * @returns Array of transaction signature requests or empty array if none
160
+ */
161
+ getRequestedCryptoSignatures(response) {
162
+ const pluginData = this.getResponseData(response);
163
+ if (!pluginData || !pluginData.signatureRequests) {
164
+ // Try to extract from data property if not found in plugin data
165
+ if (response.data?.signatureRequests) {
166
+ return response.data.signatureRequests;
167
+ }
168
+ return [];
169
+ }
170
+ return pluginData.signatureRequests;
171
+ }
172
+ /**
173
+ * Get a specific transaction by ID from all signature requests
174
+ * @param response Tool response
175
+ * @param id Transaction ID to find
176
+ * @returns Transaction or undefined if not found
177
+ */
178
+ getTransactionById(response, id) {
179
+ const requests = this.getRequestedCryptoSignatures(response);
180
+ for (const request of requests) {
181
+ const tx = request.txs.find(tx => tx.id === id);
182
+ if (tx)
183
+ return tx;
184
+ }
185
+ return undefined;
186
+ }
187
+ /**
188
+ * Process client input before sending to service
189
+ * Automatically adds wallet information to the request
190
+ */
191
+ async processInputClient(input) {
192
+ // Combine explicitly provided wallets with configured wallets
193
+ const inputWallets = input.wallets || [];
194
+ // Create a map of chains to addresses for quick lookup
195
+ const walletMap = new Map();
196
+ // Add the explicitly provided wallets first
197
+ for (const wallet of inputWallets) {
198
+ walletMap.set(wallet.chain, wallet.address);
199
+ }
200
+ // Add the configured wallets where there isn't already a wallet for that chain
201
+ for (const wallet of this.wallets) {
202
+ if (!walletMap.has(wallet.chain)) {
203
+ walletMap.set(wallet.chain, wallet.address);
204
+ }
205
+ }
206
+ // Convert back to array
207
+ const combinedWallets = Array.from(walletMap.entries()).map(([chain, address]) => ({ chain: chain, address }));
208
+ return {
209
+ wallets: combinedWallets
210
+ };
211
+ }
212
+ /**
213
+ * Process service output before sending to client
214
+ */
215
+ async processOutputService(output) {
216
+ // Extract signature requests from the data property if they exist
217
+ let signatureRequests = [];
218
+ // Check if output has data property with signatureRequests
219
+ if (output?.data?.signatureRequests) {
220
+ signatureRequests = output.data.signatureRequests.map((req) => {
221
+ // Ensure all transactions have IDs
222
+ const txsWithIds = req.txs.map(tx => {
223
+ if (!tx.id) {
224
+ return {
225
+ ...tx,
226
+ id: (0, cuid2_1.createId)()
227
+ };
228
+ }
229
+ return tx;
230
+ });
231
+ return { txs: txsWithIds };
232
+ });
233
+ }
234
+ // Also check if it's a context response where toolResult contains the data
235
+ if (output?.toolResult?.data?.signatureRequests) {
236
+ signatureRequests = output.toolResult.data.signatureRequests.map((req) => {
237
+ // Ensure all transactions have IDs
238
+ const txsWithIds = req.txs.map(tx => {
239
+ if (!tx.id) {
240
+ return {
241
+ ...tx,
242
+ id: (0, cuid2_1.createId)()
243
+ };
244
+ }
245
+ return tx;
246
+ });
247
+ return { txs: txsWithIds };
248
+ });
249
+ }
250
+ // Return the extracted signatureRequests
251
+ return {
252
+ signatureRequests: signatureRequests.length > 0 ? signatureRequests : undefined
253
+ };
254
+ }
255
+ /**
256
+ * Process client output after receiving service response
257
+ */
258
+ async processOutputClient(output) {
259
+ // Ensure all transactions in the response have IDs
260
+ if (output?.plugins?.[this.id]?.signatureRequests) {
261
+ output.plugins[this.id].signatureRequests = output.plugins[this.id].signatureRequests.map((req) => {
262
+ // Ensure all transactions have IDs
263
+ const txsWithIds = req.txs.map(tx => {
264
+ if (!tx.id) {
265
+ return {
266
+ ...tx,
267
+ id: (0, cuid2_1.createId)()
268
+ };
269
+ }
270
+ return tx;
271
+ });
272
+ return { txs: txsWithIds };
273
+ });
274
+ }
275
+ // Also check data object for signatureRequests
276
+ if (output?.data?.signatureRequests) {
277
+ output.data.signatureRequests = output.data.signatureRequests.map((req) => {
278
+ // Ensure all transactions have IDs
279
+ const txsWithIds = req.txs.map(tx => {
280
+ if (!tx.id) {
281
+ return {
282
+ ...tx,
283
+ id: (0, cuid2_1.createId)()
284
+ };
285
+ }
286
+ return tx;
287
+ });
288
+ return { txs: txsWithIds };
289
+ });
290
+ }
291
+ return output;
292
+ }
293
+ /**
294
+ * Process service input before handling the request
295
+ */
296
+ async processInputService(input) {
297
+ // No modifications needed for service input processing
298
+ return input;
299
+ }
300
+ }
301
+ exports.CryptoPlugin = CryptoPlugin;
302
+ //# sourceMappingURL=crypto-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-plugin.js","sourceRoot":"","sources":["../../src/plugins/crypto-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './types';
2
2
  export * from './base';
3
3
  export * from './time-plugin';
4
+ export * from './crypto-plugin';
@@ -5,4 +5,5 @@ const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./types"), exports);
6
6
  tslib_1.__exportStar(require("./base"), exports);
7
7
  tslib_1.__exportStar(require("./time-plugin"), exports);
8
+ tslib_1.__exportStar(require("./crypto-plugin"), exports);
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAE7B,kDAAwB;AACxB,iDAAuB;AACvB,wDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAE7B,kDAAwB;AACxB,iDAAuB;AACvB,wDAA8B;AAC9B,0DAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dainprotocol/service-sdk",
3
- "version": "1.1.13",
3
+ "version": "1.1.14",
4
4
  "description": "DAIN Service SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -57,6 +57,10 @@
57
57
  "types": "./dist/lib/payments/index.d.ts",
58
58
  "default": "./dist/lib/payments/index.js"
59
59
  },
60
+ "./plugins": {
61
+ "types": "./dist/plugins/index.d.ts",
62
+ "default": "./dist/plugins/index.js"
63
+ },
60
64
  "./client/*": {
61
65
  "types": "./dist/client/*.d.ts",
62
66
  "default": "./dist/client/*.js"
@@ -81,6 +85,9 @@
81
85
  "service": [
82
86
  "./dist/service/index.d.ts"
83
87
  ],
88
+ "plugins": [
89
+ "./dist/plugins/index.d.ts"
90
+ ],
84
91
  "client/*": [
85
92
  "./dist/client/*.d.ts"
86
93
  ],