@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.
- package/LICENSE +31 -0
- package/README.md +253 -0
- package/dist/analytics/index.d.ts +7 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +6 -0
- package/dist/analytics/tracker.d.ts +128 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +203 -0
- package/dist/blockchain/BlockchainService.d.ts +100 -0
- package/dist/blockchain/BlockchainService.d.ts.map +1 -0
- package/dist/blockchain/BlockchainService.js +188 -0
- package/dist/blockchain/NFTLicensingService.d.ts +69 -0
- package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
- package/dist/blockchain/NFTLicensingService.js +136 -0
- package/dist/blockchain/RevenueSplitService.d.ts +71 -0
- package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
- package/dist/blockchain/RevenueSplitService.js +111 -0
- package/dist/blockchain/index.d.ts +48 -0
- package/dist/blockchain/index.d.ts.map +1 -0
- package/dist/blockchain/index.js +46 -0
- package/dist/blockchain/types.d.ts +63 -0
- package/dist/blockchain/types.d.ts.map +1 -0
- package/dist/blockchain/types.js +6 -0
- package/dist/chains/arbitrum.d.ts +89 -0
- package/dist/chains/arbitrum.d.ts.map +1 -0
- package/dist/chains/arbitrum.js +134 -0
- package/dist/chains/base.d.ts +84 -0
- package/dist/chains/base.d.ts.map +1 -0
- package/dist/chains/base.js +131 -0
- package/dist/chains/index.d.ts +36 -0
- package/dist/chains/index.d.ts.map +1 -0
- package/dist/chains/index.js +32 -0
- package/dist/chains/registry.d.ts +113 -0
- package/dist/chains/registry.d.ts.map +1 -0
- package/dist/chains/registry.js +201 -0
- package/dist/chains/varityL3.d.ts +81 -0
- package/dist/chains/varityL3.d.ts.map +1 -0
- package/dist/chains/varityL3.js +125 -0
- package/dist/cli/commands/clone.d.ts +8 -0
- package/dist/cli/commands/clone.d.ts.map +1 -0
- package/dist/cli/commands/clone.js +391 -0
- package/dist/cli/commands/dev.d.ts +8 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +40 -0
- package/dist/cli/commands/generate.d.ts +8 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +303 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +317 -0
- package/dist/cli/commands/validate.d.ts +8 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +69 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/utils/logger.d.ts +17 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +35 -0
- package/dist/cli/utils/prompts.d.ts +21 -0
- package/dist/cli/utils/prompts.d.ts.map +1 -0
- package/dist/cli/utils/prompts.js +103 -0
- package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
- package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
- package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
- package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
- package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
- package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
- package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
- package/dist/contracts/addresses.d.ts +88 -0
- package/dist/contracts/addresses.d.ts.map +1 -0
- package/dist/contracts/addresses.js +94 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +6 -0
- package/dist/core/VaritySDK.d.ts +177 -0
- package/dist/core/VaritySDK.d.ts.map +1 -0
- package/dist/core/VaritySDK.js +325 -0
- package/dist/core/config.d.ts +120 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +187 -0
- package/dist/core/credentials-proxy.d.ts +157 -0
- package/dist/core/credentials-proxy.d.ts.map +1 -0
- package/dist/core/credentials-proxy.js +345 -0
- package/dist/core/credentials.d.ts +219 -0
- package/dist/core/credentials.d.ts.map +1 -0
- package/dist/core/credentials.js +345 -0
- package/dist/core/template-loader.d.ts +15 -0
- package/dist/core/template-loader.d.ts.map +1 -0
- package/dist/core/template-loader.js +380 -0
- package/dist/core/template.d.ts +321 -0
- package/dist/core/template.d.ts.map +1 -0
- package/dist/core/template.js +189 -0
- package/dist/core/types.d.ts +572 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +52 -0
- package/dist/dev/dev-server.d.ts +16 -0
- package/dist/dev/dev-server.d.ts.map +1 -0
- package/dist/dev/dev-server.js +119 -0
- package/dist/generators/contracts/generator.d.ts +21 -0
- package/dist/generators/contracts/generator.d.ts.map +1 -0
- package/dist/generators/contracts/generator.js +252 -0
- package/dist/generators/tests/generator.d.ts +20 -0
- package/dist/generators/tests/generator.d.ts.map +1 -0
- package/dist/generators/tests/generator.js +375 -0
- package/dist/generators/types/generator.d.ts +19 -0
- package/dist/generators/types/generator.d.ts.map +1 -0
- package/dist/generators/types/generator.js +165 -0
- package/dist/generators/ui/component-generator.d.ts +20 -0
- package/dist/generators/ui/component-generator.d.ts.map +1 -0
- package/dist/generators/ui/component-generator.js +749 -0
- package/dist/generators/ui/dashboard-generator.d.ts +20 -0
- package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
- package/dist/generators/ui/dashboard-generator.js +349 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
- package/dist/modules/analytics/AnalyticsModule.js +274 -0
- package/dist/modules/analytics/index.d.ts +3 -0
- package/dist/modules/analytics/index.d.ts.map +1 -0
- package/dist/modules/analytics/index.js +1 -0
- package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
- package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
- package/dist/modules/auth/AccessKeyModule.js +322 -0
- package/dist/modules/auth/AuthModule.d.ts +133 -0
- package/dist/modules/auth/AuthModule.d.ts.map +1 -0
- package/dist/modules/auth/AuthModule.js +214 -0
- package/dist/modules/auth/index.d.ts +8 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +6 -0
- package/dist/modules/cache/CacheModule.d.ts +279 -0
- package/dist/modules/cache/CacheModule.d.ts.map +1 -0
- package/dist/modules/cache/CacheModule.js +493 -0
- package/dist/modules/cache/index.d.ts +3 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +1 -0
- package/dist/modules/compute/ComputeModule.d.ts +226 -0
- package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
- package/dist/modules/compute/ComputeModule.js +379 -0
- package/dist/modules/compute/index.d.ts +6 -0
- package/dist/modules/compute/index.d.ts.map +1 -0
- package/dist/modules/compute/index.js +4 -0
- package/dist/modules/contracts/ContractsModule.d.ts +164 -0
- package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
- package/dist/modules/contracts/ContractsModule.js +242 -0
- package/dist/modules/contracts/index.d.ts +6 -0
- package/dist/modules/contracts/index.d.ts.map +1 -0
- package/dist/modules/contracts/index.js +4 -0
- package/dist/modules/export/ExportModule.d.ts +346 -0
- package/dist/modules/export/ExportModule.d.ts.map +1 -0
- package/dist/modules/export/ExportModule.js +432 -0
- package/dist/modules/export/index.d.ts +3 -0
- package/dist/modules/export/index.d.ts.map +1 -0
- package/dist/modules/export/index.js +1 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
- package/dist/modules/forecasting/ForecastingModule.js +310 -0
- package/dist/modules/forecasting/index.d.ts +3 -0
- package/dist/modules/forecasting/index.d.ts.map +1 -0
- package/dist/modules/forecasting/index.js +1 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
- package/dist/modules/monitoring/MonitoringModule.js +483 -0
- package/dist/modules/monitoring/index.d.ts +3 -0
- package/dist/modules/monitoring/index.d.ts.map +1 -0
- package/dist/modules/monitoring/index.js +1 -0
- package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
- package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationsModule.js +418 -0
- package/dist/modules/notifications/index.d.ts +3 -0
- package/dist/modules/notifications/index.d.ts.map +1 -0
- package/dist/modules/notifications/index.js +1 -0
- package/dist/modules/oracle/OracleModule.d.ts +110 -0
- package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
- package/dist/modules/oracle/OracleModule.js +151 -0
- package/dist/modules/oracle/index.d.ts +6 -0
- package/dist/modules/oracle/index.d.ts.map +1 -0
- package/dist/modules/oracle/index.js +4 -0
- package/dist/modules/storage/S3Module.d.ts +377 -0
- package/dist/modules/storage/S3Module.d.ts.map +1 -0
- package/dist/modules/storage/S3Module.js +680 -0
- package/dist/modules/storage/StorageModule.d.ts +157 -0
- package/dist/modules/storage/StorageModule.d.ts.map +1 -0
- package/dist/modules/storage/StorageModule.js +302 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
- package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
- package/dist/modules/storage/adapters/index.d.ts +12 -0
- package/dist/modules/storage/adapters/index.d.ts.map +1 -0
- package/dist/modules/storage/adapters/index.js +12 -0
- package/dist/modules/storage/index.d.ts +16 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +15 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
- package/dist/modules/storage/tiering/MetadataStore.js +535 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
- package/dist/modules/storage/tiering/TieringEngine.js +419 -0
- package/dist/modules/storage/tiering/example.d.ts +8 -0
- package/dist/modules/storage/tiering/example.d.ts.map +1 -0
- package/dist/modules/storage/tiering/example.js +250 -0
- package/dist/modules/storage/tiering/index.d.ts +17 -0
- package/dist/modules/storage/tiering/index.d.ts.map +1 -0
- package/dist/modules/storage/tiering/index.js +13 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
- package/dist/modules/webhooks/WebhooksModule.js +359 -0
- package/dist/modules/webhooks/index.d.ts +3 -0
- package/dist/modules/webhooks/index.d.ts.map +1 -0
- package/dist/modules/webhooks/index.js +1 -0
- package/dist/modules/zk/ZKModule.d.ts +153 -0
- package/dist/modules/zk/ZKModule.d.ts.map +1 -0
- package/dist/modules/zk/ZKModule.js +262 -0
- package/dist/modules/zk/index.d.ts +7 -0
- package/dist/modules/zk/index.d.ts.map +1 -0
- package/dist/modules/zk/index.js +4 -0
- package/dist/thirdweb/BridgeClient.d.ts +228 -0
- package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
- package/dist/thirdweb/BridgeClient.js +160 -0
- package/dist/thirdweb/EngineClient.d.ts +396 -0
- package/dist/thirdweb/EngineClient.d.ts.map +1 -0
- package/dist/thirdweb/EngineClient.js +386 -0
- package/dist/thirdweb/GatewayClient.d.ts +190 -0
- package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
- package/dist/thirdweb/GatewayClient.js +257 -0
- package/dist/thirdweb/NebulaClient.d.ts +292 -0
- package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
- package/dist/thirdweb/NebulaClient.js +180 -0
- package/dist/thirdweb/StorageClient.d.ts +445 -0
- package/dist/thirdweb/StorageClient.d.ts.map +1 -0
- package/dist/thirdweb/StorageClient.js +405 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
- package/dist/thirdweb/ThirdwebWrapper.js +332 -0
- package/dist/thirdweb/index.d.ts +21 -0
- package/dist/thirdweb/index.d.ts.map +1 -0
- package/dist/thirdweb/index.js +28 -0
- package/dist/thirdweb/varity-chain.d.ts +48 -0
- package/dist/thirdweb/varity-chain.d.ts.map +1 -0
- package/dist/thirdweb/varity-chain.js +64 -0
- package/dist/thirdweb/x402Client.d.ts +319 -0
- package/dist/thirdweb/x402Client.d.ts.map +1 -0
- package/dist/thirdweb/x402Client.js +223 -0
- package/dist/tracking/gasTracker.d.ts +158 -0
- package/dist/tracking/gasTracker.d.ts.map +1 -0
- package/dist/tracking/gasTracker.js +227 -0
- package/dist/tracking/index.d.ts +10 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +8 -0
- package/dist/tracking/types.d.ts +327 -0
- package/dist/tracking/types.d.ts.map +1 -0
- package/dist/tracking/types.js +8 -0
- package/dist/ui/components/ChartWidget.d.ts +36 -0
- package/dist/ui/components/ChartWidget.d.ts.map +1 -0
- package/dist/ui/components/ChartWidget.js +82 -0
- package/dist/ui/components/DashboardLayout.d.ts +41 -0
- package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
- package/dist/ui/components/DashboardLayout.js +102 -0
- package/dist/ui/components/DataTable.d.ts +49 -0
- package/dist/ui/components/DataTable.d.ts.map +1 -0
- package/dist/ui/components/DataTable.js +96 -0
- package/dist/ui/components/EntityForm.d.ts +60 -0
- package/dist/ui/components/EntityForm.d.ts.map +1 -0
- package/dist/ui/components/EntityForm.js +182 -0
- package/dist/ui/components/KPICard.d.ts +29 -0
- package/dist/ui/components/KPICard.d.ts.map +1 -0
- package/dist/ui/components/KPICard.js +61 -0
- package/dist/ui/components/Modal.d.ts +34 -0
- package/dist/ui/components/Modal.d.ts.map +1 -0
- package/dist/ui/components/Modal.js +30 -0
- package/dist/ui/components/index.d.ts +18 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +11 -0
- package/dist/validation/template-validator.d.ts +25 -0
- package/dist/validation/template-validator.d.ts.map +1 -0
- package/dist/validation/template-validator.js +305 -0
- 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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"}
|