@chaoschain/sdk 0.1.3 → 0.2.3

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.
@@ -1,3 +1,5 @@
1
+ 'use strict';
2
+
1
3
  // src/providers/compute/index.ts
2
4
  var LocalComputeProvider = class {
3
5
  async inference(_model, _input) {
@@ -8,6 +10,6 @@ var LocalComputeProvider = class {
8
10
  }
9
11
  };
10
12
 
11
- export { LocalComputeProvider };
12
- //# sourceMappingURL=index.mjs.map
13
- //# sourceMappingURL=index.mjs.map
13
+ exports.LocalComputeProvider = LocalComputeProvider;
14
+ //# sourceMappingURL=index.cjs.map
15
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/providers/compute/index.ts"],"names":[],"mappings":";;;AAUO,IAAM,uBAAN,MAAsD;AAAA,EAC3D,MAAM,SAAA,CAAU,MAAA,EAAgB,MAAA,EAAmC;AACjE,IAAA,MAAM,IAAI,MAAM,sEAAsE,CAAA;AAAA,EACxF;AAAA,EAEA,MAAM,SAAA,GAA+B;AACnC,IAAA,OAAO,EAAC;AAAA,EACV;AACF","file":"index.cjs","sourcesContent":["/**\n * Compute Providers Export\n * Placeholder for future compute providers (0G, etc.)\n */\n\nimport { ComputeProvider } from '../../types';\n\n/**\n * Basic compute provider implementation\n */\nexport class LocalComputeProvider implements ComputeProvider {\n async inference(_model: string, _input: unknown): Promise<unknown> {\n throw new Error('Local compute not yet implemented. Use 0G Compute or other provider.');\n }\n\n async getModels(): Promise<string[]> {\n return [];\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { o as ComputeProvider } from '../../types-CEFAgoAM.cjs';
2
+ import 'ethers';
3
+
4
+ /**
5
+ * Compute Providers Export
6
+ * Placeholder for future compute providers (0G, etc.)
7
+ */
8
+
9
+ /**
10
+ * Basic compute provider implementation
11
+ */
12
+ declare class LocalComputeProvider implements ComputeProvider {
13
+ inference(_model: string, _input: unknown): Promise<unknown>;
14
+ getModels(): Promise<string[]>;
15
+ }
16
+
17
+ export { LocalComputeProvider };
@@ -0,0 +1,17 @@
1
+ import { o as ComputeProvider } from '../../types-CEFAgoAM.js';
2
+ import 'ethers';
3
+
4
+ /**
5
+ * Compute Providers Export
6
+ * Placeholder for future compute providers (0G, etc.)
7
+ */
8
+
9
+ /**
10
+ * Basic compute provider implementation
11
+ */
12
+ declare class LocalComputeProvider implements ComputeProvider {
13
+ inference(_model: string, _input: unknown): Promise<unknown>;
14
+ getModels(): Promise<string[]>;
15
+ }
16
+
17
+ export { LocalComputeProvider };
@@ -1,5 +1,3 @@
1
- 'use strict';
2
-
3
1
  // src/providers/compute/index.ts
4
2
  var LocalComputeProvider = class {
5
3
  async inference(_model, _input) {
@@ -10,6 +8,6 @@ var LocalComputeProvider = class {
10
8
  }
11
9
  };
12
10
 
13
- exports.LocalComputeProvider = LocalComputeProvider;
11
+ export { LocalComputeProvider };
14
12
  //# sourceMappingURL=index.js.map
15
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/compute/index.ts"],"names":[],"mappings":";;;AAUO,IAAM,uBAAN,MAAsD;AAAA,EAC3D,MAAM,SAAA,CAAU,MAAA,EAAgB,MAAA,EAAmC;AACjE,IAAA,MAAM,IAAI,MAAM,sEAAsE,CAAA;AAAA,EACxF;AAAA,EAEA,MAAM,SAAA,GAA+B;AACnC,IAAA,OAAO,EAAC;AAAA,EACV;AACF","file":"index.js","sourcesContent":["/**\n * Compute Providers Export\n * Placeholder for future compute providers (0G, etc.)\n */\n\nimport { ComputeProvider } from '../../types';\n\n/**\n * Basic compute provider implementation\n */\nexport class LocalComputeProvider implements ComputeProvider {\n async inference(_model: string, _input: unknown): Promise<unknown> {\n throw new Error('Local compute not yet implemented. Use 0G Compute or other provider.');\n }\n\n async getModels(): Promise<string[]> {\n return [];\n }\n}\n\n"]}
1
+ {"version":3,"sources":["../../../src/providers/compute/index.ts"],"names":[],"mappings":";AAUO,IAAM,uBAAN,MAAsD;AAAA,EAC3D,MAAM,SAAA,CAAU,MAAA,EAAgB,MAAA,EAAmC;AACjE,IAAA,MAAM,IAAI,MAAM,sEAAsE,CAAA;AAAA,EACxF;AAAA,EAEA,MAAM,SAAA,GAA+B;AACnC,IAAA,OAAO,EAAC;AAAA,EACV;AACF","file":"index.js","sourcesContent":["/**\n * Compute Providers Export\n * Placeholder for future compute providers (0G, etc.)\n */\n\nimport { ComputeProvider } from '../../types';\n\n/**\n * Basic compute provider implementation\n */\nexport class LocalComputeProvider implements ComputeProvider {\n async inference(_model: string, _input: unknown): Promise<unknown> {\n throw new Error('Local compute not yet implemented. Use 0G Compute or other provider.');\n }\n\n async getModels(): Promise<string[]> {\n return [];\n }\n}\n"]}
@@ -0,0 +1,286 @@
1
+ 'use strict';
2
+
3
+ var axios = require('axios');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var axios__default = /*#__PURE__*/_interopDefault(axios);
8
+
9
+ // src/providers/storage/IPFSLocal.ts
10
+ var IPFSLocalStorage = class {
11
+ apiUrl;
12
+ gatewayUrl;
13
+ constructor(apiUrl = "http://localhost:5001", gatewayUrl = "http://localhost:8080") {
14
+ this.apiUrl = apiUrl;
15
+ this.gatewayUrl = gatewayUrl;
16
+ }
17
+ /**
18
+ * Upload data to local IPFS
19
+ */
20
+ async upload(data, options) {
21
+ try {
22
+ let buffer;
23
+ if (Buffer.isBuffer(data)) {
24
+ buffer = data;
25
+ } else if (typeof data === "string") {
26
+ buffer = Buffer.from(data, "utf-8");
27
+ } else {
28
+ buffer = Buffer.from(JSON.stringify(data), "utf-8");
29
+ }
30
+ const formData = new FormData();
31
+ const blob = new Blob([buffer], { type: options?.mime || "application/octet-stream" });
32
+ formData.append("file", blob);
33
+ const response = await axios__default.default.post(`${this.apiUrl}/api/v0/add`, formData, {
34
+ headers: {
35
+ "Content-Type": "multipart/form-data"
36
+ },
37
+ params: {
38
+ pin: options?.pin !== false
39
+ // Pin by default
40
+ }
41
+ });
42
+ const cid = response.data.Hash;
43
+ return {
44
+ cid,
45
+ uri: `ipfs://${cid}`,
46
+ size: response.data.Size,
47
+ timestamp: Date.now()
48
+ };
49
+ } catch (error) {
50
+ throw new Error(`Failed to upload to IPFS: ${error.message}`);
51
+ }
52
+ }
53
+ /**
54
+ * Download data from IPFS
55
+ */
56
+ async download(cid) {
57
+ try {
58
+ const response = await axios__default.default.get(`${this.gatewayUrl}/ipfs/${cid}`, {
59
+ responseType: "arraybuffer"
60
+ });
61
+ return Buffer.from(response.data);
62
+ } catch (error) {
63
+ throw new Error(`Failed to download from IPFS: ${error.message}`);
64
+ }
65
+ }
66
+ /**
67
+ * Pin content
68
+ */
69
+ async pin(cid) {
70
+ try {
71
+ await axios__default.default.post(`${this.apiUrl}/api/v0/pin/add`, null, {
72
+ params: { arg: cid }
73
+ });
74
+ } catch (error) {
75
+ throw new Error(`Failed to pin content: ${error.message}`);
76
+ }
77
+ }
78
+ /**
79
+ * Unpin content
80
+ */
81
+ async unpin(cid) {
82
+ try {
83
+ await axios__default.default.post(`${this.apiUrl}/api/v0/pin/rm`, null, {
84
+ params: { arg: cid }
85
+ });
86
+ } catch (error) {
87
+ throw new Error(`Failed to unpin content: ${error.message}`);
88
+ }
89
+ }
90
+ /**
91
+ * Check if IPFS daemon is running
92
+ */
93
+ async isAvailable() {
94
+ try {
95
+ await axios__default.default.post(`${this.apiUrl}/api/v0/version`);
96
+ return true;
97
+ } catch {
98
+ return false;
99
+ }
100
+ }
101
+ /**
102
+ * Get IPFS version
103
+ */
104
+ async getVersion() {
105
+ try {
106
+ const response = await axios__default.default.post(`${this.apiUrl}/api/v0/version`);
107
+ return response.data.Version;
108
+ } catch (error) {
109
+ throw new Error(`Failed to get IPFS version: ${error.message}`);
110
+ }
111
+ }
112
+ };
113
+ var PinataStorage = class {
114
+ apiKey;
115
+ apiSecret;
116
+ jwt;
117
+ gatewayUrl;
118
+ apiUrl = "https://api.pinata.cloud";
119
+ constructor(config) {
120
+ this.apiKey = config.apiKey;
121
+ this.apiSecret = config.apiSecret;
122
+ this.jwt = config.jwt;
123
+ this.gatewayUrl = config.gatewayUrl || "https://gateway.pinata.cloud";
124
+ if (!this.jwt && (!this.apiKey || !this.apiSecret)) {
125
+ throw new Error("Pinata requires either JWT or API key/secret");
126
+ }
127
+ }
128
+ /**
129
+ * Get authorization headers
130
+ */
131
+ getHeaders() {
132
+ if (this.jwt) {
133
+ return {
134
+ Authorization: `Bearer ${this.jwt}`
135
+ };
136
+ }
137
+ return {
138
+ pinata_api_key: this.apiKey,
139
+ pinata_secret_api_key: this.apiSecret
140
+ };
141
+ }
142
+ /**
143
+ * Upload data to Pinata
144
+ */
145
+ async upload(data, options) {
146
+ try {
147
+ let buffer;
148
+ if (Buffer.isBuffer(data)) {
149
+ buffer = data;
150
+ } else if (typeof data === "string") {
151
+ buffer = Buffer.from(data, "utf-8");
152
+ } else {
153
+ buffer = Buffer.from(JSON.stringify(data), "utf-8");
154
+ }
155
+ const formData = new FormData();
156
+ const blob = new Blob([buffer], { type: options?.mime || "application/octet-stream" });
157
+ formData.append("file", blob, "file");
158
+ if (options?.metadata) {
159
+ formData.append("pinataMetadata", JSON.stringify(options.metadata));
160
+ }
161
+ const response = await axios__default.default.post(`${this.apiUrl}/pinning/pinFileToIPFS`, formData, {
162
+ headers: {
163
+ ...this.getHeaders(),
164
+ "Content-Type": "multipart/form-data"
165
+ }
166
+ });
167
+ const cid = response.data.IpfsHash;
168
+ return {
169
+ cid,
170
+ uri: `ipfs://${cid}`,
171
+ size: response.data.PinSize,
172
+ timestamp: Date.now()
173
+ };
174
+ } catch (error) {
175
+ throw new Error(`Failed to upload to Pinata: ${error.message}`);
176
+ }
177
+ }
178
+ /**
179
+ * Download data from Pinata gateway
180
+ */
181
+ async download(cid) {
182
+ try {
183
+ const response = await axios__default.default.get(`${this.gatewayUrl}/ipfs/${cid}`, {
184
+ responseType: "arraybuffer"
185
+ });
186
+ return Buffer.from(response.data);
187
+ } catch (error) {
188
+ throw new Error(`Failed to download from Pinata: ${error.message}`);
189
+ }
190
+ }
191
+ /**
192
+ * Pin existing IPFS content
193
+ */
194
+ async pin(cid) {
195
+ try {
196
+ await axios__default.default.post(
197
+ `${this.apiUrl}/pinning/pinByHash`,
198
+ {
199
+ hashToPin: cid
200
+ },
201
+ {
202
+ headers: this.getHeaders()
203
+ }
204
+ );
205
+ } catch (error) {
206
+ throw new Error(`Failed to pin content: ${error.message}`);
207
+ }
208
+ }
209
+ /**
210
+ * Unpin content
211
+ */
212
+ async unpin(cid) {
213
+ try {
214
+ await axios__default.default.delete(`${this.apiUrl}/pinning/unpin/${cid}`, {
215
+ headers: this.getHeaders()
216
+ });
217
+ } catch (error) {
218
+ throw new Error(`Failed to unpin content: ${error.message}`);
219
+ }
220
+ }
221
+ /**
222
+ * Test authentication
223
+ */
224
+ async testAuthentication() {
225
+ try {
226
+ await axios__default.default.get(`${this.apiUrl}/data/testAuthentication`, {
227
+ headers: this.getHeaders()
228
+ });
229
+ return true;
230
+ } catch {
231
+ return false;
232
+ }
233
+ }
234
+ };
235
+
236
+ // src/providers/storage/Irys.ts
237
+ var IrysStorage = class {
238
+ _config;
239
+ constructor(config) {
240
+ this._config = {
241
+ network: "mainnet",
242
+ token: "ethereum",
243
+ ...config
244
+ };
245
+ console.log(`Irys storage configured for ${this._config.network}`);
246
+ }
247
+ /**
248
+ * Upload data to Arweave via Irys
249
+ * Note: Requires @irys/sdk to be installed
250
+ */
251
+ async upload(_data, _options) {
252
+ try {
253
+ throw new Error("Irys storage requires @irys/sdk to be installed: npm install @irys/sdk");
254
+ } catch (error) {
255
+ throw new Error(`Irys upload failed: ${error.message}`);
256
+ }
257
+ }
258
+ /**
259
+ * Download data from Arweave
260
+ */
261
+ async download(cid) {
262
+ try {
263
+ const response = await fetch(`https://arweave.net/${cid}`);
264
+ const data = await response.arrayBuffer();
265
+ return Buffer.from(data);
266
+ } catch (error) {
267
+ throw new Error(`Irys download failed: ${error.message}`);
268
+ }
269
+ }
270
+ /**
271
+ * Pin - no-op for Arweave (content is permanent)
272
+ */
273
+ async pin(_cid) {
274
+ }
275
+ /**
276
+ * Unpin - no-op for Arweave (content is permanent)
277
+ */
278
+ async unpin(_cid) {
279
+ }
280
+ };
281
+
282
+ exports.IPFSLocalStorage = IPFSLocalStorage;
283
+ exports.IrysStorage = IrysStorage;
284
+ exports.PinataStorage = PinataStorage;
285
+ //# sourceMappingURL=index.cjs.map
286
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/providers/storage/IPFSLocal.ts","../../../src/providers/storage/IPFSPinata.ts","../../../src/providers/storage/Irys.ts"],"names":["axios"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Local IPFS Storage Provider\n * Uses HTTP API client to interact with local IPFS daemon\n */\n\nimport axios from 'axios';\nimport { StorageProvider, UploadOptions, UploadResult } from '../../types';\n\nexport class IPFSLocalStorage implements StorageProvider {\n private apiUrl: string;\n private gatewayUrl: string;\n\n constructor(\n apiUrl: string = 'http://localhost:5001',\n gatewayUrl: string = 'http://localhost:8080'\n ) {\n this.apiUrl = apiUrl;\n this.gatewayUrl = gatewayUrl;\n }\n\n /**\n * Upload data to local IPFS\n */\n async upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult> {\n try {\n let buffer: Buffer;\n\n // Convert data to buffer\n if (Buffer.isBuffer(data)) {\n buffer = data;\n } else if (typeof data === 'string') {\n buffer = Buffer.from(data, 'utf-8');\n } else {\n buffer = Buffer.from(JSON.stringify(data), 'utf-8');\n }\n\n // Create form data\n const formData = new FormData();\n const blob = new Blob([buffer], { type: options?.mime || 'application/octet-stream' });\n formData.append('file', blob);\n\n // Upload to IPFS\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n params: {\n pin: options?.pin !== false, // Pin by default\n },\n });\n\n const cid = response.data.Hash;\n\n return {\n cid,\n uri: `ipfs://${cid}`,\n size: response.data.Size,\n timestamp: Date.now(),\n };\n } catch (error) {\n throw new Error(`Failed to upload to IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Download data from IPFS\n */\n async download(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (error) {\n throw new Error(`Failed to download from IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Pin content\n */\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to pin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Unpin content\n */\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to unpin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Check if IPFS daemon is running\n */\n async isAvailable(): Promise<boolean> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/version`);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get IPFS version\n */\n async getVersion(): Promise<string> {\n try {\n const response = await axios.post(`${this.apiUrl}/api/v0/version`);\n return response.data.Version;\n } catch (error) {\n throw new Error(`Failed to get IPFS version: ${(error as Error).message}`);\n }\n }\n}\n","/**\n * Pinata IPFS Storage Provider\n * Cloud-based IPFS pinning service\n */\n\nimport axios from 'axios';\nimport { StorageProvider, UploadOptions, UploadResult } from '../../types';\n\nexport interface PinataConfig {\n apiKey?: string;\n apiSecret?: string;\n jwt?: string;\n gatewayUrl?: string;\n}\n\nexport class PinataStorage implements StorageProvider {\n private apiKey?: string;\n private apiSecret?: string;\n private jwt?: string;\n private gatewayUrl: string;\n private apiUrl: string = 'https://api.pinata.cloud';\n\n constructor(config: PinataConfig) {\n this.apiKey = config.apiKey;\n this.apiSecret = config.apiSecret;\n this.jwt = config.jwt;\n this.gatewayUrl = config.gatewayUrl || 'https://gateway.pinata.cloud';\n\n if (!this.jwt && (!this.apiKey || !this.apiSecret)) {\n throw new Error('Pinata requires either JWT or API key/secret');\n }\n }\n\n /**\n * Get authorization headers\n */\n private getHeaders(): Record<string, string> {\n if (this.jwt) {\n return {\n Authorization: `Bearer ${this.jwt}`,\n };\n }\n return {\n pinata_api_key: this.apiKey!,\n pinata_secret_api_key: this.apiSecret!,\n };\n }\n\n /**\n * Upload data to Pinata\n */\n async upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult> {\n try {\n let buffer: Buffer;\n\n // Convert data to buffer\n if (Buffer.isBuffer(data)) {\n buffer = data;\n } else if (typeof data === 'string') {\n buffer = Buffer.from(data, 'utf-8');\n } else {\n buffer = Buffer.from(JSON.stringify(data), 'utf-8');\n }\n\n // Create form data\n const formData = new FormData();\n const blob = new Blob([buffer], { type: options?.mime || 'application/octet-stream' });\n formData.append('file', blob, 'file');\n\n // Add metadata if provided\n if (options?.metadata) {\n formData.append('pinataMetadata', JSON.stringify(options.metadata));\n }\n\n // Upload to Pinata\n const response = await axios.post(`${this.apiUrl}/pinning/pinFileToIPFS`, formData, {\n headers: {\n ...this.getHeaders(),\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n const cid = response.data.IpfsHash;\n\n return {\n cid,\n uri: `ipfs://${cid}`,\n size: response.data.PinSize,\n timestamp: Date.now(),\n };\n } catch (error) {\n throw new Error(`Failed to upload to Pinata: ${(error as Error).message}`);\n }\n }\n\n /**\n * Download data from Pinata gateway\n */\n async download(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (error) {\n throw new Error(`Failed to download from Pinata: ${(error as Error).message}`);\n }\n }\n\n /**\n * Pin existing IPFS content\n */\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(\n `${this.apiUrl}/pinning/pinByHash`,\n {\n hashToPin: cid,\n },\n {\n headers: this.getHeaders(),\n }\n );\n } catch (error) {\n throw new Error(`Failed to pin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Unpin content\n */\n async unpin(cid: string): Promise<void> {\n try {\n await axios.delete(`${this.apiUrl}/pinning/unpin/${cid}`, {\n headers: this.getHeaders(),\n });\n } catch (error) {\n throw new Error(`Failed to unpin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Test authentication\n */\n async testAuthentication(): Promise<boolean> {\n try {\n await axios.get(`${this.apiUrl}/data/testAuthentication`, {\n headers: this.getHeaders(),\n });\n return true;\n } catch {\n return false;\n }\n }\n}\n","/**\n * Irys (Arweave) storage provider for ChaosChain SDK\n * Provides permanent storage via Arweave blockchain\n */\n\nimport { StorageProvider, UploadOptions, UploadResult } from '../../types';\n\nexport interface IrysConfig {\n walletKey: string;\n network?: 'mainnet' | 'devnet';\n token?: string;\n providerUrl?: string;\n}\n\nexport class IrysStorage implements StorageProvider {\n private _config: IrysConfig;\n\n constructor(config: IrysConfig) {\n this._config = {\n network: 'mainnet' as 'mainnet' | 'devnet',\n token: 'ethereum',\n ...config,\n };\n // Config stored for future use when @irys/sdk is installed\n console.log(`Irys storage configured for ${this._config.network}`);\n }\n\n /**\n * Upload data to Arweave via Irys\n * Note: Requires @irys/sdk to be installed\n */\n async upload(_data: Buffer | string | object, _options?: UploadOptions): Promise<UploadResult> {\n try {\n // This is a placeholder - actual implementation requires @irys/sdk\n throw new Error('Irys storage requires @irys/sdk to be installed: npm install @irys/sdk');\n\n // In production with @irys/sdk installed:\n // const Irys = require('@irys/sdk').default;\n // const irys = new Irys({\n // network: this._config.network,\n // token: this._config.token,\n // key: this._config.walletKey,\n // });\n //\n // const buffer = this.toBuffer(_data);\n // const tx = await irys.upload(buffer, {\n // tags: [{ name: 'Content-Type', value: _options?.contentType || 'application/json' }],\n // });\n //\n // return {\n // cid: tx.id,\n // uri: `https://arweave.net/${tx.id}`,\n // };\n } catch (error: any) {\n throw new Error(`Irys upload failed: ${error.message}`);\n }\n }\n\n /**\n * Download data from Arweave\n */\n async download(cid: string): Promise<Buffer> {\n try {\n const response = await fetch(`https://arweave.net/${cid}`);\n const data = await response.arrayBuffer();\n return Buffer.from(data);\n } catch (error: any) {\n throw new Error(`Irys download failed: ${error.message}`);\n }\n }\n\n /**\n * Pin - no-op for Arweave (content is permanent)\n */\n async pin(_cid: string): Promise<void> {\n // No-op: Arweave content is permanent\n }\n\n /**\n * Unpin - no-op for Arweave (content is permanent)\n */\n async unpin(_cid: string): Promise<void> {\n // No-op: Arweave content is permanent\n }\n}\n"]}
@@ -0,0 +1,82 @@
1
+ export { I as IPFSLocalStorage } from '../../IPFSLocal-DqzD3Y7I.cjs';
2
+ import { n as StorageProvider, U as UploadOptions, i as UploadResult } from '../../types-CEFAgoAM.cjs';
3
+ import 'ethers';
4
+
5
+ /**
6
+ * Pinata IPFS Storage Provider
7
+ * Cloud-based IPFS pinning service
8
+ */
9
+
10
+ interface PinataConfig {
11
+ apiKey?: string;
12
+ apiSecret?: string;
13
+ jwt?: string;
14
+ gatewayUrl?: string;
15
+ }
16
+ declare class PinataStorage implements StorageProvider {
17
+ private apiKey?;
18
+ private apiSecret?;
19
+ private jwt?;
20
+ private gatewayUrl;
21
+ private apiUrl;
22
+ constructor(config: PinataConfig);
23
+ /**
24
+ * Get authorization headers
25
+ */
26
+ private getHeaders;
27
+ /**
28
+ * Upload data to Pinata
29
+ */
30
+ upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult>;
31
+ /**
32
+ * Download data from Pinata gateway
33
+ */
34
+ download(cid: string): Promise<Buffer>;
35
+ /**
36
+ * Pin existing IPFS content
37
+ */
38
+ pin(cid: string): Promise<void>;
39
+ /**
40
+ * Unpin content
41
+ */
42
+ unpin(cid: string): Promise<void>;
43
+ /**
44
+ * Test authentication
45
+ */
46
+ testAuthentication(): Promise<boolean>;
47
+ }
48
+
49
+ /**
50
+ * Irys (Arweave) storage provider for ChaosChain SDK
51
+ * Provides permanent storage via Arweave blockchain
52
+ */
53
+
54
+ interface IrysConfig {
55
+ walletKey: string;
56
+ network?: 'mainnet' | 'devnet';
57
+ token?: string;
58
+ providerUrl?: string;
59
+ }
60
+ declare class IrysStorage implements StorageProvider {
61
+ private _config;
62
+ constructor(config: IrysConfig);
63
+ /**
64
+ * Upload data to Arweave via Irys
65
+ * Note: Requires @irys/sdk to be installed
66
+ */
67
+ upload(_data: Buffer | string | object, _options?: UploadOptions): Promise<UploadResult>;
68
+ /**
69
+ * Download data from Arweave
70
+ */
71
+ download(cid: string): Promise<Buffer>;
72
+ /**
73
+ * Pin - no-op for Arweave (content is permanent)
74
+ */
75
+ pin(_cid: string): Promise<void>;
76
+ /**
77
+ * Unpin - no-op for Arweave (content is permanent)
78
+ */
79
+ unpin(_cid: string): Promise<void>;
80
+ }
81
+
82
+ export { type IrysConfig, IrysStorage, type PinataConfig, PinataStorage };
@@ -0,0 +1,82 @@
1
+ export { I as IPFSLocalStorage } from '../../IPFSLocal-BCIADaOU.js';
2
+ import { n as StorageProvider, U as UploadOptions, i as UploadResult } from '../../types-CEFAgoAM.js';
3
+ import 'ethers';
4
+
5
+ /**
6
+ * Pinata IPFS Storage Provider
7
+ * Cloud-based IPFS pinning service
8
+ */
9
+
10
+ interface PinataConfig {
11
+ apiKey?: string;
12
+ apiSecret?: string;
13
+ jwt?: string;
14
+ gatewayUrl?: string;
15
+ }
16
+ declare class PinataStorage implements StorageProvider {
17
+ private apiKey?;
18
+ private apiSecret?;
19
+ private jwt?;
20
+ private gatewayUrl;
21
+ private apiUrl;
22
+ constructor(config: PinataConfig);
23
+ /**
24
+ * Get authorization headers
25
+ */
26
+ private getHeaders;
27
+ /**
28
+ * Upload data to Pinata
29
+ */
30
+ upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult>;
31
+ /**
32
+ * Download data from Pinata gateway
33
+ */
34
+ download(cid: string): Promise<Buffer>;
35
+ /**
36
+ * Pin existing IPFS content
37
+ */
38
+ pin(cid: string): Promise<void>;
39
+ /**
40
+ * Unpin content
41
+ */
42
+ unpin(cid: string): Promise<void>;
43
+ /**
44
+ * Test authentication
45
+ */
46
+ testAuthentication(): Promise<boolean>;
47
+ }
48
+
49
+ /**
50
+ * Irys (Arweave) storage provider for ChaosChain SDK
51
+ * Provides permanent storage via Arweave blockchain
52
+ */
53
+
54
+ interface IrysConfig {
55
+ walletKey: string;
56
+ network?: 'mainnet' | 'devnet';
57
+ token?: string;
58
+ providerUrl?: string;
59
+ }
60
+ declare class IrysStorage implements StorageProvider {
61
+ private _config;
62
+ constructor(config: IrysConfig);
63
+ /**
64
+ * Upload data to Arweave via Irys
65
+ * Note: Requires @irys/sdk to be installed
66
+ */
67
+ upload(_data: Buffer | string | object, _options?: UploadOptions): Promise<UploadResult>;
68
+ /**
69
+ * Download data from Arweave
70
+ */
71
+ download(cid: string): Promise<Buffer>;
72
+ /**
73
+ * Pin - no-op for Arweave (content is permanent)
74
+ */
75
+ pin(_cid: string): Promise<void>;
76
+ /**
77
+ * Unpin - no-op for Arweave (content is permanent)
78
+ */
79
+ unpin(_cid: string): Promise<void>;
80
+ }
81
+
82
+ export { type IrysConfig, IrysStorage, type PinataConfig, PinataStorage };