@opendatalabs/vana-sdk 0.1.0-alpha.376e2fd

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 (46) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +364 -0
  3. package/dist/chains.browser.cjs +96 -0
  4. package/dist/chains.browser.cjs.map +1 -0
  5. package/dist/chains.browser.d.cts +53 -0
  6. package/dist/chains.browser.d.ts +53 -0
  7. package/dist/chains.browser.js +65 -0
  8. package/dist/chains.browser.js.map +1 -0
  9. package/dist/chains.cjs +96 -0
  10. package/dist/chains.cjs.map +1 -0
  11. package/dist/chains.d.cts +2 -0
  12. package/dist/chains.d.ts +2 -0
  13. package/dist/chains.js +65 -0
  14. package/dist/chains.js.map +1 -0
  15. package/dist/chains.node.cjs +96 -0
  16. package/dist/chains.node.cjs.map +1 -0
  17. package/dist/chains.node.d.cts +2 -0
  18. package/dist/chains.node.d.ts +2 -0
  19. package/dist/chains.node.js +65 -0
  20. package/dist/chains.node.js.map +1 -0
  21. package/dist/index.browser.d.ts +32480 -0
  22. package/dist/index.browser.js +41016 -0
  23. package/dist/index.browser.js.map +1 -0
  24. package/dist/index.d.cts +2 -0
  25. package/dist/index.node.cjs +41496 -0
  26. package/dist/index.node.cjs.map +1 -0
  27. package/dist/index.node.d.cts +32586 -0
  28. package/dist/index.node.d.ts +32586 -0
  29. package/dist/index.node.js +41358 -0
  30. package/dist/index.node.js.map +1 -0
  31. package/dist/platform.browser.d.ts +224 -0
  32. package/dist/platform.browser.js +318 -0
  33. package/dist/platform.browser.js.map +1 -0
  34. package/dist/platform.cjs +659 -0
  35. package/dist/platform.cjs.map +1 -0
  36. package/dist/platform.d.cts +1 -0
  37. package/dist/platform.d.ts +1 -0
  38. package/dist/platform.js +622 -0
  39. package/dist/platform.js.map +1 -0
  40. package/dist/platform.node.cjs +659 -0
  41. package/dist/platform.node.cjs.map +1 -0
  42. package/dist/platform.node.d.cts +264 -0
  43. package/dist/platform.node.d.ts +264 -0
  44. package/dist/platform.node.js +622 -0
  45. package/dist/platform.node.js.map +1 -0
  46. package/package.json +130 -0
