@varity-labs/sdk 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/LICENSE +31 -0
  2. package/README.md +253 -0
  3. package/dist/analytics/index.d.ts +7 -0
  4. package/dist/analytics/index.d.ts.map +1 -0
  5. package/dist/analytics/index.js +6 -0
  6. package/dist/analytics/tracker.d.ts +128 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +203 -0
  9. package/dist/blockchain/BlockchainService.d.ts +100 -0
  10. package/dist/blockchain/BlockchainService.d.ts.map +1 -0
  11. package/dist/blockchain/BlockchainService.js +188 -0
  12. package/dist/blockchain/NFTLicensingService.d.ts +69 -0
  13. package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
  14. package/dist/blockchain/NFTLicensingService.js +136 -0
  15. package/dist/blockchain/RevenueSplitService.d.ts +71 -0
  16. package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
  17. package/dist/blockchain/RevenueSplitService.js +111 -0
  18. package/dist/blockchain/index.d.ts +48 -0
  19. package/dist/blockchain/index.d.ts.map +1 -0
  20. package/dist/blockchain/index.js +46 -0
  21. package/dist/blockchain/types.d.ts +63 -0
  22. package/dist/blockchain/types.d.ts.map +1 -0
  23. package/dist/blockchain/types.js +6 -0
  24. package/dist/chains/arbitrum.d.ts +89 -0
  25. package/dist/chains/arbitrum.d.ts.map +1 -0
  26. package/dist/chains/arbitrum.js +134 -0
  27. package/dist/chains/base.d.ts +84 -0
  28. package/dist/chains/base.d.ts.map +1 -0
  29. package/dist/chains/base.js +131 -0
  30. package/dist/chains/index.d.ts +36 -0
  31. package/dist/chains/index.d.ts.map +1 -0
  32. package/dist/chains/index.js +32 -0
  33. package/dist/chains/registry.d.ts +113 -0
  34. package/dist/chains/registry.d.ts.map +1 -0
  35. package/dist/chains/registry.js +201 -0
  36. package/dist/chains/varityL3.d.ts +81 -0
  37. package/dist/chains/varityL3.d.ts.map +1 -0
  38. package/dist/chains/varityL3.js +125 -0
  39. package/dist/cli/commands/clone.d.ts +8 -0
  40. package/dist/cli/commands/clone.d.ts.map +1 -0
  41. package/dist/cli/commands/clone.js +391 -0
  42. package/dist/cli/commands/dev.d.ts +8 -0
  43. package/dist/cli/commands/dev.d.ts.map +1 -0
  44. package/dist/cli/commands/dev.js +40 -0
  45. package/dist/cli/commands/generate.d.ts +8 -0
  46. package/dist/cli/commands/generate.d.ts.map +1 -0
  47. package/dist/cli/commands/generate.js +303 -0
  48. package/dist/cli/commands/init.d.ts +8 -0
  49. package/dist/cli/commands/init.d.ts.map +1 -0
  50. package/dist/cli/commands/init.js +317 -0
  51. package/dist/cli/commands/validate.d.ts +8 -0
  52. package/dist/cli/commands/validate.d.ts.map +1 -0
  53. package/dist/cli/commands/validate.js +69 -0
  54. package/dist/cli/index.d.ts +8 -0
  55. package/dist/cli/index.d.ts.map +1 -0
  56. package/dist/cli/index.js +33 -0
  57. package/dist/cli/utils/logger.d.ts +17 -0
  58. package/dist/cli/utils/logger.d.ts.map +1 -0
  59. package/dist/cli/utils/logger.js +35 -0
  60. package/dist/cli/utils/prompts.d.ts +21 -0
  61. package/dist/cli/utils/prompts.d.ts.map +1 -0
  62. package/dist/cli/utils/prompts.js +103 -0
  63. package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
  64. package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
  65. package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
  66. package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
  67. package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
  68. package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
  69. package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
  70. package/dist/contracts/addresses.d.ts +88 -0
  71. package/dist/contracts/addresses.d.ts.map +1 -0
  72. package/dist/contracts/addresses.js +94 -0
  73. package/dist/contracts/index.d.ts +7 -0
  74. package/dist/contracts/index.d.ts.map +1 -0
  75. package/dist/contracts/index.js +6 -0
  76. package/dist/core/VaritySDK.d.ts +177 -0
  77. package/dist/core/VaritySDK.d.ts.map +1 -0
  78. package/dist/core/VaritySDK.js +325 -0
  79. package/dist/core/config.d.ts +120 -0
  80. package/dist/core/config.d.ts.map +1 -0
  81. package/dist/core/config.js +187 -0
  82. package/dist/core/credentials-proxy.d.ts +157 -0
  83. package/dist/core/credentials-proxy.d.ts.map +1 -0
  84. package/dist/core/credentials-proxy.js +345 -0
  85. package/dist/core/credentials.d.ts +219 -0
  86. package/dist/core/credentials.d.ts.map +1 -0
  87. package/dist/core/credentials.js +345 -0
  88. package/dist/core/template-loader.d.ts +15 -0
  89. package/dist/core/template-loader.d.ts.map +1 -0
  90. package/dist/core/template-loader.js +380 -0
  91. package/dist/core/template.d.ts +321 -0
  92. package/dist/core/template.d.ts.map +1 -0
  93. package/dist/core/template.js +189 -0
  94. package/dist/core/types.d.ts +572 -0
  95. package/dist/core/types.d.ts.map +1 -0
  96. package/dist/core/types.js +52 -0
  97. package/dist/dev/dev-server.d.ts +16 -0
  98. package/dist/dev/dev-server.d.ts.map +1 -0
  99. package/dist/dev/dev-server.js +119 -0
  100. package/dist/generators/contracts/generator.d.ts +21 -0
  101. package/dist/generators/contracts/generator.d.ts.map +1 -0
  102. package/dist/generators/contracts/generator.js +252 -0
  103. package/dist/generators/tests/generator.d.ts +20 -0
  104. package/dist/generators/tests/generator.d.ts.map +1 -0
  105. package/dist/generators/tests/generator.js +375 -0
  106. package/dist/generators/types/generator.d.ts +19 -0
  107. package/dist/generators/types/generator.d.ts.map +1 -0
  108. package/dist/generators/types/generator.js +165 -0
  109. package/dist/generators/ui/component-generator.d.ts +20 -0
  110. package/dist/generators/ui/component-generator.d.ts.map +1 -0
  111. package/dist/generators/ui/component-generator.js +749 -0
  112. package/dist/generators/ui/dashboard-generator.d.ts +20 -0
  113. package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
  114. package/dist/generators/ui/dashboard-generator.js +349 -0
  115. package/dist/index.d.ts +61 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +74 -0
  118. package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
  119. package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
  120. package/dist/modules/analytics/AnalyticsModule.js +274 -0
  121. package/dist/modules/analytics/index.d.ts +3 -0
  122. package/dist/modules/analytics/index.d.ts.map +1 -0
  123. package/dist/modules/analytics/index.js +1 -0
  124. package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
  125. package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
  126. package/dist/modules/auth/AccessKeyModule.js +322 -0
  127. package/dist/modules/auth/AuthModule.d.ts +133 -0
  128. package/dist/modules/auth/AuthModule.d.ts.map +1 -0
  129. package/dist/modules/auth/AuthModule.js +214 -0
  130. package/dist/modules/auth/index.d.ts +8 -0
  131. package/dist/modules/auth/index.d.ts.map +1 -0
  132. package/dist/modules/auth/index.js +6 -0
  133. package/dist/modules/cache/CacheModule.d.ts +279 -0
  134. package/dist/modules/cache/CacheModule.d.ts.map +1 -0
  135. package/dist/modules/cache/CacheModule.js +493 -0
  136. package/dist/modules/cache/index.d.ts +3 -0
  137. package/dist/modules/cache/index.d.ts.map +1 -0
  138. package/dist/modules/cache/index.js +1 -0
  139. package/dist/modules/compute/ComputeModule.d.ts +226 -0
  140. package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
  141. package/dist/modules/compute/ComputeModule.js +379 -0
  142. package/dist/modules/compute/index.d.ts +6 -0
  143. package/dist/modules/compute/index.d.ts.map +1 -0
  144. package/dist/modules/compute/index.js +4 -0
  145. package/dist/modules/contracts/ContractsModule.d.ts +164 -0
  146. package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
  147. package/dist/modules/contracts/ContractsModule.js +242 -0
  148. package/dist/modules/contracts/index.d.ts +6 -0
  149. package/dist/modules/contracts/index.d.ts.map +1 -0
  150. package/dist/modules/contracts/index.js +4 -0
  151. package/dist/modules/export/ExportModule.d.ts +346 -0
  152. package/dist/modules/export/ExportModule.d.ts.map +1 -0
  153. package/dist/modules/export/ExportModule.js +432 -0
  154. package/dist/modules/export/index.d.ts +3 -0
  155. package/dist/modules/export/index.d.ts.map +1 -0
  156. package/dist/modules/export/index.js +1 -0
  157. package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
  158. package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
  159. package/dist/modules/forecasting/ForecastingModule.js +310 -0
  160. package/dist/modules/forecasting/index.d.ts +3 -0
  161. package/dist/modules/forecasting/index.d.ts.map +1 -0
  162. package/dist/modules/forecasting/index.js +1 -0
  163. package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
  164. package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
  165. package/dist/modules/monitoring/MonitoringModule.js +483 -0
  166. package/dist/modules/monitoring/index.d.ts +3 -0
  167. package/dist/modules/monitoring/index.d.ts.map +1 -0
  168. package/dist/modules/monitoring/index.js +1 -0
  169. package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
  170. package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
  171. package/dist/modules/notifications/NotificationsModule.js +418 -0
  172. package/dist/modules/notifications/index.d.ts +3 -0
  173. package/dist/modules/notifications/index.d.ts.map +1 -0
  174. package/dist/modules/notifications/index.js +1 -0
  175. package/dist/modules/oracle/OracleModule.d.ts +110 -0
  176. package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
  177. package/dist/modules/oracle/OracleModule.js +151 -0
  178. package/dist/modules/oracle/index.d.ts +6 -0
  179. package/dist/modules/oracle/index.d.ts.map +1 -0
  180. package/dist/modules/oracle/index.js +4 -0
  181. package/dist/modules/storage/S3Module.d.ts +377 -0
  182. package/dist/modules/storage/S3Module.d.ts.map +1 -0
  183. package/dist/modules/storage/S3Module.js +680 -0
  184. package/dist/modules/storage/StorageModule.d.ts +157 -0
  185. package/dist/modules/storage/StorageModule.d.ts.map +1 -0
  186. package/dist/modules/storage/StorageModule.js +302 -0
  187. package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
  188. package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
  189. package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
  190. package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
  191. package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
  192. package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
  193. package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
  194. package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
  195. package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
  196. package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
  197. package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
  198. package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
  199. package/dist/modules/storage/adapters/index.d.ts +12 -0
  200. package/dist/modules/storage/adapters/index.d.ts.map +1 -0
  201. package/dist/modules/storage/adapters/index.js +12 -0
  202. package/dist/modules/storage/index.d.ts +16 -0
  203. package/dist/modules/storage/index.d.ts.map +1 -0
  204. package/dist/modules/storage/index.js +15 -0
  205. package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
  206. package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
  207. package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
  208. package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
  209. package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
  210. package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
  211. package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
  212. package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
  213. package/dist/modules/storage/tiering/MetadataStore.js +535 -0
  214. package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
  215. package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
  216. package/dist/modules/storage/tiering/TieringEngine.js +419 -0
  217. package/dist/modules/storage/tiering/example.d.ts +8 -0
  218. package/dist/modules/storage/tiering/example.d.ts.map +1 -0
  219. package/dist/modules/storage/tiering/example.js +250 -0
  220. package/dist/modules/storage/tiering/index.d.ts +17 -0
  221. package/dist/modules/storage/tiering/index.d.ts.map +1 -0
  222. package/dist/modules/storage/tiering/index.js +13 -0
  223. package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
  224. package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
  225. package/dist/modules/webhooks/WebhooksModule.js +359 -0
  226. package/dist/modules/webhooks/index.d.ts +3 -0
  227. package/dist/modules/webhooks/index.d.ts.map +1 -0
  228. package/dist/modules/webhooks/index.js +1 -0
  229. package/dist/modules/zk/ZKModule.d.ts +153 -0
  230. package/dist/modules/zk/ZKModule.d.ts.map +1 -0
  231. package/dist/modules/zk/ZKModule.js +262 -0
  232. package/dist/modules/zk/index.d.ts +7 -0
  233. package/dist/modules/zk/index.d.ts.map +1 -0
  234. package/dist/modules/zk/index.js +4 -0
  235. package/dist/thirdweb/BridgeClient.d.ts +228 -0
  236. package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
  237. package/dist/thirdweb/BridgeClient.js +160 -0
  238. package/dist/thirdweb/EngineClient.d.ts +396 -0
  239. package/dist/thirdweb/EngineClient.d.ts.map +1 -0
  240. package/dist/thirdweb/EngineClient.js +386 -0
  241. package/dist/thirdweb/GatewayClient.d.ts +190 -0
  242. package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
  243. package/dist/thirdweb/GatewayClient.js +257 -0
  244. package/dist/thirdweb/NebulaClient.d.ts +292 -0
  245. package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
  246. package/dist/thirdweb/NebulaClient.js +180 -0
  247. package/dist/thirdweb/StorageClient.d.ts +445 -0
  248. package/dist/thirdweb/StorageClient.d.ts.map +1 -0
  249. package/dist/thirdweb/StorageClient.js +405 -0
  250. package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
  251. package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
  252. package/dist/thirdweb/ThirdwebWrapper.js +332 -0
  253. package/dist/thirdweb/index.d.ts +21 -0
  254. package/dist/thirdweb/index.d.ts.map +1 -0
  255. package/dist/thirdweb/index.js +28 -0
  256. package/dist/thirdweb/varity-chain.d.ts +48 -0
  257. package/dist/thirdweb/varity-chain.d.ts.map +1 -0
  258. package/dist/thirdweb/varity-chain.js +64 -0
  259. package/dist/thirdweb/x402Client.d.ts +319 -0
  260. package/dist/thirdweb/x402Client.d.ts.map +1 -0
  261. package/dist/thirdweb/x402Client.js +223 -0
  262. package/dist/tracking/gasTracker.d.ts +158 -0
  263. package/dist/tracking/gasTracker.d.ts.map +1 -0
  264. package/dist/tracking/gasTracker.js +227 -0
  265. package/dist/tracking/index.d.ts +10 -0
  266. package/dist/tracking/index.d.ts.map +1 -0
  267. package/dist/tracking/index.js +8 -0
  268. package/dist/tracking/types.d.ts +327 -0
  269. package/dist/tracking/types.d.ts.map +1 -0
  270. package/dist/tracking/types.js +8 -0
  271. package/dist/ui/components/ChartWidget.d.ts +36 -0
  272. package/dist/ui/components/ChartWidget.d.ts.map +1 -0
  273. package/dist/ui/components/ChartWidget.js +82 -0
  274. package/dist/ui/components/DashboardLayout.d.ts +41 -0
  275. package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
  276. package/dist/ui/components/DashboardLayout.js +102 -0
  277. package/dist/ui/components/DataTable.d.ts +49 -0
  278. package/dist/ui/components/DataTable.d.ts.map +1 -0
  279. package/dist/ui/components/DataTable.js +96 -0
  280. package/dist/ui/components/EntityForm.d.ts +60 -0
  281. package/dist/ui/components/EntityForm.d.ts.map +1 -0
  282. package/dist/ui/components/EntityForm.js +182 -0
  283. package/dist/ui/components/KPICard.d.ts +29 -0
  284. package/dist/ui/components/KPICard.d.ts.map +1 -0
  285. package/dist/ui/components/KPICard.js +61 -0
  286. package/dist/ui/components/Modal.d.ts +34 -0
  287. package/dist/ui/components/Modal.d.ts.map +1 -0
  288. package/dist/ui/components/Modal.js +30 -0
  289. package/dist/ui/components/index.d.ts +18 -0
  290. package/dist/ui/components/index.d.ts.map +1 -0
  291. package/dist/ui/components/index.js +11 -0
  292. package/dist/validation/template-validator.d.ts +25 -0
  293. package/dist/validation/template-validator.d.ts.map +1 -0
  294. package/dist/validation/template-validator.js +305 -0
  295. package/package.json +102 -0
