@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,227 @@
1
+ /**
2
+ * Gas Usage Tracker
3
+ *
4
+ * Tracks gas usage for per-app billing in Varity SDK.
5
+ * Each app's gas consumption is monitored and sent to backend for billing.
6
+ *
7
+ * @module tracking/gasTracker
8
+ */
9
+ // Default configuration
10
+ const DEFAULT_CONFIG = {
11
+ apiUrl: 'https://api.varity.so',
12
+ enabled: true,
13
+ retries: 3,
14
+ timeout: 5000,
15
+ };
16
+ /**
17
+ * Wait for transaction receipt with retry logic
18
+ *
19
+ * @param client - thirdweb client
20
+ * @param chain - Chain to query
21
+ * @param transactionHash - Transaction hash to wait for
22
+ * @param maxWaitTime - Maximum time to wait in ms (default: 60s)
23
+ * @returns Transaction receipt
24
+ */
25
+ export async function waitForTransactionReceipt(client, chain, transactionHash, maxWaitTime = 60000) {
26
+ const startTime = Date.now();
27
+ // Import thirdweb RPC functions
28
+ const { getRpcClient, eth_getTransactionReceipt } = await import('thirdweb/rpc');
29
+ const rpcClient = getRpcClient({ client, chain });
30
+ while (Date.now() - startTime < maxWaitTime) {
31
+ try {
32
+ const receipt = await eth_getTransactionReceipt(rpcClient, {
33
+ hash: transactionHash,
34
+ });
35
+ if (receipt) {
36
+ return {
37
+ transactionHash: receipt.transactionHash,
38
+ gasUsed: receipt.gasUsed,
39
+ effectiveGasPrice: receipt.effectiveGasPrice,
40
+ blockNumber: receipt.blockNumber,
41
+ status: receipt.status === 'success' ? 1 : 0,
42
+ };
43
+ }
44
+ }
45
+ catch (error) {
46
+ // Receipt not ready yet, continue waiting
47
+ }
48
+ // Wait 2 seconds before retrying
49
+ await new Promise(resolve => setTimeout(resolve, 2000));
50
+ }
51
+ throw new Error(`Transaction receipt not available after ${maxWaitTime}ms`);
52
+ }
53
+ /**
54
+ * Calculate gas cost in USDC (6 decimals)
55
+ *
56
+ * @param receipt - Transaction receipt with gas information
57
+ * @param usdcPerGas - USDC price per gas unit (default: auto-fetch from oracle)
58
+ * @returns Gas cost in USDC as string (6 decimal precision)
59
+ *
60
+ * @example
61
+ * const receipt = await waitForTransactionReceipt(client, chain, txHash);
62
+ * const usdcCost = await calculateGasInUSDC(receipt);
63
+ * console.log(`Gas cost: ${usdcCost} USDC`); // "0.025000"
64
+ */
65
+ export async function calculateGasInUSDC(receipt, usdcPerGas) {
66
+ // Calculate total gas cost in wei
67
+ const totalGasWei = receipt.gasUsed * receipt.effectiveGasPrice;
68
+ // CRITICAL: Varity L3 native token is USDC (6 decimals)
69
+ // Convert from wei (18 decimals) to USDC (6 decimals)
70
+ // 1 USDC = 1_000_000 (10^6)
71
+ // 1 ETH = 1_000_000_000_000_000_000 (10^18)
72
+ // For Varity L3, the native token IS USDC, so:
73
+ // - Gas price is already in USDC units
74
+ // - We need to convert from 18 decimals to 6 decimals
75
+ // Divide by 10^12 to convert from 18 decimals to 6 decimals
76
+ const divisor = BigInt(10 ** 12);
77
+ const usdcAmount = totalGasWei / divisor;
78
+ // Convert to decimal string (6 decimal places)
79
+ const usdcString = usdcAmount.toString().padStart(7, '0');
80
+ const integerPart = usdcString.slice(0, -6) || '0';
81
+ const decimalPart = usdcString.slice(-6);
82
+ return `${integerPart}.${decimalPart}`;
83
+ }
84
+ /**
85
+ * Track gas usage for billing
86
+ *
87
+ * Sends gas usage event to Varity backend API for billing purposes.
88
+ * Includes retry logic and error handling.
89
+ *
90
+ * @param event - Gas usage event to track
91
+ * @param config - Optional configuration
92
+ * @returns Promise that resolves when tracking is complete
93
+ *
94
+ * @example
95
+ * await trackGasUsage({
96
+ * appId: 'app_abc123',
97
+ * developerWallet: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
98
+ * transactionHash: '0x...',
99
+ * gasSponsored: '0.025000',
100
+ * timestamp: Date.now(),
101
+ * chainId: 33529,
102
+ * userWallet: '0x...',
103
+ * });
104
+ */
105
+ export async function trackGasUsage(event, config = {}) {
106
+ const finalConfig = { ...DEFAULT_CONFIG, ...config };
107
+ if (!finalConfig.enabled) {
108
+ console.log('[Gas Tracker] Tracking disabled, skipping');
109
+ return;
110
+ }
111
+ const url = `${finalConfig.apiUrl}/v1/gas-tracking`;
112
+ let lastError = null;
113
+ for (let attempt = 0; attempt < finalConfig.retries; attempt++) {
114
+ try {
115
+ const controller = new AbortController();
116
+ const timeoutId = setTimeout(() => controller.abort(), finalConfig.timeout);
117
+ const response = await fetch(url, {
118
+ method: 'POST',
119
+ headers: {
120
+ 'Content-Type': 'application/json',
121
+ },
122
+ body: JSON.stringify(event),
123
+ signal: controller.signal,
124
+ });
125
+ clearTimeout(timeoutId);
126
+ if (!response.ok) {
127
+ const errorText = await response.text();
128
+ throw new Error(`Gas tracking failed: ${response.status} ${errorText}`);
129
+ }
130
+ const result = await response.json();
131
+ console.log(`[Gas Tracker] Tracked ${event.gasSponsored} USDC for app ${event.appId}`);
132
+ return;
133
+ }
134
+ catch (error) {
135
+ lastError = error;
136
+ console.warn(`[Gas Tracker] Attempt ${attempt + 1}/${finalConfig.retries} failed:`, error);
137
+ // Wait before retrying (exponential backoff)
138
+ if (attempt < finalConfig.retries - 1) {
139
+ const waitTime = Math.min(1000 * Math.pow(2, attempt), 5000);
140
+ await new Promise(resolve => setTimeout(resolve, waitTime));
141
+ }
142
+ }
143
+ }
144
+ // All retries failed - log error but don't throw
145
+ // We don't want to fail the user's transaction just because tracking failed
146
+ console.error('[Gas Tracker] Failed to track gas usage after all retries:', lastError);
147
+ }
148
+ /**
149
+ * Track gas usage for a transaction (convenience method)
150
+ *
151
+ * Waits for transaction receipt, calculates gas cost, and tracks usage.
152
+ *
153
+ * @param client - thirdweb client
154
+ * @param chain - Chain the transaction is on
155
+ * @param transactionHash - Transaction hash to track
156
+ * @param appId - App identifier
157
+ * @param developerWallet - Developer's wallet address
158
+ * @param userWallet - End user's wallet address
159
+ * @param config - Optional configuration
160
+ *
161
+ * @example
162
+ * await trackTransactionGasUsage(
163
+ * client,
164
+ * varityL3Testnet,
165
+ * txHash,
166
+ * 'app_abc123',
167
+ * '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
168
+ * '0x...'
169
+ * );
170
+ */
171
+ export async function trackTransactionGasUsage(client, chain, transactionHash, appId, developerWallet, userWallet, config = {}) {
172
+ try {
173
+ // Wait for transaction to be mined
174
+ const receipt = await waitForTransactionReceipt(client, chain, transactionHash);
175
+ // Calculate gas cost in USDC
176
+ const gasSponsored = await calculateGasInUSDC(receipt);
177
+ // Track the gas usage
178
+ await trackGasUsage({
179
+ appId,
180
+ developerWallet,
181
+ transactionHash,
182
+ gasSponsored,
183
+ timestamp: Date.now(),
184
+ chainId: chain.id,
185
+ userWallet,
186
+ }, config);
187
+ }
188
+ catch (error) {
189
+ console.error('[Gas Tracker] Error tracking transaction gas usage:', error);
190
+ // Don't throw - we don't want to fail the user's flow
191
+ }
192
+ }
193
+ /**
194
+ * Create a gas tracker instance with default config
195
+ *
196
+ * @param config - Gas tracker configuration
197
+ * @returns Object with tracking methods
198
+ *
199
+ * @example
200
+ * const tracker = createGasTracker({
201
+ * apiUrl: 'https://api.varity.so',
202
+ * enabled: true,
203
+ * });
204
+ *
205
+ * await tracker.trackTransaction(client, chain, txHash, appId, devWallet, userWallet);
206
+ */
207
+ export function createGasTracker(config = {}) {
208
+ const finalConfig = { ...DEFAULT_CONFIG, ...config };
209
+ return {
210
+ /**
211
+ * Track gas usage event
212
+ */
213
+ trackEvent: (event) => trackGasUsage(event, finalConfig),
214
+ /**
215
+ * Track transaction gas usage
216
+ */
217
+ trackTransaction: (client, chain, transactionHash, appId, developerWallet, userWallet) => trackTransactionGasUsage(client, chain, transactionHash, appId, developerWallet, userWallet, finalConfig),
218
+ /**
219
+ * Calculate gas in USDC
220
+ */
221
+ calculateGas: calculateGasInUSDC,
222
+ /**
223
+ * Wait for receipt
224
+ */
225
+ waitForReceipt: (client, chain, txHash) => waitForTransactionReceipt(client, chain, txHash),
226
+ };
227
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Gas Tracking Module
3
+ *
4
+ * Tracks gas usage for per-app billing in Varity SDK.
5
+ *
6
+ * @module tracking
7
+ */
8
+ export { trackGasUsage, trackTransactionGasUsage, waitForTransactionReceipt, calculateGasInUSDC, createGasTracker, type GasUsageEvent, type GasTransactionReceipt, type GasTrackerConfig, } from './gasTracker';
9
+ export type { BillingStatus, AppIdentifier, GasUsageRecord, AppUsageSummary, BillingCycle, GasTrackingStats, GasUsageQueryOptions, GasUsageQueryResult, BillingAlert, GasExportFormat, GasExportOptions, } from './types';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracking/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gas Tracking Module
3
+ *
4
+ * Tracks gas usage for per-app billing in Varity SDK.
5
+ *
6
+ * @module tracking
7
+ */
8
+ export { trackGasUsage, trackTransactionGasUsage, waitForTransactionReceipt, calculateGasInUSDC, createGasTracker, } from './gasTracker';
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Gas Tracking Types
3
+ *
4
+ * Type definitions for gas usage tracking and billing.
5
+ *
6
+ * @module tracking/types
7
+ */
8
+ /**
9
+ * Billing status for gas usage records
10
+ */
11
+ export type BillingStatus = 'pending' | 'billed' | 'paid';
12
+ /**
13
+ * App identifier for gas tracking
14
+ *
15
+ * Used to associate gas usage with specific apps for billing.
16
+ */
17
+ export interface AppIdentifier {
18
+ /**
19
+ * Unique app ID from Varity App Store
20
+ */
21
+ appId: string;
22
+ /**
23
+ * Developer's wallet address for billing
24
+ */
25
+ developerWallet: string;
26
+ /**
27
+ * App name (optional, for display purposes)
28
+ */
29
+ appName?: string;
30
+ }
31
+ /**
32
+ * Gas usage record in database
33
+ */
34
+ export interface GasUsageRecord {
35
+ /**
36
+ * Unique app identifier
37
+ */
38
+ appId: string;
39
+ /**
40
+ * Developer's wallet address
41
+ */
42
+ developerWallet: string;
43
+ /**
44
+ * Transaction hash on-chain
45
+ */
46
+ transactionHash: string;
47
+ /**
48
+ * Gas cost in USDC (6 decimal precision)
49
+ */
50
+ gasSponsoredUsdc: string;
51
+ /**
52
+ * Unix timestamp in milliseconds
53
+ */
54
+ timestamp: number;
55
+ /**
56
+ * Chain ID (33529 for Varity L3)
57
+ */
58
+ chainId: number;
59
+ /**
60
+ * End user's wallet address
61
+ */
62
+ userWallet: string;
63
+ /**
64
+ * Billing status
65
+ */
66
+ billingStatus: BillingStatus;
67
+ /**
68
+ * Billing month (YYYY-MM format)
69
+ */
70
+ billingMonth: string;
71
+ /**
72
+ * Record creation timestamp
73
+ */
74
+ createdAt: Date;
75
+ /**
76
+ * When invoice was generated (if billed)
77
+ */
78
+ billedAt?: Date;
79
+ /**
80
+ * When payment was received (if paid)
81
+ */
82
+ paidAt?: Date;
83
+ }
84
+ /**
85
+ * App usage summary for billing
86
+ */
87
+ export interface AppUsageSummary {
88
+ /**
89
+ * App identifier
90
+ */
91
+ appId: string;
92
+ /**
93
+ * App name (optional)
94
+ */
95
+ appName?: string;
96
+ /**
97
+ * Total gas used in USDC
98
+ */
99
+ gasUsedUsdc: string;
100
+ /**
101
+ * Number of transactions
102
+ */
103
+ transactions: number;
104
+ }
105
+ /**
106
+ * Billing cycle record
107
+ */
108
+ export interface BillingCycle {
109
+ /**
110
+ * Developer's wallet address
111
+ */
112
+ developerWallet: string;
113
+ /**
114
+ * Billing month (YYYY-MM format)
115
+ */
116
+ billingMonth: string;
117
+ /**
118
+ * List of apps and their usage
119
+ */
120
+ apps: AppUsageSummary[];
121
+ /**
122
+ * Total gas across all apps
123
+ */
124
+ totalGasUsdc: string;
125
+ /**
126
+ * Total transaction count
127
+ */
128
+ totalTransactions: number;
129
+ /**
130
+ * Billing status
131
+ */
132
+ billingStatus: BillingStatus;
133
+ /**
134
+ * Invoice ID (when billed)
135
+ */
136
+ invoiceId?: string;
137
+ /**
138
+ * Invoice amount in USD
139
+ */
140
+ invoiceAmountUsd?: string;
141
+ /**
142
+ * Payment transaction hash
143
+ */
144
+ paymentTxHash?: string;
145
+ /**
146
+ * Cycle creation timestamp
147
+ */
148
+ createdAt: Date;
149
+ /**
150
+ * Last update timestamp
151
+ */
152
+ updatedAt: Date;
153
+ /**
154
+ * When invoice was generated
155
+ */
156
+ billedAt?: Date;
157
+ /**
158
+ * When payment was received
159
+ */
160
+ paidAt?: Date;
161
+ /**
162
+ * Payment due date
163
+ */
164
+ dueDate?: Date;
165
+ }
166
+ /**
167
+ * Gas tracking statistics
168
+ */
169
+ export interface GasTrackingStats {
170
+ /**
171
+ * Total gas tracked in USDC
172
+ */
173
+ totalGasUsdc: string;
174
+ /**
175
+ * Total transactions tracked
176
+ */
177
+ totalTransactions: number;
178
+ /**
179
+ * Average gas per transaction
180
+ */
181
+ averageGasPerTx: string;
182
+ /**
183
+ * Number of active apps
184
+ */
185
+ activeApps: number;
186
+ /**
187
+ * Number of active developers
188
+ */
189
+ activeDevelopers: number;
190
+ /**
191
+ * Tracking success rate (0-1)
192
+ */
193
+ successRate: number;
194
+ }
195
+ /**
196
+ * Gas usage query options
197
+ */
198
+ export interface GasUsageQueryOptions {
199
+ /**
200
+ * Filter by app ID
201
+ */
202
+ appId?: string;
203
+ /**
204
+ * Filter by developer wallet
205
+ */
206
+ developerWallet?: string;
207
+ /**
208
+ * Filter by billing month (YYYY-MM)
209
+ */
210
+ billingMonth?: string;
211
+ /**
212
+ * Filter by billing status
213
+ */
214
+ billingStatus?: BillingStatus;
215
+ /**
216
+ * Filter by chain ID
217
+ */
218
+ chainId?: number;
219
+ /**
220
+ * Start timestamp (inclusive)
221
+ */
222
+ startTimestamp?: number;
223
+ /**
224
+ * End timestamp (exclusive)
225
+ */
226
+ endTimestamp?: number;
227
+ /**
228
+ * Pagination: skip records
229
+ */
230
+ skip?: number;
231
+ /**
232
+ * Pagination: limit records
233
+ */
234
+ limit?: number;
235
+ /**
236
+ * Sort field
237
+ */
238
+ sortBy?: 'timestamp' | 'gasSponsored' | 'createdAt';
239
+ /**
240
+ * Sort order
241
+ */
242
+ sortOrder?: 'asc' | 'desc';
243
+ }
244
+ /**
245
+ * Gas usage query result
246
+ */
247
+ export interface GasUsageQueryResult {
248
+ /**
249
+ * Gas usage records
250
+ */
251
+ records: GasUsageRecord[];
252
+ /**
253
+ * Total records matching query
254
+ */
255
+ total: number;
256
+ /**
257
+ * Number of records skipped
258
+ */
259
+ skip: number;
260
+ /**
261
+ * Number of records returned
262
+ */
263
+ limit: number;
264
+ /**
265
+ * Has more records
266
+ */
267
+ hasMore: boolean;
268
+ }
269
+ /**
270
+ * Billing alert configuration
271
+ */
272
+ export interface BillingAlert {
273
+ /**
274
+ * Alert ID
275
+ */
276
+ id: string;
277
+ /**
278
+ * Developer wallet
279
+ */
280
+ developerWallet: string;
281
+ /**
282
+ * Alert type
283
+ */
284
+ type: 'threshold' | 'anomaly' | 'overdue';
285
+ /**
286
+ * Threshold amount in USDC (for threshold alerts)
287
+ */
288
+ thresholdUsdc?: string;
289
+ /**
290
+ * Alert enabled
291
+ */
292
+ enabled: boolean;
293
+ /**
294
+ * Notification channels
295
+ */
296
+ channels: ('email' | 'sms' | 'webhook')[];
297
+ /**
298
+ * Webhook URL (if webhook channel enabled)
299
+ */
300
+ webhookUrl?: string;
301
+ }
302
+ /**
303
+ * Export format for gas usage data
304
+ */
305
+ export type GasExportFormat = 'csv' | 'json' | 'xlsx';
306
+ /**
307
+ * Export options for gas usage data
308
+ */
309
+ export interface GasExportOptions {
310
+ /**
311
+ * Export format
312
+ */
313
+ format: GasExportFormat;
314
+ /**
315
+ * Query options to filter data
316
+ */
317
+ query?: GasUsageQueryOptions;
318
+ /**
319
+ * Include headers in CSV/XLSX
320
+ */
321
+ includeHeaders?: boolean;
322
+ /**
323
+ * Timezone for timestamps
324
+ */
325
+ timezone?: string;
326
+ }
327
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tracking/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gas Tracking Types
3
+ *
4
+ * Type definitions for gas usage tracking and billing.
5
+ *
6
+ * @module tracking/types
7
+ */
8
+ export {};
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Chart Widget Component
3
+ *
4
+ * Universal chart component supporting multiple chart types
5
+ */
6
+ import React from 'react';
7
+ export type ChartType = 'line' | 'bar' | 'area' | 'pie';
8
+ export interface ChartDataPoint {
9
+ [key: string]: string | number;
10
+ }
11
+ export interface ChartWidgetProps {
12
+ /** Chart title */
13
+ title: string;
14
+ /** Chart type */
15
+ type: ChartType;
16
+ /** Chart data */
17
+ data: ChartDataPoint[];
18
+ /** Data key for x-axis */
19
+ xKey?: string;
20
+ /** Data keys for y-axis */
21
+ yKeys: string[];
22
+ /** Key labels */
23
+ labels?: Record<string, string>;
24
+ /** Loading state */
25
+ loading?: boolean;
26
+ /** Chart height */
27
+ height?: number;
28
+ /** Color scheme */
29
+ colors?: string[];
30
+ /** Show legend */
31
+ showLegend?: boolean;
32
+ /** Show grid */
33
+ showGrid?: boolean;
34
+ }
35
+ export declare const ChartWidget: React.FC<ChartWidgetProps>;
36
+ //# sourceMappingURL=ChartWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartWidget.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ChartWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AA0BzB,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,iBAAiB;IACjB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAaD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2JlD,CAAA"}