package/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2025, Vana
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,364 @@
1
+ # Vana SDK
2
+
3
+ > **⚠️ ALPHA SOFTWARE - EXPERIMENTAL USE ONLY**
4
+ >
5
+ > This SDK is in early alpha development and is **NOT SUITABLE FOR PRODUCTION USE**.
6
+ > Features may change without notice, and data loss or unexpected behavior may occur.
7
+ > Use at your own risk and avoid using with mainnet assets or critical operations.
8
+
9
+ A TypeScript SDK for building data-driven applications on the Vana Network. Enable users to grant gasless permissions, manage encrypted data, and interact with privacy-preserving infrastructure.
10
+
11
+ [![npm version](https://img.shields.io/npm/v/@opendatalabs/vana-sdk)](https://www.npmjs.com/package/@opendatalabs/vana-sdk)
12
+ [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue)](https://www.typescriptlang.org/)
13
+ [![License: ISC](https://img.shields.io/badge/License-ISC-green.svg)](https://opensource.org/licenses/ISC)
14
+
15
+ [API Documentation](https://vana-com.github.io/vana-sdk) • [Examples](#examples) • [Configuration](#configuration)
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install @opendatalabs/vana-sdk
21
+ ```
22
+
23
+ **Peer Dependencies:**
24
+
25
+ ```bash
26
+ npm install viem@^2.31.7
27
+ ```
28
+
29
+ ## Quick Start
30
+
31
+ The Vana SDK supports both browser and Node.js environments with explicit entry points:
32
+
33
+ ### Browser Applications (React, Vue, etc.)
34
+
35
+ ```typescript
36
+ // For browser-based applications (React, Vue, etc.)
37
+ import { Vana, mokshaTestnet } from "@opendatalabs/vana-sdk/browser";
38
+ import { createWalletClient, http } from "viem";
39
+ import { privateKeyToAccount } from "viem/accounts";
40
+
41
+ // Create wallet client
42
+ const account = privateKeyToAccount("0x...");
43
+ const walletClient = createWalletClient({
44
+ account,
45
+ chain: mokshaTestnet,
46
+ transport: http("https://rpc.moksha.vana.org"),
47
+ });
48
+
49
+ // Initialize SDK
50
+ const vana = Vana({
51
+ walletClient,
52
+ relayerUrl: "https://relayer.moksha.vana.org",
53
+ });
54
+ ```
55
+
56
+ ### Server-side Applications (Next.js API routes, Express)
57
+
58
+ ```typescript
59
+ // For server-side applications (Next.js API routes, Express)
60
+ import { Vana, mokshaTestnet } from "@opendatalabs/vana-sdk/node";
61
+ import { createWalletClient, http } from "viem";
62
+ import { privateKeyToAccount } from "viem/accounts";
63
+
64
+ // Create wallet client
65
+ const account = privateKeyToAccount("0x...");
66
+ const walletClient = createWalletClient({
67
+ account,
68
+ chain: mokshaTestnet,
69
+ transport: http("https://rpc.moksha.vana.org"),
70
+ });
71
+
72
+ // Initialize SDK
73
+ const vana = Vana({
74
+ walletClient,
75
+ relayerUrl: "https://relayer.moksha.vana.org",
76
+ });
77
+
78
+ // Grant gasless permission
79
+ const txHash = await vana.permissions.grant({
80
+ grantee: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
81
+ operation: "llm_inference",
82
+ parameters: {
83
+ prompt: "Analyze my data for insights",
84
+ maxTokens: 1000,
85
+ },
86
+ expiresAt: Math.floor(Date.now() / 1000) + 86400, // 24 hours
87
+ });
88
+ ```
89
+
90
+ ## Core Features
91
+
92
+ ### Gasless Permissions
93
+
94
+ Users can grant data access permissions without paying gas fees through EIP-712 signatures and relay infrastructure.
95
+
96
+ ```typescript
97
+ // Grant permission with custom parameters
98
+ await vana.permissions.grant({
99
+ grantee: applicationAddress,
100
+ operation: "data_analysis",
101
+ parameters: {
102
+ analysisType: "sentiment",
103
+ files: [12, 15, 28],
104
+ model: "gpt-4",
105
+ },
106
+ });
107
+ ```
108
+
109
+ ### Encrypted Data Management
110
+
111
+ Upload, query, and manage encrypted user data files with built-in schema validation.
112
+
113
+ ```typescript
114
+ // Query user files
115
+ const files = await vana.data.getUserFiles({
116
+ owner: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
117
+ });
118
+
119
+ // Upload encrypted file
120
+ const result = await vana.data.uploadEncryptedFile({
121
+ data: encryptedBlob,
122
+ schemaId: 123,
123
+ filename: "user-data.json",
124
+ });
125
+ ```
126
+
127
+ ### Flexible Storage
128
+
129
+ Abstract storage layer supporting IPFS, Google Drive, and custom providers.
130
+
131
+ ```typescript
132
+ // For browser applications
133
+ import { StorageManager, PinataStorage } from "@opendatalabs/vana-sdk/browser";
134
+ // OR for server-side applications
135
+ // import { StorageManager, PinataStorage } from "@opendatalabs/vana-sdk/node";
136
+
137
+ const storageManager = new StorageManager();
138
+ storageManager.register(
139
+ "ipfs",
140
+ new PinataStorage({
141
+ apiKey: process.env.PINATA_API_KEY,
142
+ secretKey: process.env.PINATA_SECRET_KEY,
143
+ }),
144
+ );
145
+ ```
146
+
147
+ ## Architecture
148
+
149
+ The SDK provides four main controllers:
150
+
151
+ | Controller | Purpose | Key Methods |
152
+ | ------------- | ------------------------------ | ----------------------------------------------------------------- |
153
+ | `permissions` | Gasless permission management | `grant()`, `revoke()`, `getUserPermissions()` |
154
+ | `data` | File management and validation | `getUserFiles()`, `uploadEncryptedFile()`, `validateDataSchema()` |
155
+ | `server` | Trusted server operations | `trustServer()`, `processWithTrustedServer()` |
156
+ | `protocol` | Contract interaction | `getContract()`, `getAvailableContracts()` |
157
+
158
+ ## Configuration
159
+
160
+ ```typescript
161
+ const vana = Vana({
162
+ walletClient,
163
+
164
+ // Gasless transaction relay
165
+ relayerUrl: "https://relayer.moksha.vana.org",
166
+
167
+ // Custom relay callbacks
168
+ relayerCallbacks: {
169
+ submitPermissionGrant: async (typedData, signature) => {
170
+ return await customRelayer.submit(typedData, signature);
171
+ },
172
+ },
173
+
174
+ // Storage configuration
175
+ storageManager: new StorageManager({
176
+ defaultProvider: "ipfs",
177
+ providers: {
178
+ ipfs: new PinataStorage({ apiKey: "...", secretKey: "..." }),
179
+ },
180
+ }),
181
+
182
+ // Subgraph for efficient queries
183
+ subgraphUrl: "https://api.thegraph.com/subgraphs/name/vana/moksha",
184
+ });
185
+ ```
186
+
187
+ ## Error Handling
188
+
189
+ The SDK provides specific error types for different failure scenarios:
190
+
191
+ ```typescript
192
+ import {
193
+ RelayerError,
194
+ UserRejectedRequestError,
195
+ SchemaValidationError,
196
+ NetworkError,
197
+ } from "@opendatalabs/vana-sdk/browser";
198
+ // OR for server-side applications
199
+ // } from "@opendatalabs/vana-sdk/node";
200
+
201
+ try {
202
+ await vana.permissions.grant(params);
203
+ } catch (error) {
204
+ if (error instanceof UserRejectedRequestError) {
205
+ // User cancelled transaction
206
+ } else if (error instanceof RelayerError) {
207
+ // Relayer service error
208
+ } else if (error instanceof SchemaValidationError) {
209
+ // Schema validation failed
210
+ }
211
+ }
212
+ ```
213
+
214
+ ## Supported Networks
215
+
216
+ | Network | Chain ID | RPC URL |
217
+ | ------------------ | -------- | ----------------------------- |
218
+ | **Vana Mainnet** | `1480` | `https://rpc.vana.org` |
219
+ | **Moksha Testnet** | `14800` | `https://rpc.moksha.vana.org` |
220
+
221
+ ## Examples
222
+
223
+ ### Complete Permission Flow
224
+
225
+ ```typescript
226
+ import {
227
+ Vana,
228
+ generateEncryptionKey,
229
+ encryptBlobWithSignedKey,
230
+ } from "@opendatalabs/vana-sdk/browser";
231
+ // OR for server-side applications
232
+ // } from "@opendatalabs/vana-sdk/node";
233
+
234
+ async function grantDataPermission() {
235
+ const vana = Vana({ walletClient });
236
+
237
+ // 1. Encrypt user data
238
+ const encryptionKey = await generateEncryptionKey(walletClient);
239
+ const userData = new Blob([JSON.stringify({ data: "sensitive info" })]);
240
+ const encryptedData = await encryptBlobWithSignedKey(userData, encryptionKey);
241
+
242
+ // 2. Upload encrypted file
243
+ const uploadResult = await vana.data.uploadEncryptedFile({
244
+ data: encryptedData,
245
+ schemaId: 123,
246
+ filename: "user-data.json",
247
+ });
248
+
249
+ // 3. Grant permission
250
+ const permissionTx = await vana.permissions.grant({
251
+ grantee: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
252
+ operation: "ai_training",
253
+ parameters: {
254
+ files: [uploadResult.fileId],
255
+ model: "llm-v1",
256
+ },
257
+ });
258
+
259
+ return permissionTx;
260
+ }
261
+ ```
262
+
263
+ ### Schema Validation
264
+
265
+ ```typescript
266
+ // Define data schema
267
+ const schema = {
268
+ name: "Social Media Export",
269
+ version: "1.0.0",
270
+ dialect: "json",
271
+ schema: {
272
+ type: "object",
273
+ properties: {
274
+ posts: { type: "array" },
275
+ profile: { type: "object" },
276
+ },
277
+ required: ["profile"],
278
+ },
279
+ };
280
+
281
+ // Validate schema
282
+ vana.data.validateDataSchema(schema);
283
+
284
+ // Validate user data
285
+ const userData = {
286
+ profile: { username: "alice" },
287
+ posts: [],
288
+ };
289
+ vana.data.validateDataAgainstSchema(userData, schema);
290
+ ```
291
+
292
+ ## API Reference
293
+
294
+ ### Permissions
295
+
296
+ ```typescript
297
+ // Grant permission
298
+ await vana.permissions.grant({
299
+ grantee: Address,
300
+ operation: string,
301
+ parameters: object,
302
+ expiresAt?: number
303
+ }): Promise<Hash>
304
+
305
+ // Revoke permission
306
+ await vana.permissions.revoke({
307
+ grantId: string
308
+ }): Promise<Hash>
309
+
310
+ // Get user permissions
311
+ await vana.permissions.getUserPermissions({
312
+ owner: Address
313
+ }): Promise<GrantedPermission[]>
314
+ ```
315
+
316
+ ### Data
317
+
318
+ ```typescript
319
+ // Get user files
320
+ await vana.data.getUserFiles({
321
+ owner: Address
322
+ }): Promise<UserFile[]>
323
+
324
+ // Upload encrypted file
325
+ await vana.data.uploadEncryptedFile({
326
+ data: Blob,
327
+ schemaId?: number,
328
+ filename?: string
329
+ }): Promise<UploadResult>
330
+
331
+ // Validate schema
332
+ vana.data.validateDataSchema(schema: unknown): void
333
+
334
+ // Validate data against schema
335
+ vana.data.validateDataAgainstSchema(data: unknown, schema: DataSchema): void
336
+ ```
337
+
338
+ ## Documentation
339
+
340
+ - [API Documentation](https://vana-com.github.io/vana-sdk) - Complete TypeDoc API reference
341
+ - [Getting Started](https://vana-com.github.io/vana-sdk/getting-started) - Step-by-step setup guide
342
+ - [Architecture](https://vana-com.github.io/vana-sdk/architecture) - SDK design and patterns
343
+ - [Configuration](https://vana-com.github.io/vana-sdk/configuration) - All configuration options
344
+ - [Security](https://vana-com.github.io/vana-sdk/security) - Best practices and security
345
+
346
+ ## Support
347
+
348
+ - **Documentation**: [vana-com.github.io/vana-sdk](https://vana-com.github.io/vana-sdk)
349
+ - **Issues**: [GitHub Issues](https://github.com/vana-com/vana-sdk/issues)
350
+ - **Discord**: [Join our community](https://discord.gg/vanabuilders)
351
+
352
+ ## Development
353
+
354
+ ```bash
355
+ git clone https://github.com/vana-com/vana-sdk.git
356
+ cd vana-sdk
357
+ npm install
358
+ npm run build
359
+ npm test
360
+ ```
361
+
362
+ ## License
363
+
364
+ [ISC License](LICENSE) © Vana Foundation
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/chains.browser.ts
21
+ var chains_browser_exports = {};
22
+ __export(chains_browser_exports, {
23
+ getAllChains: () => getAllChains,
24
+ getChainConfig: () => getChainConfig,
25
+ moksha: () => moksha,
26
+ mokshaTestnet: () => mokshaTestnet,
27
+ vanaMainnet: () => vanaMainnet
28
+ });
29
+ module.exports = __toCommonJS(chains_browser_exports);
30
+
31
+ // src/chains/definitions.ts
32
+ var vanaMainnet = {
33
+ id: 1480,
34
+ name: "Vana",
35
+ nativeCurrency: {
36
+ name: "VANA",
37
+ symbol: "VANA",
38
+ decimals: 18
39
+ },
40
+ rpcUrls: {
41
+ default: {
42
+ http: ["https://rpc.vana.org"]
43
+ }
44
+ },
45
+ blockExplorers: {
46
+ default: {
47
+ name: "Vanascan",
48
+ url: "https://vanascan.io"
49
+ }
50
+ },
51
+ subgraphUrl: "https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/vana/7.0.2/gn"
52
+ };
53
+ var moksha = {
54
+ id: 14800,
55
+ name: "Moksha Testnet",
56
+ nativeCurrency: {
57
+ name: "VANA",
58
+ symbol: "VANA",
59
+ decimals: 18
60
+ },
61
+ rpcUrls: {
62
+ default: {
63
+ http: ["https://rpc.moksha.vana.org"]
64
+ }
65
+ },
66
+ blockExplorers: {
67
+ default: {
68
+ name: "Vanascan - Moksha",
69
+ url: "https://moksha.vanascan.io"
70
+ }
71
+ },
72
+ subgraphUrl: "https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/moksha/7.0.3/gn"
73
+ };
74
+ function getChainConfig(chainId) {
75
+ switch (chainId) {
76
+ case 1480:
77
+ return vanaMainnet;
78
+ case 14800:
79
+ return moksha;
80
+ default:
81
+ return void 0;
82
+ }
83
+ }
84
+ var mokshaTestnet = moksha;
85
+ function getAllChains() {
86
+ return [vanaMainnet, moksha];
87
+ }
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ getAllChains,
91
+ getChainConfig,
92
+ moksha,
93
+ mokshaTestnet,
94
+ vanaMainnet
95
+ });
96
+ //# sourceMappingURL=chains.browser.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chains.browser.ts","../src/chains/definitions.ts"],"sourcesContent":["/**\n * Browser-specific chains entry point\n *\n * This is identical to the base chains export since chain configurations\n * are environment-agnostic.\n */\n\nexport type { VanaChainConfig } from \"./chains/definitions\";\nexport {\n vanaMainnet,\n moksha,\n mokshaTestnet,\n getChainConfig,\n getAllChains,\n} from \"./chains/definitions\";\n","/**\n * Chain configuration definitions for Vana networks\n *\n * These provide default configurations for known Vana chains.\n * Applications can use these as-is or override specific values.\n */\n\nimport type { Chain } from \"viem\";\n\nexport interface VanaChainConfig extends Chain {\n /** URL for the subgraph API endpoint used to query on-chain data */\n subgraphUrl: string;\n}\n\n/**\n * Vana Mainnet configuration\n */\nexport const vanaMainnet: VanaChainConfig = {\n id: 1480,\n name: \"Vana\",\n nativeCurrency: {\n name: \"VANA\",\n symbol: \"VANA\",\n decimals: 18,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.vana.org\"],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan\",\n url: \"https://vanascan.io\",\n },\n },\n subgraphUrl:\n \"https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/vana/7.0.2/gn\",\n} as const;\n\n/**\n * Moksha Testnet configuration\n */\nexport const moksha: VanaChainConfig = {\n id: 14800,\n name: \"Moksha Testnet\",\n nativeCurrency: {\n name: \"VANA\",\n symbol: \"VANA\",\n decimals: 18,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.moksha.vana.org\"],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan - Moksha\",\n url: \"https://moksha.vanascan.io\",\n },\n },\n subgraphUrl:\n \"https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/moksha/7.0.3/gn\",\n} as const;\n\n/**\n * Retrieves the chain configuration for a given chain ID.\n *\n * @param chainId - The numeric chain ID to look up\n * @returns The chain configuration if found, undefined otherwise\n * @example\n * ```typescript\n * const config = getChainConfig(1480);\n * if (config) {\n * console.log('Chain name:', config.name);\n * console.log('Subgraph URL:', config.subgraphUrl);\n * }\n * ```\n */\nexport function getChainConfig(chainId: number): VanaChainConfig | undefined {\n switch (chainId) {\n case 1480:\n return vanaMainnet;\n case 14800:\n return moksha;\n default:\n return undefined;\n }\n}\n\n// Backwards compatibility alias\nexport const mokshaTestnet = moksha;\n\n/**\n * Retrieves all available Vana chain configurations.\n *\n * @returns Array of all supported Vana chain configurations\n * @example\n * ```typescript\n * const chains = getAllChains();\n * console.log('Supported chains:');\n * chains.forEach(chain => {\n * console.log(`- ${chain.name} (ID: ${chain.id})`);\n * });\n * ```\n */\nexport function getAllChains(): VanaChainConfig[] {\n return [vanaMainnet, moksha];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiBO,IAAM,cAA+B;AAAA,EAC1C,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,MACP,MAAM,CAAC,sBAAsB;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,aACE;AACJ;AAKO,IAAM,SAA0B;AAAA,EACrC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,MACP,MAAM,CAAC,6BAA6B;AAAA,IACtC;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,aACE;AACJ;AAgBO,SAAS,eAAe,SAA8C;AAC3E,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAGO,IAAM,gBAAgB;AAetB,SAAS,eAAkC;AAChD,SAAO,CAAC,aAAa,MAAM;AAC7B;","names":[]}
@@ -0,0 +1,53 @@
1
+ import { Chain } from 'viem';
2
+
3
+ /**
4
+ * Chain configuration definitions for Vana networks
5
+ *
6
+ * These provide default configurations for known Vana chains.
7
+ * Applications can use these as-is or override specific values.
8
+ */
9
+
10
+ interface VanaChainConfig extends Chain {
11
+ /** URL for the subgraph API endpoint used to query on-chain data */
12
+ subgraphUrl: string;
13
+ }
14
+ /**
15
+ * Vana Mainnet configuration
16
+ */
17
+ declare const vanaMainnet: VanaChainConfig;
18
+ /**
19
+ * Moksha Testnet configuration
20
+ */
21
+ declare const moksha: VanaChainConfig;
22
+ /**
23
+ * Retrieves the chain configuration for a given chain ID.
24
+ *
25
+ * @param chainId - The numeric chain ID to look up
26
+ * @returns The chain configuration if found, undefined otherwise
27
+ * @example
28
+ * ```typescript
29
+ * const config = getChainConfig(1480);
30
+ * if (config) {
31
+ * console.log('Chain name:', config.name);
32
+ * console.log('Subgraph URL:', config.subgraphUrl);
33
+ * }
34
+ * ```
35
+ */
36
+ declare function getChainConfig(chainId: number): VanaChainConfig | undefined;
37
+ declare const mokshaTestnet: VanaChainConfig;
38
+ /**
39
+ * Retrieves all available Vana chain configurations.
40
+ *
41
+ * @returns Array of all supported Vana chain configurations
42
+ * @example
43
+ * ```typescript
44
+ * const chains = getAllChains();
45
+ * console.log('Supported chains:');
46
+ * chains.forEach(chain => {
47
+ * console.log(`- ${chain.name} (ID: ${chain.id})`);
48
+ * });
49
+ * ```
50
+ */
51
+ declare function getAllChains(): VanaChainConfig[];
52
+
53
+ export { type VanaChainConfig, getAllChains, getChainConfig, moksha, mokshaTestnet, vanaMainnet };
@@ -0,0 +1,53 @@
1
+ import { Chain } from 'viem';
2
+
3
+ /**
4
+ * Chain configuration definitions for Vana networks
5
+ *
6
+ * These provide default configurations for known Vana chains.
7
+ * Applications can use these as-is or override specific values.
8
+ */
9
+
10
+ interface VanaChainConfig extends Chain {
11
+ /** URL for the subgraph API endpoint used to query on-chain data */
12
+ subgraphUrl: string;
13
+ }
14
+ /**
15
+ * Vana Mainnet configuration
16
+ */
17
+ declare const vanaMainnet: VanaChainConfig;
18
+ /**
19
+ * Moksha Testnet configuration
20
+ */
21
+ declare const moksha: VanaChainConfig;
22
+ /**
23
+ * Retrieves the chain configuration for a given chain ID.
24
+ *
25
+ * @param chainId - The numeric chain ID to look up
26
+ * @returns The chain configuration if found, undefined otherwise
27
+ * @example
28
+ * ```typescript
29
+ * const config = getChainConfig(1480);
30
+ * if (config) {
31
+ * console.log('Chain name:', config.name);
32
+ * console.log('Subgraph URL:', config.subgraphUrl);
33
+ * }
34
+ * ```
35
+ */
36
+ declare function getChainConfig(chainId: number): VanaChainConfig | undefined;
37
+ declare const mokshaTestnet: VanaChainConfig;
38
+ /**
39
+ * Retrieves all available Vana chain configurations.
40
+ *
41
+ * @returns Array of all supported Vana chain configurations
42
+ * @example
43
+ * ```typescript
44
+ * const chains = getAllChains();
45
+ * console.log('Supported chains:');
46
+ * chains.forEach(chain => {
47
+ * console.log(`- ${chain.name} (ID: ${chain.id})`);
48
+ * });
49
+ * ```
50
+ */
51
+ declare function getAllChains(): VanaChainConfig[];
52
+
53
+ export { type VanaChainConfig, getAllChains, getChainConfig, moksha, mokshaTestnet, vanaMainnet };
@@ -0,0 +1,65 @@
1
+ // src/chains/definitions.ts
2
+ var vanaMainnet = {
3
+ id: 1480,
4
+ name: "Vana",
5
+ nativeCurrency: {
6
+ name: "VANA",
7
+ symbol: "VANA",
8
+ decimals: 18
9
+ },
10
+ rpcUrls: {
11
+ default: {
12
+ http: ["https://rpc.vana.org"]
13
+ }
14
+ },
15
+ blockExplorers: {
16
+ default: {
17
+ name: "Vanascan",
18
+ url: "https://vanascan.io"
19
+ }
20
+ },
21
+ subgraphUrl: "https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/vana/7.0.2/gn"
22
+ };
23
+ var moksha = {
24
+ id: 14800,
25
+ name: "Moksha Testnet",
26
+ nativeCurrency: {
27
+ name: "VANA",
28
+ symbol: "VANA",
29
+ decimals: 18
30
+ },
31
+ rpcUrls: {
32
+ default: {
33
+ http: ["https://rpc.moksha.vana.org"]
34
+ }
35
+ },
36
+ blockExplorers: {
37
+ default: {
38
+ name: "Vanascan - Moksha",
39
+ url: "https://moksha.vanascan.io"
40
+ }
41
+ },
42
+ subgraphUrl: "https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/moksha/7.0.3/gn"
43
+ };
44
+ function getChainConfig(chainId) {
45
+ switch (chainId) {
46
+ case 1480:
47
+ return vanaMainnet;
48
+ case 14800:
49
+ return moksha;
50
+ default:
51
+ return void 0;
52
+ }
53
+ }
54
+ var mokshaTestnet = moksha;
55
+ function getAllChains() {
56
+ return [vanaMainnet, moksha];
57
+ }
58
+ export {
59
+ getAllChains,
60
+ getChainConfig,
61
+ moksha,
62
+ mokshaTestnet,
63
+ vanaMainnet
64
+ };
65
+ //# sourceMappingURL=chains.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chains/definitions.ts"],"sourcesContent":["/**\n * Chain configuration definitions for Vana networks\n *\n * These provide default configurations for known Vana chains.\n * Applications can use these as-is or override specific values.\n */\n\nimport type { Chain } from \"viem\";\n\nexport interface VanaChainConfig extends Chain {\n /** URL for the subgraph API endpoint used to query on-chain data */\n subgraphUrl: string;\n}\n\n/**\n * Vana Mainnet configuration\n */\nexport const vanaMainnet: VanaChainConfig = {\n id: 1480,\n name: \"Vana\",\n nativeCurrency: {\n name: \"VANA\",\n symbol: \"VANA\",\n decimals: 18,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.vana.org\"],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan\",\n url: \"https://vanascan.io\",\n },\n },\n subgraphUrl:\n \"https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/vana/7.0.2/gn\",\n} as const;\n\n/**\n * Moksha Testnet configuration\n */\nexport const moksha: VanaChainConfig = {\n id: 14800,\n name: \"Moksha Testnet\",\n nativeCurrency: {\n name: \"VANA\",\n symbol: \"VANA\",\n decimals: 18,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.moksha.vana.org\"],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan - Moksha\",\n url: \"https://moksha.vanascan.io\",\n },\n },\n subgraphUrl:\n \"https://api.goldsky.com/api/public/project_cm168cz887zva010j39il7a6p/subgraphs/moksha/7.0.3/gn\",\n} as const;\n\n/**\n * Retrieves the chain configuration for a given chain ID.\n *\n * @param chainId - The numeric chain ID to look up\n * @returns The chain configuration if found, undefined otherwise\n * @example\n * ```typescript\n * const config = getChainConfig(1480);\n * if (config) {\n * console.log('Chain name:', config.name);\n * console.log('Subgraph URL:', config.subgraphUrl);\n * }\n * ```\n */\nexport function getChainConfig(chainId: number): VanaChainConfig | undefined {\n switch (chainId) {\n case 1480:\n return vanaMainnet;\n case 14800:\n return moksha;\n default:\n return undefined;\n }\n}\n\n// Backwards compatibility alias\nexport const mokshaTestnet = moksha;\n\n/**\n * Retrieves all available Vana chain configurations.\n *\n * @returns Array of all supported Vana chain configurations\n * @example\n * ```typescript\n * const chains = getAllChains();\n * console.log('Supported chains:');\n * chains.forEach(chain => {\n * console.log(`- ${chain.name} (ID: ${chain.id})`);\n * });\n * ```\n */\nexport function getAllChains(): VanaChainConfig[] {\n return [vanaMainnet, moksha];\n}\n"],"mappings":";AAiBO,IAAM,cAA+B;AAAA,EAC1C,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,MACP,MAAM,CAAC,sBAAsB;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,aACE;AACJ;AAKO,IAAM,SAA0B;AAAA,EACrC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,MACP,MAAM,CAAC,6BAA6B;AAAA,IACtC;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,aACE;AACJ;AAgBO,SAAS,eAAe,SAA8C;AAC3E,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAGO,IAAM,gBAAgB;AAetB,SAAS,eAAkC;AAChD,SAAO,CAAC,aAAa,MAAM;AAC7B;","names":[]}