@@ -0,0 +1,180 @@
1
+ /**
2
+ * thirdweb Nebula AI Client
3
+ *
4
+ * Natural language blockchain interactions powered by AI
5
+ * Enables developers to interact with smart contracts using plain English
6
+ *
7
+ * Features:
8
+ * - Generate smart contracts from natural language descriptions
9
+ * - Query blockchain data using natural language
10
+ * - Explain transaction data in human-readable format
11
+ * - Generate contract interaction code
12
+ * - Analyze contracts for security issues
13
+ */
14
+ /**
15
+ * thirdweb Nebula AI Client
16
+ *
17
+ * Interact with blockchain using natural language powered by AI
18
+ */
19
+ export class NebulaClient {
20
+ constructor(config) {
21
+ this.baseUrl = 'https://nebula.thirdweb.com/api';
22
+ this.client = config.client;
23
+ this.apiKey = config.apiKey;
24
+ }
25
+ /**
26
+ * Generate a smart contract from natural language description
27
+ */
28
+ async generateContract(options) {
29
+ const response = await this.request('/generate/contract', {
30
+ method: 'POST',
31
+ body: JSON.stringify({
32
+ prompt: options.prompt,
33
+ contractType: options.contractType,
34
+ solidityVersion: options.solidityVersion || '0.8.20',
35
+ includeSecurity: options.includeSecurity !== false,
36
+ }),
37
+ });
38
+ return response.result;
39
+ }
40
+ /**
41
+ * Query blockchain data using natural language
42
+ */
43
+ async queryChain(options) {
44
+ const response = await this.request('/query/chain', {
45
+ method: 'POST',
46
+ body: JSON.stringify({
47
+ prompt: options.prompt,
48
+ chainId: options.chain.id,
49
+ contractAddress: options.contractAddress,
50
+ }),
51
+ });
52
+ return response.result;
53
+ }
54
+ /**
55
+ * Explain a transaction in human-readable format
56
+ */
57
+ async explainTransaction(options) {
58
+ const response = await this.request('/explain/transaction', {
59
+ method: 'POST',
60
+ body: JSON.stringify({
61
+ txHash: options.txHash,
62
+ chainId: options.chain.id,
63
+ detail: options.detail || 'simple',
64
+ }),
65
+ });
66
+ return response.result;
67
+ }
68
+ /**
69
+ * Generate code to interact with a contract
70
+ */
71
+ async generateCode(options) {
72
+ const response = await this.request('/generate/code', {
73
+ method: 'POST',
74
+ body: JSON.stringify({
75
+ prompt: options.prompt,
76
+ contractAddress: options.contractAddress,
77
+ chainId: options.chain.id,
78
+ language: options.language || 'typescript',
79
+ }),
80
+ });
81
+ return response.result;
82
+ }
83
+ /**
84
+ * Analyze a contract for security issues and optimizations
85
+ */
86
+ async analyzeContract(options) {
87
+ const response = await this.request('/analyze/contract', {
88
+ method: 'POST',
89
+ body: JSON.stringify({
90
+ contract: options.contract,
91
+ chainId: options.chain?.id,
92
+ focus: options.focus || 'general',
93
+ }),
94
+ });
95
+ return response.result;
96
+ }
97
+ /**
98
+ * Make HTTP request to Nebula API
99
+ */
100
+ async request(endpoint, options) {
101
+ const url = `${this.baseUrl}${endpoint}`;
102
+ // Note: This is a placeholder implementation
103
+ // Actual Nebula API endpoints and authentication may differ
104
+ // This provides the interface for when Nebula AI becomes available
105
+ console.warn('Nebula AI is not yet fully released by thirdweb. This is a placeholder implementation.');
106
+ // For now, return mock data to demonstrate the interface
107
+ return this.getMockResponse(endpoint, options);
108
+ }
109
+ /**
110
+ * Mock response for development
111
+ * TODO: Remove when Nebula AI is fully released
112
+ */
113
+ async getMockResponse(endpoint, options) {
114
+ // Mock implementation for development
115
+ if (endpoint.includes('/generate/contract')) {
116
+ return {
117
+ result: {
118
+ sourceCode: '// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\ncontract GeneratedContract {\n // Generated by Nebula AI\n}',
119
+ abi: [],
120
+ bytecode: '0x',
121
+ explanation: 'This is a mock contract generated for development purposes.',
122
+ securityIssues: [],
123
+ },
124
+ };
125
+ }
126
+ if (endpoint.includes('/query/chain')) {
127
+ return {
128
+ result: {
129
+ answer: 'Mock answer for development',
130
+ data: {},
131
+ confidence: 0.95,
132
+ },
133
+ };
134
+ }
135
+ if (endpoint.includes('/explain/transaction')) {
136
+ return {
137
+ result: {
138
+ summary: 'Mock transaction explanation',
139
+ details: {
140
+ from: '0x0000000000000000000000000000000000000000',
141
+ to: '0x0000000000000000000000000000000000000000',
142
+ value: '0',
143
+ function: 'transfer',
144
+ parameters: {},
145
+ },
146
+ gasCost: {
147
+ total: '0.001 ETH',
148
+ explanation: 'Mock gas explanation',
149
+ },
150
+ },
151
+ };
152
+ }
153
+ if (endpoint.includes('/generate/code')) {
154
+ return {
155
+ result: {
156
+ code: '// Mock generated code',
157
+ explanation: 'Mock code explanation',
158
+ dependencies: ['thirdweb'],
159
+ },
160
+ };
161
+ }
162
+ if (endpoint.includes('/analyze/contract')) {
163
+ return {
164
+ result: {
165
+ summary: 'Mock contract analysis',
166
+ security: [],
167
+ gasOptimizations: [],
168
+ bestPractices: [],
169
+ },
170
+ };
171
+ }
172
+ throw new Error(`Unknown endpoint: ${endpoint}`);
173
+ }
174
+ }
175
+ /**
176
+ * Create Nebula AI client instance
177
+ */
178
+ export function createNebulaClient(config) {
179
+ return new NebulaClient(config);
180
+ }
@@ -0,0 +1,445 @@
1
+ /**
2
+ * thirdweb Storage Client
3
+ *
4
+ * Decentralized storage powered by IPFS and Arweave
5
+ * Seamless integration with thirdweb's storage infrastructure
6
+ *
7
+ * Features:
8
+ * - IPFS storage with automatic pinning
9
+ * - Arweave permanent storage
10
+ * - Metadata management for NFTs
11
+ * - Batch uploads
12
+ * - Gateway URLs for fast access
13
+ * - Image optimization and resizing
14
+ */
15
+ import type { ThirdwebClient } from 'thirdweb';
16
+ /**
17
+ * Storage configuration
18
+ */
19
+ export interface StorageConfig {
20
+ /**
21
+ * thirdweb client instance
22
+ */
23
+ client: ThirdwebClient;
24
+ /**
25
+ * Preferred storage provider
26
+ */
27
+ provider?: 'ipfs' | 'arweave';
28
+ /**
29
+ * Upload options
30
+ */
31
+ uploadOptions?: {
32
+ /**
33
+ * Automatically pin to IPFS
34
+ */
35
+ pin?: boolean;
36
+ /**
37
+ * Upload timeout in milliseconds
38
+ */
39
+ timeout?: number;
40
+ };
41
+ /**
42
+ * Analytics configuration (optional)
43
+ */
44
+ analytics?: {
45
+ /**
46
+ * App ID for usage tracking
47
+ */
48
+ appId: string;
49
+ /**
50
+ * Developer ID for usage tracking
51
+ */
52
+ developerId: string;
53
+ };
54
+ }
55
+ /**
56
+ * Upload result from thirdweb storage
57
+ */
58
+ export interface ThirdwebUploadResult {
59
+ /**
60
+ * IPFS CID or Arweave transaction ID
61
+ */
62
+ uri: string;
63
+ /**
64
+ * Gateway URL for accessing the file
65
+ */
66
+ gatewayUrl: string;
67
+ /**
68
+ * Storage provider used
69
+ */
70
+ provider: 'ipfs' | 'arweave';
71
+ /**
72
+ * File size in bytes
73
+ */
74
+ size: number;
75
+ /**
76
+ * Upload timestamp
77
+ */
78
+ timestamp: Date;
79
+ }
80
+ /**
81
+ * NFT metadata structure
82
+ */
83
+ export interface NFTMetadata {
84
+ /**
85
+ * NFT name
86
+ */
87
+ name: string;
88
+ /**
89
+ * NFT description
90
+ */
91
+ description: string;
92
+ /**
93
+ * Image URI (IPFS or Arweave)
94
+ */
95
+ image: string;
96
+ /**
97
+ * External URL
98
+ */
99
+ external_url?: string;
100
+ /**
101
+ * Attributes/traits
102
+ */
103
+ attributes?: {
104
+ trait_type: string;
105
+ value: string | number;
106
+ }[];
107
+ /**
108
+ * Background color (hex code without #)
109
+ */
110
+ background_color?: string;
111
+ /**
112
+ * Animation URL (for video/audio NFTs)
113
+ */
114
+ animation_url?: string;
115
+ /**
116
+ * Additional properties
117
+ */
118
+ properties?: Record<string, any>;
119
+ }
120
+ /**
121
+ * Batch upload item
122
+ */
123
+ export interface BatchUploadItem {
124
+ /**
125
+ * File data or metadata
126
+ */
127
+ data: File | Blob | object;
128
+ /**
129
+ * Optional filename
130
+ */
131
+ filename?: string;
132
+ }
133
+ /**
134
+ * Batch upload result
135
+ */
136
+ export interface BatchUploadResult {
137
+ /**
138
+ * Individual upload results
139
+ */
140
+ results: ThirdwebUploadResult[];
141
+ /**
142
+ * Base URI for the batch (if applicable)
143
+ */
144
+ baseUri?: string;
145
+ /**
146
+ * Total size uploaded
147
+ */
148
+ totalSize: number;
149
+ /**
150
+ * Upload duration in milliseconds
151
+ */
152
+ duration: number;
153
+ }
154
+ /**
155
+ * Download options for thirdweb storage
156
+ */
157
+ export interface ThirdwebDownloadOptions {
158
+ /**
159
+ * Gateway URL to use (optional)
160
+ */
161
+ gateway?: string;
162
+ /**
163
+ * Request timeout in milliseconds
164
+ */
165
+ timeout?: number;
166
+ }
167
+ /**
168
+ * Image optimization options
169
+ */
170
+ export interface ImageOptimizationOptions {
171
+ /**
172
+ * Target width (maintains aspect ratio)
173
+ */
174
+ width?: number;
175
+ /**
176
+ * Target height (maintains aspect ratio)
177
+ */
178
+ height?: number;
179
+ /**
180
+ * Image quality (1-100)
181
+ */
182
+ quality?: number;
183
+ /**
184
+ * Output format
185
+ */
186
+ format?: 'webp' | 'jpeg' | 'png' | 'avif';
187
+ }
188
+ /**
189
+ * thirdweb Storage Client
190
+ *
191
+ * Decentralized storage for NFTs, metadata, and files
192
+ */
193
+ export declare class StorageClient {
194
+ private client;
195
+ private provider;
196
+ private uploadOptions;
197
+ private analytics?;
198
+ constructor(config: StorageConfig);
199
+ /**
200
+ * Upload a file to decentralized storage
201
+ *
202
+ * Uploads files to IPFS with automatic pinning via thirdweb infrastructure.
203
+ *
204
+ * @param file - File or Blob to upload
205
+ * @returns Upload result with IPFS URI and gateway URL
206
+ *
207
+ * @example Upload an image file
208
+ * ```typescript
209
+ * import { StorageClient } from '@varity-labs/sdk';
210
+ * import { createThirdwebClient } from 'thirdweb';
211
+ *
212
+ * const client = createThirdwebClient({
213
+ * clientId: process.env.THIRDWEB_CLIENT_ID
214
+ * });
215
+ *
216
+ * const storage = new StorageClient({ client });
217
+ *
218
+ * // Upload image from file input
219
+ * const file = document.querySelector('input[type="file"]').files[0];
220
+ * const result = await storage.uploadFile(file);
221
+ *
222
+ * console.log('IPFS URI:', result.uri);
223
+ * console.log('Gateway URL:', result.gatewayUrl);
224
+ * // IPFS URI: ipfs://QmXxx...
225
+ * // Gateway URL: https://gateway.thirdweb.com/ipfs/QmXxx...
226
+ * ```
227
+ *
228
+ * @example Upload a Blob
229
+ * ```typescript
230
+ * // Create a text blob
231
+ * const blob = new Blob(['Hello, IPFS!'], { type: 'text/plain' });
232
+ * const result = await storage.uploadFile(blob);
233
+ * ```
234
+ *
235
+ * @example Upload and use in NFT
236
+ * ```typescript
237
+ * // Upload NFT image
238
+ * const imageResult = await storage.uploadFile(imageFile);
239
+ *
240
+ * // Create and upload metadata
241
+ * const metadata = {
242
+ * name: 'My NFT',
243
+ * description: 'An awesome NFT',
244
+ * image: imageResult.uri // Use IPFS URI
245
+ * };
246
+ *
247
+ * const metadataResult = await storage.uploadJSON(metadata);
248
+ * console.log('Token URI:', metadataResult.uri);
249
+ * ```
250
+ */
251
+ uploadFile(file: File | Blob): Promise<ThirdwebUploadResult>;
252
+ /**
253
+ * Upload JSON data
254
+ */
255
+ uploadJSON(data: object): Promise<ThirdwebUploadResult>;
256
+ /**
257
+ * Upload NFT metadata
258
+ *
259
+ * Uploads NFT metadata JSON to IPFS following ERC-721/ERC-1155 standards.
260
+ *
261
+ * @param metadata - NFT metadata object
262
+ * @returns Upload result with metadata URI
263
+ *
264
+ * @example Basic NFT metadata
265
+ * ```typescript
266
+ * import { StorageClient } from '@varity-labs/sdk';
267
+ *
268
+ * const storage = new StorageClient({ client });
269
+ *
270
+ * const result = await storage.uploadMetadata({
271
+ * name: 'Cool NFT #1',
272
+ * description: 'A really cool NFT from my collection',
273
+ * image: 'ipfs://QmImageHash...'
274
+ * });
275
+ *
276
+ * console.log('Metadata URI:', result.uri);
277
+ * // Use this URI as tokenURI in your NFT contract
278
+ * ```
279
+ *
280
+ * @example NFT with attributes
281
+ * ```typescript
282
+ * const result = await storage.uploadMetadata({
283
+ * name: 'Character NFT #42',
284
+ * description: 'A unique game character',
285
+ * image: 'ipfs://QmImageHash...',
286
+ * attributes: [
287
+ * { trait_type: 'Level', value: 10 },
288
+ * { trait_type: 'Strength', value: 85 },
289
+ * { trait_type: 'Rarity', value: 'Epic' }
290
+ * ]
291
+ * });
292
+ * ```
293
+ *
294
+ * @example NFT with animation
295
+ * ```typescript
296
+ * // Upload video/animation
297
+ * const animationResult = await storage.uploadFile(videoFile);
298
+ *
299
+ * // Upload metadata with animation
300
+ * const result = await storage.uploadMetadata({
301
+ * name: 'Animated NFT',
302
+ * description: 'An NFT with animation',
303
+ * image: 'ipfs://QmPreviewImage...', // Preview image
304
+ * animation_url: animationResult.uri, // Video/animation
305
+ * external_url: 'https://myapp.com/nft/1',
306
+ * background_color: '000000'
307
+ * });
308
+ * ```
309
+ */
310
+ uploadMetadata(metadata: NFTMetadata): Promise<ThirdwebUploadResult>;
311
+ /**
312
+ * Upload multiple files in batch
313
+ */
314
+ uploadBatch(items: BatchUploadItem[]): Promise<BatchUploadResult>;
315
+ /**
316
+ * Download a file from decentralized storage
317
+ */
318
+ downloadFile(uri: string, options?: ThirdwebDownloadOptions): Promise<Response>;
319
+ /**
320
+ * Download JSON data
321
+ *
322
+ * Downloads and parses JSON from IPFS/Arweave.
323
+ *
324
+ * @param uri - IPFS or Arweave URI
325
+ * @param options - Optional download configuration
326
+ * @returns Parsed JSON data
327
+ *
328
+ * @example Download NFT metadata
329
+ * ```typescript
330
+ * import { StorageClient } from '@varity-labs/sdk';
331
+ *
332
+ * const storage = new StorageClient({ client });
333
+ *
334
+ * // Get tokenURI from contract
335
+ * const tokenURI = await nftContract.tokenURI(tokenId);
336
+ *
337
+ * // Download and parse metadata
338
+ * const metadata = await storage.downloadJSON(tokenURI);
339
+ * console.log('NFT Name:', metadata.name);
340
+ * console.log('NFT Image:', metadata.image);
341
+ * ```
342
+ *
343
+ * @example With TypeScript type
344
+ * ```typescript
345
+ * interface MyMetadata {
346
+ * name: string;
347
+ * description: string;
348
+ * image: string;
349
+ * attributes: Array<{ trait_type: string; value: string | number }>;
350
+ * }
351
+ *
352
+ * const metadata = await storage.downloadJSON<MyMetadata>(uri);
353
+ * // TypeScript now knows metadata.attributes exists
354
+ * console.log('Traits:', metadata.attributes);
355
+ * ```
356
+ */
357
+ downloadJSON<T = any>(uri: string, options?: ThirdwebDownloadOptions): Promise<T>;
358
+ /**
359
+ * Get gateway URL for a URI
360
+ */
361
+ getGatewayUrl(uri: string, options?: ImageOptimizationOptions): string;
362
+ /**
363
+ * Pin a file to IPFS (ensure permanent availability)
364
+ */
365
+ pinFile(uri: string): Promise<void>;
366
+ /**
367
+ * Unpin a file from IPFS
368
+ */
369
+ unpinFile(uri: string): Promise<void>;
370
+ /**
371
+ * Get file metadata
372
+ */
373
+ getMetadata(uri: string): Promise<{
374
+ cid: string;
375
+ size?: number;
376
+ pinned: boolean;
377
+ }>;
378
+ /**
379
+ * Upload a directory of files
380
+ */
381
+ uploadDirectory(files: File[]): Promise<BatchUploadResult>;
382
+ /**
383
+ * Create and upload NFT collection metadata
384
+ */
385
+ uploadCollection(metadata: NFTMetadata[]): Promise<{
386
+ metadataUris: string[];
387
+ baseUri: string;
388
+ }>;
389
+ /**
390
+ * Resolve IPFS URI to HTTP gateway URL
391
+ */
392
+ static resolveUri(uri: string): string;
393
+ /**
394
+ * Check if a URI is IPFS
395
+ */
396
+ static isIPFS(uri: string): boolean;
397
+ /**
398
+ * Check if a URI is Arweave
399
+ */
400
+ static isArweave(uri: string): boolean;
401
+ }
402
+ /**
403
+ * Create Storage client instance
404
+ *
405
+ * Factory function for creating StorageClient instances.
406
+ *
407
+ * @param config - Storage configuration
408
+ * @returns Configured Storage client
409
+ *
410
+ * @example Basic setup
411
+ * ```typescript
412
+ * import { createStorageClient } from '@varity-labs/sdk';
413
+ * import { createThirdwebClient } from 'thirdweb';
414
+ *
415
+ * const client = createThirdwebClient({
416
+ * clientId: process.env.THIRDWEB_CLIENT_ID
417
+ * });
418
+ *
419
+ * const storage = createStorageClient({ client });
420
+ *
421
+ * // Now use storage client
422
+ * const result = await storage.uploadFile(file);
423
+ * ```
424
+ *
425
+ * @example With Arweave provider
426
+ * ```typescript
427
+ * const storage = createStorageClient({
428
+ * client,
429
+ * provider: 'arweave' // Permanent storage
430
+ * });
431
+ * ```
432
+ *
433
+ * @example With custom upload options
434
+ * ```typescript
435
+ * const storage = createStorageClient({
436
+ * client,
437
+ * uploadOptions: {
438
+ * pin: true, // Auto-pin to IPFS
439
+ * timeout: 60000 // 60 second timeout
440
+ * }
441
+ * });
442
+ * ```
443
+ */
444
+ export declare function createStorageClient(config: StorageConfig): StorageClient;
445
+ //# sourceMappingURL=StorageClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageClient.d.ts","sourceRoot":"","sources":["../../src/thirdweb/StorageClient.ts"],"names":[],"mappings":"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"}