@opendatalabs/vana-sdk 0.1.0-alpha.48426a9 → 0.1.0-alpha.4d0c6be
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/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +33 -1
- package/dist/browser.js.map +1 -1
- package/dist/chains/definitions.cjs +9 -6
- package/dist/chains/definitions.cjs.map +1 -1
- package/dist/chains/definitions.d.ts +2 -0
- package/dist/chains/definitions.js +9 -6
- package/dist/chains/definitions.js.map +1 -1
- package/dist/chains/index.cjs.map +1 -1
- package/dist/chains/index.d.ts +30 -1
- package/dist/chains/index.js.map +1 -1
- package/dist/config/chains.cjs.map +1 -1
- package/dist/config/chains.d.ts +99 -0
- package/dist/config/chains.js.map +1 -1
- package/dist/config/default-services.cjs +60 -0
- package/dist/config/default-services.cjs.map +1 -0
- package/dist/config/default-services.d.ts +46 -0
- package/dist/config/default-services.js +33 -0
- package/dist/config/default-services.js.map +1 -0
- package/dist/contracts/contractController.cjs.map +1 -1
- package/dist/contracts/contractController.d.ts +66 -10
- package/dist/contracts/contractController.js.map +1 -1
- package/dist/controllers/base.cjs +83 -0
- package/dist/controllers/base.cjs.map +1 -0
- package/dist/controllers/base.d.ts +84 -0
- package/dist/controllers/base.js +59 -0
- package/dist/controllers/base.js.map +1 -0
- package/dist/controllers/data.cjs +365 -205
- package/dist/controllers/data.cjs.map +1 -1
- package/dist/controllers/data.d.ts +318 -203
- package/dist/controllers/data.js +365 -205
- package/dist/controllers/data.js.map +1 -1
- package/dist/controllers/permissions.cjs +388 -281
- package/dist/controllers/permissions.cjs.map +1 -1
- package/dist/controllers/permissions.d.ts +61 -88
- package/dist/controllers/permissions.js +388 -281
- package/dist/controllers/permissions.js.map +1 -1
- package/dist/controllers/protocol.cjs +14 -10
- package/dist/controllers/protocol.cjs.map +1 -1
- package/dist/controllers/protocol.d.ts +30 -31
- package/dist/controllers/protocol.js +14 -10
- package/dist/controllers/protocol.js.map +1 -1
- package/dist/controllers/schemas.cjs +31 -38
- package/dist/controllers/schemas.cjs.map +1 -1
- package/dist/controllers/schemas.d.ts +49 -43
- package/dist/controllers/schemas.js +31 -38
- package/dist/controllers/schemas.js.map +1 -1
- package/dist/controllers/server.cjs +24 -17
- package/dist/controllers/server.cjs.map +1 -1
- package/dist/controllers/server.d.ts +48 -40
- package/dist/controllers/server.js +24 -17
- package/dist/controllers/server.js.map +1 -1
- package/dist/core/apiClient.cjs +53 -3
- package/dist/core/apiClient.cjs.map +1 -1
- package/dist/core/apiClient.d.ts +132 -7
- package/dist/core/apiClient.js +53 -3
- package/dist/core/apiClient.js.map +1 -1
- package/dist/core/generics.cjs +30 -3
- package/dist/core/generics.cjs.map +1 -1
- package/dist/core/generics.d.ts +95 -6
- package/dist/core/generics.js +30 -3
- package/dist/core/generics.js.map +1 -1
- package/dist/core.cjs +101 -35
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +9 -7
- package/dist/core.js +104 -36
- package/dist/core.js.map +1 -1
- package/dist/errors.cjs +16 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +40 -0
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -1
- package/dist/generated/server/server.cjs.map +1 -1
- package/dist/generated/server/server.d.ts +108 -80
- package/dist/index.browser.d.ts +6 -0
- package/dist/index.browser.js +12 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +12 -3
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +13 -9
- package/dist/index.node.js +12 -2
- package/dist/index.node.js.map +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +39 -1
- package/dist/node.js.map +1 -1
- package/dist/platform/browser.cjs +152 -0
- package/dist/platform/browser.cjs.map +1 -1
- package/dist/platform/browser.d.ts +232 -12
- package/dist/platform/browser.js +152 -0
- package/dist/platform/browser.js.map +1 -1
- package/dist/platform/interface.cjs.map +1 -1
- package/dist/platform/interface.d.ts +283 -90
- package/dist/platform/node.cjs +155 -0
- package/dist/platform/node.cjs.map +1 -1
- package/dist/platform/node.d.ts +69 -6
- package/dist/platform/node.js +155 -0
- package/dist/platform/node.js.map +1 -1
- package/dist/server/relayerHandler.cjs +218 -0
- package/dist/server/relayerHandler.cjs.map +1 -0
- package/dist/server/relayerHandler.d.ts +36 -0
- package/dist/server/relayerHandler.js +194 -0
- package/dist/server/relayerHandler.js.map +1 -0
- package/dist/storage/manager.cjs +108 -25
- package/dist/storage/manager.cjs.map +1 -1
- package/dist/storage/manager.d.ts +119 -25
- package/dist/storage/manager.js +108 -25
- package/dist/storage/manager.js.map +1 -1
- package/dist/storage/providers/callback-storage.cjs +86 -15
- package/dist/storage/providers/callback-storage.cjs.map +1 -1
- package/dist/storage/providers/callback-storage.d.ts +109 -20
- package/dist/storage/providers/callback-storage.js +86 -15
- package/dist/storage/providers/callback-storage.js.map +1 -1
- package/dist/storage/providers/pinata.cjs.map +1 -1
- package/dist/storage/providers/pinata.d.ts +12 -14
- package/dist/storage/providers/pinata.js.map +1 -1
- package/dist/tests/factories/mockFactory.d.ts +6 -6
- package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +2 -2
- package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
- package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
- package/dist/tests/read-only-mode.test.d.ts +1 -0
- package/dist/tests/relayer-integration.test.d.ts +1 -0
- package/dist/tests/relayer-unified.test.d.ts +1 -0
- package/dist/tests/server-relayer-handler.test.d.ts +1 -0
- package/dist/types/blockchain.cjs.map +1 -1
- package/dist/types/blockchain.d.ts +39 -11
- package/dist/types/chains.cjs.map +1 -1
- package/dist/types/chains.d.ts +74 -7
- package/dist/types/chains.js.map +1 -1
- package/dist/types/config.cjs +10 -0
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.ts +185 -220
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/contracts.cjs.map +1 -1
- package/dist/types/contracts.d.ts +71 -7
- package/dist/types/controller-context.cjs.map +1 -1
- package/dist/types/controller-context.d.ts +8 -5
- package/dist/types/data.cjs.map +1 -1
- package/dist/types/data.d.ts +75 -6
- package/dist/types/generics.cjs.map +1 -1
- package/dist/types/generics.d.ts +80 -9
- package/dist/types/index.cjs +4 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +29 -4
- package/dist/types/index.js +9 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.ts +132 -15
- package/dist/types/operations.js.map +1 -1
- package/dist/types/permissions.cjs.map +1 -1
- package/dist/types/permissions.d.ts +15 -20
- package/dist/types/personal.cjs.map +1 -1
- package/dist/types/personal.d.ts +131 -14
- package/dist/types/relayer.cjs.map +1 -1
- package/dist/types/relayer.d.ts +262 -35
- package/dist/types/storage.cjs.map +1 -1
- package/dist/types/storage.d.ts +9 -21
- package/dist/types/storage.js.map +1 -1
- package/dist/types/utils.cjs.map +1 -1
- package/dist/types/utils.d.ts +5 -1
- package/dist/utils/blockchain/registry.cjs +2 -2
- package/dist/utils/blockchain/registry.cjs.map +1 -1
- package/dist/utils/blockchain/registry.d.ts +1 -1
- package/dist/utils/blockchain/registry.js +2 -2
- package/dist/utils/blockchain/registry.js.map +1 -1
- package/dist/utils/grantFiles.cjs.map +1 -1
- package/dist/utils/grantFiles.d.ts +10 -20
- package/dist/utils/grantFiles.js.map +1 -1
- package/dist/utils/grantValidation.cjs.map +1 -1
- package/dist/utils/grantValidation.d.ts +95 -16
- package/dist/utils/grantValidation.js.map +1 -1
- package/dist/utils/grants.cjs.map +1 -1
- package/dist/utils/grants.d.ts +94 -13
- package/dist/utils/grants.js.map +1 -1
- package/dist/utils/lazy-import.cjs.map +1 -1
- package/dist/utils/lazy-import.d.ts +32 -7
- package/dist/utils/lazy-import.js.map +1 -1
- package/dist/utils/signatureCache.cjs +8 -2
- package/dist/utils/signatureCache.cjs.map +1 -1
- package/dist/utils/signatureCache.d.ts +49 -8
- package/dist/utils/signatureCache.js +8 -2
- package/dist/utils/signatureCache.js.map +1 -1
- package/dist/utils/transactionHelpers.cjs.map +1 -1
- package/dist/utils/transactionHelpers.d.ts +12 -12
- package/dist/utils/transactionHelpers.js.map +1 -1
- package/dist/utils/typedDataConverter.cjs.map +1 -1
- package/dist/utils/typedDataConverter.d.ts +39 -3
- package/dist/utils/typedDataConverter.js.map +1 -1
- package/dist/utils/urlResolver.cjs +7 -0
- package/dist/utils/urlResolver.cjs.map +1 -1
- package/dist/utils/urlResolver.d.ts +22 -4
- package/dist/utils/urlResolver.js +7 -0
- package/dist/utils/urlResolver.js.map +1 -1
- package/dist/utils/wallet.cjs +63 -0
- package/dist/utils/wallet.cjs.map +1 -0
- package/dist/utils/wallet.d.ts +94 -0
- package/dist/utils/wallet.js +37 -0
- package/dist/utils/wallet.js.map +1 -0
- package/package.json +1 -1
- package/dist/server/handler.cjs +0 -101
- package/dist/server/handler.cjs.map +0 -1
- package/dist/server/handler.d.ts +0 -87
- package/dist/server/handler.js +0 -77
- package/dist/server/handler.js.map +0 -1
- /package/dist/{tests/server-handler.test.d.ts → config/default-services.test.d.ts} +0 -0
package/dist/browser.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/browser.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"sources":["../src/browser.ts"],"sourcesContent":["/**\n * Browser-specific entry point for the Vana SDK.\n *\n * @remarks\n * This module provides the browser implementation of the Vana SDK,\n * optimized for web applications and browser environments. It includes\n * platform-specific implementations using Web APIs for cryptography,\n * storage, and networking operations.\n *\n * Import this module when building web applications:\n * ```typescript\n * import { BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';\n * ```\n *\n * Features:\n * - Web Crypto API for encryption operations\n * - SessionStorage for caching\n * - Fetch API for HTTP requests\n * - Optimized bundle size for browser deployment\n *\n * @example\n * ```typescript\n * // In a React/Vue/Angular application\n * import { BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';\n * import { Vana } from '@opendatalabs/vana-sdk-experimental';\n *\n * const vana = new Vana({\n * platform: new BrowserPlatformAdapter(),\n * network: 'moksha'\n * });\n * ```\n *\n * @category Browser\n * @module browser\n */\nexport { BrowserPlatformAdapter } from \"./platform/browser\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCA,qBAAuC;","names":[]}
|
package/dist/browser.d.ts
CHANGED
|
@@ -1,4 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Browser-specific entry point for the Vana SDK.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This module provides the browser implementation of the Vana SDK,
|
|
6
|
+
* optimized for web applications and browser environments. It includes
|
|
7
|
+
* platform-specific implementations using Web APIs for cryptography,
|
|
8
|
+
* storage, and networking operations.
|
|
9
|
+
*
|
|
10
|
+
* Import this module when building web applications:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Web Crypto API for encryption operations
|
|
17
|
+
* - SessionStorage for caching
|
|
18
|
+
* - Fetch API for HTTP requests
|
|
19
|
+
* - Optimized bundle size for browser deployment
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // In a React/Vue/Angular application
|
|
24
|
+
* import { BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';
|
|
25
|
+
* import { Vana } from '@opendatalabs/vana-sdk-experimental';
|
|
26
|
+
*
|
|
27
|
+
* const vana = new Vana({
|
|
28
|
+
* platform: new BrowserPlatformAdapter(),
|
|
29
|
+
* network: 'moksha'
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @category Browser
|
|
34
|
+
* @module browser
|
|
3
35
|
*/
|
|
4
36
|
export { BrowserPlatformAdapter } from "./platform/browser";
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/browser.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"sources":["../src/browser.ts"],"sourcesContent":["/**\n * Browser-specific entry point for the Vana SDK.\n *\n * @remarks\n * This module provides the browser implementation of the Vana SDK,\n * optimized for web applications and browser environments. It includes\n * platform-specific implementations using Web APIs for cryptography,\n * storage, and networking operations.\n *\n * Import this module when building web applications:\n * ```typescript\n * import { BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';\n * ```\n *\n * Features:\n * - Web Crypto API for encryption operations\n * - SessionStorage for caching\n * - Fetch API for HTTP requests\n * - Optimized bundle size for browser deployment\n *\n * @example\n * ```typescript\n * // In a React/Vue/Angular application\n * import { BrowserPlatformAdapter } from '@opendatalabs/vana-sdk/browser';\n * import { Vana } from '@opendatalabs/vana-sdk-experimental';\n *\n * const vana = new Vana({\n * platform: new BrowserPlatformAdapter(),\n * network: 'moksha'\n * });\n * ```\n *\n * @category Browser\n * @module browser\n */\nexport { BrowserPlatformAdapter } from \"./platform/browser\";\n"],"mappings":"AAmCA,SAAS,8BAA8B;","names":[]}
|
|
@@ -25,6 +25,7 @@ __export(definitions_exports, {
|
|
|
25
25
|
vanaMainnet: () => vanaMainnet
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(definitions_exports);
|
|
28
|
+
var import_default_services = require("../config/default-services");
|
|
28
29
|
const vanaMainnet = {
|
|
29
30
|
id: 1480,
|
|
30
31
|
name: "Vana",
|
|
@@ -35,16 +36,17 @@ const vanaMainnet = {
|
|
|
35
36
|
},
|
|
36
37
|
rpcUrls: {
|
|
37
38
|
default: {
|
|
38
|
-
http: [
|
|
39
|
+
http: [import_default_services.mainnetServices.rpcUrl]
|
|
39
40
|
}
|
|
40
41
|
},
|
|
41
42
|
blockExplorers: {
|
|
42
43
|
default: {
|
|
43
44
|
name: "Vanascan",
|
|
44
|
-
url:
|
|
45
|
+
url: import_default_services.mainnetServices.blockExplorerUrl
|
|
45
46
|
}
|
|
46
47
|
},
|
|
47
|
-
subgraphUrl:
|
|
48
|
+
subgraphUrl: import_default_services.mainnetServices.subgraphUrl,
|
|
49
|
+
personalServerUrl: import_default_services.mainnetServices.personalServerUrl
|
|
48
50
|
};
|
|
49
51
|
const moksha = {
|
|
50
52
|
id: 14800,
|
|
@@ -56,16 +58,17 @@ const moksha = {
|
|
|
56
58
|
},
|
|
57
59
|
rpcUrls: {
|
|
58
60
|
default: {
|
|
59
|
-
http: [
|
|
61
|
+
http: [import_default_services.mokshaServices.rpcUrl]
|
|
60
62
|
}
|
|
61
63
|
},
|
|
62
64
|
blockExplorers: {
|
|
63
65
|
default: {
|
|
64
66
|
name: "Vanascan - Moksha",
|
|
65
|
-
url:
|
|
67
|
+
url: import_default_services.mokshaServices.blockExplorerUrl
|
|
66
68
|
}
|
|
67
69
|
},
|
|
68
|
-
subgraphUrl:
|
|
70
|
+
subgraphUrl: import_default_services.mokshaServices.subgraphUrl,
|
|
71
|
+
personalServerUrl: import_default_services.mokshaServices.personalServerUrl
|
|
69
72
|
};
|
|
70
73
|
function getChainConfig(chainId) {
|
|
71
74
|
switch (chainId) {
|
|
@@ -1 +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: [
|
|
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\";\nimport { mainnetServices, mokshaServices } from \"../config/default-services\";\n\nexport interface VanaChainConfig extends Chain {\n /** URL for the subgraph API endpoint used to query on-chain data */\n subgraphUrl: string;\n /** URL for the personal server used for computation operations */\n personalServerUrl: 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: [mainnetServices.rpcUrl],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan\",\n url: mainnetServices.blockExplorerUrl,\n },\n },\n subgraphUrl: mainnetServices.subgraphUrl,\n personalServerUrl: mainnetServices.personalServerUrl,\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: [mokshaServices.rpcUrl],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan - Moksha\",\n url: mokshaServices.blockExplorerUrl,\n },\n },\n subgraphUrl: mokshaServices.subgraphUrl,\n personalServerUrl: mokshaServices.personalServerUrl,\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;AAQA,8BAAgD;AAYzC,MAAM,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,wCAAgB,MAAM;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK,wCAAgB;AAAA,IACvB;AAAA,EACF;AAAA,EACA,aAAa,wCAAgB;AAAA,EAC7B,mBAAmB,wCAAgB;AACrC;AAKO,MAAM,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,uCAAe,MAAM;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK,uCAAe;AAAA,IACtB;AAAA,EACF;AAAA,EACA,aAAa,uCAAe;AAAA,EAC5B,mBAAmB,uCAAe;AACpC;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,MAAM,gBAAgB;AAetB,SAAS,eAAkC;AAChD,SAAO,CAAC,aAAa,MAAM;AAC7B;","names":[]}
|
|
@@ -8,6 +8,8 @@ import type { Chain } from "viem";
|
|
|
8
8
|
export interface VanaChainConfig extends Chain {
|
|
9
9
|
/** URL for the subgraph API endpoint used to query on-chain data */
|
|
10
10
|
subgraphUrl: string;
|
|
11
|
+
/** URL for the personal server used for computation operations */
|
|
12
|
+
personalServerUrl: string;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* Vana Mainnet configuration
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mainnetServices, mokshaServices } from "../config/default-services";
|
|
1
2
|
const vanaMainnet = {
|
|
2
3
|
id: 1480,
|
|
3
4
|
name: "Vana",
|
|
@@ -8,16 +9,17 @@ const vanaMainnet = {
|
|
|
8
9
|
},
|
|
9
10
|
rpcUrls: {
|
|
10
11
|
default: {
|
|
11
|
-
http: [
|
|
12
|
+
http: [mainnetServices.rpcUrl]
|
|
12
13
|
}
|
|
13
14
|
},
|
|
14
15
|
blockExplorers: {
|
|
15
16
|
default: {
|
|
16
17
|
name: "Vanascan",
|
|
17
|
-
url:
|
|
18
|
+
url: mainnetServices.blockExplorerUrl
|
|
18
19
|
}
|
|
19
20
|
},
|
|
20
|
-
subgraphUrl:
|
|
21
|
+
subgraphUrl: mainnetServices.subgraphUrl,
|
|
22
|
+
personalServerUrl: mainnetServices.personalServerUrl
|
|
21
23
|
};
|
|
22
24
|
const moksha = {
|
|
23
25
|
id: 14800,
|
|
@@ -29,16 +31,17 @@ const moksha = {
|
|
|
29
31
|
},
|
|
30
32
|
rpcUrls: {
|
|
31
33
|
default: {
|
|
32
|
-
http: [
|
|
34
|
+
http: [mokshaServices.rpcUrl]
|
|
33
35
|
}
|
|
34
36
|
},
|
|
35
37
|
blockExplorers: {
|
|
36
38
|
default: {
|
|
37
39
|
name: "Vanascan - Moksha",
|
|
38
|
-
url:
|
|
40
|
+
url: mokshaServices.blockExplorerUrl
|
|
39
41
|
}
|
|
40
42
|
},
|
|
41
|
-
subgraphUrl:
|
|
43
|
+
subgraphUrl: mokshaServices.subgraphUrl,
|
|
44
|
+
personalServerUrl: mokshaServices.personalServerUrl
|
|
42
45
|
};
|
|
43
46
|
function getChainConfig(chainId) {
|
|
44
47
|
switch (chainId) {
|
|
@@ -1 +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: [
|
|
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\";\nimport { mainnetServices, mokshaServices } from \"../config/default-services\";\n\nexport interface VanaChainConfig extends Chain {\n /** URL for the subgraph API endpoint used to query on-chain data */\n subgraphUrl: string;\n /** URL for the personal server used for computation operations */\n personalServerUrl: 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: [mainnetServices.rpcUrl],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan\",\n url: mainnetServices.blockExplorerUrl,\n },\n },\n subgraphUrl: mainnetServices.subgraphUrl,\n personalServerUrl: mainnetServices.personalServerUrl,\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: [mokshaServices.rpcUrl],\n },\n },\n blockExplorers: {\n default: {\n name: \"Vanascan - Moksha\",\n url: mokshaServices.blockExplorerUrl,\n },\n },\n subgraphUrl: mokshaServices.subgraphUrl,\n personalServerUrl: mokshaServices.personalServerUrl,\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":"AAQA,SAAS,iBAAiB,sBAAsB;AAYzC,MAAM,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,gBAAgB,MAAM;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK,gBAAgB;AAAA,IACvB;AAAA,EACF;AAAA,EACA,aAAa,gBAAgB;AAAA,EAC7B,mBAAmB,gBAAgB;AACrC;AAKO,MAAM,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,eAAe,MAAM;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,MAAM;AAAA,MACN,KAAK,eAAe;AAAA,IACtB;AAAA,EACF;AAAA,EACA,aAAa,eAAe;AAAA,EAC5B,mBAAmB,eAAe;AACpC;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,MAAM,gBAAgB;AAetB,SAAS,eAAkC;AAChD,SAAO,CAAC,aAAa,MAAM;AAC7B;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n * Provides chain configurations for the Vana network ecosystem.\n *\n * @remarks\n * This module exports all chain definitions and utilities needed to connect\n * to Vana networks. It includes configurations for mainnet and testnet\n * environments with their respective RPC endpoints, contract addresses,\n * and network parameters.\n *\n * Available networks:\n * - **Vana Mainnet** (chainId: 1480) - Production network\n * - **Moksha Testnet** (chainId: 14800) - Test network\n *\n * @example\n * ```typescript\n * import { moksha, vanaMainnet, getChainConfig } from '@opendatalabs/vana-sdk/chains';\n * import { createPublicClient, http } from 'viem';\n *\n * // Connect to moksha testnet\n * const client = createPublicClient({\n * chain: moksha,\n * transport: http()\n * });\n *\n * // Get chain config by ID\n * const config = getChainConfig(14800);\n * console.log(config?.name); // \"Moksha Testnet\"\n * ```\n *\n * @category Chains\n * @module chains\n */\n\nexport type { VanaChainConfig } from \"./definitions\";\nexport {\n vanaMainnet,\n moksha,\n mokshaTestnet,\n getChainConfig,\n getAllChains,\n} from \"./definitions\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCA,yBAMO;","names":[]}
|
package/dist/chains/index.d.ts
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Provides chain configurations for the Vana network ecosystem.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This module exports all chain definitions and utilities needed to connect
|
|
6
|
+
* to Vana networks. It includes configurations for mainnet and testnet
|
|
7
|
+
* environments with their respective RPC endpoints, contract addresses,
|
|
8
|
+
* and network parameters.
|
|
9
|
+
*
|
|
10
|
+
* Available networks:
|
|
11
|
+
* - **Vana Mainnet** (chainId: 1480) - Production network
|
|
12
|
+
* - **Moksha Testnet** (chainId: 14800) - Test network
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { moksha, vanaMainnet, getChainConfig } from '@opendatalabs/vana-sdk/chains';
|
|
17
|
+
* import { createPublicClient, http } from 'viem';
|
|
18
|
+
*
|
|
19
|
+
* // Connect to moksha testnet
|
|
20
|
+
* const client = createPublicClient({
|
|
21
|
+
* chain: moksha,
|
|
22
|
+
* transport: http()
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Get chain config by ID
|
|
26
|
+
* const config = getChainConfig(14800);
|
|
27
|
+
* console.log(config?.name); // "Moksha Testnet"
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @category Chains
|
|
31
|
+
* @module chains
|
|
3
32
|
*/
|
|
4
33
|
export type { VanaChainConfig } from "./definitions";
|
|
5
34
|
export { vanaMainnet, moksha, mokshaTestnet, getChainConfig, getAllChains, } from "./definitions";
|
package/dist/chains/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/chains/index.ts"],"sourcesContent":["/**\n * Provides chain configurations for the Vana network ecosystem.\n *\n * @remarks\n * This module exports all chain definitions and utilities needed to connect\n * to Vana networks. It includes configurations for mainnet and testnet\n * environments with their respective RPC endpoints, contract addresses,\n * and network parameters.\n *\n * Available networks:\n * - **Vana Mainnet** (chainId: 1480) - Production network\n * - **Moksha Testnet** (chainId: 14800) - Test network\n *\n * @example\n * ```typescript\n * import { moksha, vanaMainnet, getChainConfig } from '@opendatalabs/vana-sdk/chains';\n * import { createPublicClient, http } from 'viem';\n *\n * // Connect to moksha testnet\n * const client = createPublicClient({\n * chain: moksha,\n * transport: http()\n * });\n *\n * // Get chain config by ID\n * const config = getChainConfig(14800);\n * console.log(config?.name); // \"Moksha Testnet\"\n * ```\n *\n * @category Chains\n * @module chains\n */\n\nexport type { VanaChainConfig } from \"./definitions\";\nexport {\n vanaMainnet,\n moksha,\n mokshaTestnet,\n getChainConfig,\n getAllChains,\n} from \"./definitions\";\n"],"mappings":"AAkCA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/chains.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/config/chains.ts"],"sourcesContent":["/**\n * Defines the supported Vana blockchain networks and their configurations.\n *\n * @remarks\n * This module provides the canonical chain definitions for the Vana protocol.\n * Each chain configuration includes RPC endpoints, block explorers, and network\n * metadata required for SDK operations. Use these definitions when configuring\n * wallet clients or checking network compatibility.\n *\n * @category Blockchain\n * @module chains\n */\n\nimport type { Abi, Chain } from \"viem\";\nimport { defineChain } from \"viem\";\n\n/**\n * Moksha testnet configuration for development and testing.\n *\n * @remarks\n * The Moksha testnet is Vana's primary test network for application development.\n * It provides a safe environment for testing smart contracts and SDK features\n * before mainnet deployment. Test VANA tokens can be obtained from the faucet.\n *\n * **Network Details:**\n * - Chain ID: 14800\n * - Currency: Test VANA (18 decimals)\n * - RPC: https://rpc.moksha.vana.org\n * - Explorer: https://moksha.vanascan.io\n *\n * @example\n * ```typescript\n * import { createWalletClient, http } from 'viem';\n * import { mokshaTestnet } from '@opendatalabs/vana-sdk';\n *\n * const client = createWalletClient({\n * chain: mokshaTestnet,\n * transport: http()\n * });\n * ```\n *\n * @category Blockchain\n */\nexport const mokshaTestnet = defineChain({\n id: 14800,\n caipNetworkId: \"eip155:14800\",\n chainNamespace: \"eip155\",\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 url: \"https://moksha.vanascan.io\",\n name: \"Vanascan - Moksha\",\n },\n blockscout: {\n url: \"https://moksha.vanascan.io\",\n name: \"Vanascan - Moksha\",\n },\n },\n contracts: {},\n abis: {},\n});\n\n/**\n * Vana mainnet configuration for production deployments.\n *\n * @remarks\n * The Vana mainnet is the production network where real value transactions occur.\n * Use this chain for production applications after thorough testing on Moksha.\n * Requires real VANA tokens for gas fees and transactions.\n *\n * **Network Details:**\n * - Chain ID: 1480\n * - Currency: VANA (18 decimals)\n * - RPC: https://rpc.vana.org\n * - Explorer: https://vanascan.io\n *\n * @example\n * ```typescript\n * import { createWalletClient, http } from 'viem';\n * import { vanaMainnet } from '@opendatalabs/vana-sdk';\n *\n * const client = createWalletClient({\n * chain: vanaMainnet,\n * transport: http()\n * });\n * ```\n *\n * @category Blockchain\n */\nexport const vanaMainnet = defineChain({\n id: 1480,\n caipNetworkId: \"eip155:1480\",\n chainNamespace: \"eip155\",\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 url: \"https://vanascan.io\",\n name: \"Vanascan\",\n },\n blockscout: {\n url: \"https://vanascan.io\",\n name: \"Vanascan\",\n },\n },\n contracts: {},\n abis: {},\n});\n\n/**\n * Maps chain IDs to their complete configurations with optional ABIs.\n *\n * @remarks\n * Extends viem's Chain type to include optional contract ABIs for each network.\n * This allows dynamic chain selection based on runtime configuration.\n *\n * @category Blockchain\n */\nexport interface Chains {\n [key: number]: Chain & { abis?: Record<string, Abi> };\n}\n\n/**\n * Registry of all supported Vana chains indexed by chain ID.\n *\n * @remarks\n * Provides runtime access to chain configurations for dynamic network selection.\n * Use this when you need to select chains based on user input or environment variables.\n *\n * @example\n * ```typescript\n * const chainId = parseInt(process.env.CHAIN_ID || '14800');\n * const chain = chains[chainId];\n *\n * if (!chain) {\n * throw new Error(`Unsupported chain ID: ${chainId}`);\n * }\n *\n * const client = createPublicClient({\n * chain,\n * transport: http()\n * });\n * ```\n *\n * @category Blockchain\n */\nexport const chains: Chains = {\n [mokshaTestnet.id]: mokshaTestnet,\n [vanaMainnet.id]: vanaMainnet,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,kBAA4B;AA6BrB,MAAM,oBAAgB,yBAAY;AAAA,EACvC,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,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,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,YAAY;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,MAAM,CAAC;AACT,CAAC;AA6BM,MAAM,kBAAc,yBAAY;AAAA,EACrC,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,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,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,YAAY;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,MAAM,CAAC;AACT,CAAC;AAuCM,MAAM,SAAiB;AAAA,EAC5B,CAAC,cAAc,EAAE,GAAG;AAAA,EACpB,CAAC,YAAY,EAAE,GAAG;AACpB;","names":[]}
|
package/dist/config/chains.d.ts
CHANGED
|
@@ -1,4 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the supported Vana blockchain networks and their configurations.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This module provides the canonical chain definitions for the Vana protocol.
|
|
6
|
+
* Each chain configuration includes RPC endpoints, block explorers, and network
|
|
7
|
+
* metadata required for SDK operations. Use these definitions when configuring
|
|
8
|
+
* wallet clients or checking network compatibility.
|
|
9
|
+
*
|
|
10
|
+
* @category Blockchain
|
|
11
|
+
* @module chains
|
|
12
|
+
*/
|
|
1
13
|
import type { Abi, Chain } from "viem";
|
|
14
|
+
/**
|
|
15
|
+
* Moksha testnet configuration for development and testing.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* The Moksha testnet is Vana's primary test network for application development.
|
|
19
|
+
* It provides a safe environment for testing smart contracts and SDK features
|
|
20
|
+
* before mainnet deployment. Test VANA tokens can be obtained from the faucet.
|
|
21
|
+
*
|
|
22
|
+
* **Network Details:**
|
|
23
|
+
* - Chain ID: 14800
|
|
24
|
+
* - Currency: Test VANA (18 decimals)
|
|
25
|
+
* - RPC: https://rpc.moksha.vana.org
|
|
26
|
+
* - Explorer: https://moksha.vanascan.io
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { createWalletClient, http } from 'viem';
|
|
31
|
+
* import { mokshaTestnet } from '@opendatalabs/vana-sdk';
|
|
32
|
+
*
|
|
33
|
+
* const client = createWalletClient({
|
|
34
|
+
* chain: mokshaTestnet,
|
|
35
|
+
* transport: http()
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @category Blockchain
|
|
40
|
+
*/
|
|
2
41
|
export declare const mokshaTestnet: {
|
|
3
42
|
blockExplorers: {
|
|
4
43
|
readonly default: {
|
|
@@ -36,6 +75,33 @@ export declare const mokshaTestnet: {
|
|
|
36
75
|
readonly chainNamespace: "eip155";
|
|
37
76
|
readonly abis: {};
|
|
38
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* Vana mainnet configuration for production deployments.
|
|
80
|
+
*
|
|
81
|
+
* @remarks
|
|
82
|
+
* The Vana mainnet is the production network where real value transactions occur.
|
|
83
|
+
* Use this chain for production applications after thorough testing on Moksha.
|
|
84
|
+
* Requires real VANA tokens for gas fees and transactions.
|
|
85
|
+
*
|
|
86
|
+
* **Network Details:**
|
|
87
|
+
* - Chain ID: 1480
|
|
88
|
+
* - Currency: VANA (18 decimals)
|
|
89
|
+
* - RPC: https://rpc.vana.org
|
|
90
|
+
* - Explorer: https://vanascan.io
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* import { createWalletClient, http } from 'viem';
|
|
95
|
+
* import { vanaMainnet } from '@opendatalabs/vana-sdk';
|
|
96
|
+
*
|
|
97
|
+
* const client = createWalletClient({
|
|
98
|
+
* chain: vanaMainnet,
|
|
99
|
+
* transport: http()
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @category Blockchain
|
|
104
|
+
*/
|
|
39
105
|
export declare const vanaMainnet: {
|
|
40
106
|
blockExplorers: {
|
|
41
107
|
readonly default: {
|
|
@@ -73,9 +139,42 @@ export declare const vanaMainnet: {
|
|
|
73
139
|
readonly chainNamespace: "eip155";
|
|
74
140
|
readonly abis: {};
|
|
75
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* Maps chain IDs to their complete configurations with optional ABIs.
|
|
144
|
+
*
|
|
145
|
+
* @remarks
|
|
146
|
+
* Extends viem's Chain type to include optional contract ABIs for each network.
|
|
147
|
+
* This allows dynamic chain selection based on runtime configuration.
|
|
148
|
+
*
|
|
149
|
+
* @category Blockchain
|
|
150
|
+
*/
|
|
76
151
|
export interface Chains {
|
|
77
152
|
[key: number]: Chain & {
|
|
78
153
|
abis?: Record<string, Abi>;
|
|
79
154
|
};
|
|
80
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Registry of all supported Vana chains indexed by chain ID.
|
|
158
|
+
*
|
|
159
|
+
* @remarks
|
|
160
|
+
* Provides runtime access to chain configurations for dynamic network selection.
|
|
161
|
+
* Use this when you need to select chains based on user input or environment variables.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* const chainId = parseInt(process.env.CHAIN_ID || '14800');
|
|
166
|
+
* const chain = chains[chainId];
|
|
167
|
+
*
|
|
168
|
+
* if (!chain) {
|
|
169
|
+
* throw new Error(`Unsupported chain ID: ${chainId}`);
|
|
170
|
+
* }
|
|
171
|
+
*
|
|
172
|
+
* const client = createPublicClient({
|
|
173
|
+
* chain,
|
|
174
|
+
* transport: http()
|
|
175
|
+
* });
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* @category Blockchain
|
|
179
|
+
*/
|
|
81
180
|
export declare const chains: Chains;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/chains.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/config/chains.ts"],"sourcesContent":["/**\n * Defines the supported Vana blockchain networks and their configurations.\n *\n * @remarks\n * This module provides the canonical chain definitions for the Vana protocol.\n * Each chain configuration includes RPC endpoints, block explorers, and network\n * metadata required for SDK operations. Use these definitions when configuring\n * wallet clients or checking network compatibility.\n *\n * @category Blockchain\n * @module chains\n */\n\nimport type { Abi, Chain } from \"viem\";\nimport { defineChain } from \"viem\";\n\n/**\n * Moksha testnet configuration for development and testing.\n *\n * @remarks\n * The Moksha testnet is Vana's primary test network for application development.\n * It provides a safe environment for testing smart contracts and SDK features\n * before mainnet deployment. Test VANA tokens can be obtained from the faucet.\n *\n * **Network Details:**\n * - Chain ID: 14800\n * - Currency: Test VANA (18 decimals)\n * - RPC: https://rpc.moksha.vana.org\n * - Explorer: https://moksha.vanascan.io\n *\n * @example\n * ```typescript\n * import { createWalletClient, http } from 'viem';\n * import { mokshaTestnet } from '@opendatalabs/vana-sdk';\n *\n * const client = createWalletClient({\n * chain: mokshaTestnet,\n * transport: http()\n * });\n * ```\n *\n * @category Blockchain\n */\nexport const mokshaTestnet = defineChain({\n id: 14800,\n caipNetworkId: \"eip155:14800\",\n chainNamespace: \"eip155\",\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 url: \"https://moksha.vanascan.io\",\n name: \"Vanascan - Moksha\",\n },\n blockscout: {\n url: \"https://moksha.vanascan.io\",\n name: \"Vanascan - Moksha\",\n },\n },\n contracts: {},\n abis: {},\n});\n\n/**\n * Vana mainnet configuration for production deployments.\n *\n * @remarks\n * The Vana mainnet is the production network where real value transactions occur.\n * Use this chain for production applications after thorough testing on Moksha.\n * Requires real VANA tokens for gas fees and transactions.\n *\n * **Network Details:**\n * - Chain ID: 1480\n * - Currency: VANA (18 decimals)\n * - RPC: https://rpc.vana.org\n * - Explorer: https://vanascan.io\n *\n * @example\n * ```typescript\n * import { createWalletClient, http } from 'viem';\n * import { vanaMainnet } from '@opendatalabs/vana-sdk';\n *\n * const client = createWalletClient({\n * chain: vanaMainnet,\n * transport: http()\n * });\n * ```\n *\n * @category Blockchain\n */\nexport const vanaMainnet = defineChain({\n id: 1480,\n caipNetworkId: \"eip155:1480\",\n chainNamespace: \"eip155\",\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 url: \"https://vanascan.io\",\n name: \"Vanascan\",\n },\n blockscout: {\n url: \"https://vanascan.io\",\n name: \"Vanascan\",\n },\n },\n contracts: {},\n abis: {},\n});\n\n/**\n * Maps chain IDs to their complete configurations with optional ABIs.\n *\n * @remarks\n * Extends viem's Chain type to include optional contract ABIs for each network.\n * This allows dynamic chain selection based on runtime configuration.\n *\n * @category Blockchain\n */\nexport interface Chains {\n [key: number]: Chain & { abis?: Record<string, Abi> };\n}\n\n/**\n * Registry of all supported Vana chains indexed by chain ID.\n *\n * @remarks\n * Provides runtime access to chain configurations for dynamic network selection.\n * Use this when you need to select chains based on user input or environment variables.\n *\n * @example\n * ```typescript\n * const chainId = parseInt(process.env.CHAIN_ID || '14800');\n * const chain = chains[chainId];\n *\n * if (!chain) {\n * throw new Error(`Unsupported chain ID: ${chainId}`);\n * }\n *\n * const client = createPublicClient({\n * chain,\n * transport: http()\n * });\n * ```\n *\n * @category Blockchain\n */\nexport const chains: Chains = {\n [mokshaTestnet.id]: mokshaTestnet,\n [vanaMainnet.id]: vanaMainnet,\n};\n"],"mappings":"AAcA,SAAS,mBAAmB;AA6BrB,MAAM,gBAAgB,YAAY;AAAA,EACvC,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,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,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,YAAY;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,MAAM,CAAC;AACT,CAAC;AA6BM,MAAM,cAAc,YAAY;AAAA,EACrC,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,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,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,YAAY;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,MAAM,CAAC;AACT,CAAC;AAuCM,MAAM,SAAiB;AAAA,EAC5B,CAAC,cAAc,EAAE,GAAG;AAAA,EACpB,CAAC,YAAY,EAAE,GAAG;AACpB;","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
var default_services_exports = {};
|
|
20
|
+
__export(default_services_exports, {
|
|
21
|
+
getDefaultPersonalServerUrl: () => getDefaultPersonalServerUrl,
|
|
22
|
+
getServiceEndpoints: () => getServiceEndpoints,
|
|
23
|
+
mainnetServices: () => mainnetServices,
|
|
24
|
+
mokshaServices: () => mokshaServices
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(default_services_exports);
|
|
27
|
+
const mainnetServices = {
|
|
28
|
+
subgraphUrl: "https://vanagraph.io/v7",
|
|
29
|
+
blockExplorerUrl: "https://vanascan.io",
|
|
30
|
+
personalServerUrl: "https://server.vana.com",
|
|
31
|
+
rpcUrl: "https://rpc.vana.org"
|
|
32
|
+
};
|
|
33
|
+
const mokshaServices = {
|
|
34
|
+
subgraphUrl: "https://moksha.vanagraph.io/v7",
|
|
35
|
+
blockExplorerUrl: "https://moksha.vanascan.io",
|
|
36
|
+
personalServerUrl: "https://test.server.vana.com",
|
|
37
|
+
rpcUrl: "https://rpc.moksha.vana.org"
|
|
38
|
+
};
|
|
39
|
+
function getServiceEndpoints(chainId) {
|
|
40
|
+
switch (chainId) {
|
|
41
|
+
case 1480:
|
|
42
|
+
return mainnetServices;
|
|
43
|
+
case 14800:
|
|
44
|
+
return mokshaServices;
|
|
45
|
+
default:
|
|
46
|
+
return void 0;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function getDefaultPersonalServerUrl(chainId) {
|
|
50
|
+
const services = getServiceEndpoints(chainId);
|
|
51
|
+
return services?.personalServerUrl;
|
|
52
|
+
}
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
getDefaultPersonalServerUrl,
|
|
56
|
+
getServiceEndpoints,
|
|
57
|
+
mainnetServices,
|
|
58
|
+
mokshaServices
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=default-services.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/config/default-services.ts"],"sourcesContent":["/**\n * Default service endpoints for Vana networks\n *\n * Centralizes all default service URLs for different Vana networks.\n * These can be overridden during SDK initialization.\n */\n\nexport interface ServiceEndpoints {\n /** Subgraph API endpoint for querying on-chain data */\n subgraphUrl: string;\n /** Block explorer URL for viewing transactions and addresses */\n blockExplorerUrl: string;\n /** Personal server URL for computation operations */\n personalServerUrl: string;\n /** RPC URL for blockchain interactions */\n rpcUrl: string;\n}\n\n/**\n * Default service endpoints for Vana Mainnet (chain ID: 1480)\n */\nexport const mainnetServices: ServiceEndpoints = {\n subgraphUrl: \"https://vanagraph.io/v7\",\n blockExplorerUrl: \"https://vanascan.io\",\n personalServerUrl: \"https://server.vana.com\",\n rpcUrl: \"https://rpc.vana.org\",\n} as const;\n\n/**\n * Default service endpoints for Moksha Testnet (chain ID: 14800)\n */\nexport const mokshaServices: ServiceEndpoints = {\n subgraphUrl: \"https://moksha.vanagraph.io/v7\",\n blockExplorerUrl: \"https://moksha.vanascan.io\",\n personalServerUrl: \"https://test.server.vana.com\",\n rpcUrl: \"https://rpc.moksha.vana.org\",\n} as const;\n\n/**\n * Retrieves the default service endpoints for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns Service endpoints for the chain, or undefined if not supported\n * @example\n * ```typescript\n * const services = getServiceEndpoints(1480);\n * if (services) {\n * console.log('Personal server:', services.personalServerUrl);\n * console.log('Subgraph:', services.subgraphUrl);\n * }\n * ```\n */\nexport function getServiceEndpoints(\n chainId: number,\n): ServiceEndpoints | undefined {\n switch (chainId) {\n case 1480:\n return mainnetServices;\n case 14800:\n return mokshaServices;\n default:\n return undefined;\n }\n}\n\n/**\n * Gets the default personal server URL for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns The personal server URL for the chain, or undefined if not supported\n */\nexport function getDefaultPersonalServerUrl(\n chainId: number,\n): string | undefined {\n const services = getServiceEndpoints(chainId);\n return services?.personalServerUrl;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBO,MAAM,kBAAoC;AAAA,EAC/C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAKO,MAAM,iBAAmC;AAAA,EAC9C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAgBO,SAAS,oBACd,SAC8B;AAC9B,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAQO,SAAS,4BACd,SACoB;AACpB,QAAM,WAAW,oBAAoB,OAAO;AAC5C,SAAO,UAAU;AACnB;","names":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default service endpoints for Vana networks
|
|
3
|
+
*
|
|
4
|
+
* Centralizes all default service URLs for different Vana networks.
|
|
5
|
+
* These can be overridden during SDK initialization.
|
|
6
|
+
*/
|
|
7
|
+
export interface ServiceEndpoints {
|
|
8
|
+
/** Subgraph API endpoint for querying on-chain data */
|
|
9
|
+
subgraphUrl: string;
|
|
10
|
+
/** Block explorer URL for viewing transactions and addresses */
|
|
11
|
+
blockExplorerUrl: string;
|
|
12
|
+
/** Personal server URL for computation operations */
|
|
13
|
+
personalServerUrl: string;
|
|
14
|
+
/** RPC URL for blockchain interactions */
|
|
15
|
+
rpcUrl: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Default service endpoints for Vana Mainnet (chain ID: 1480)
|
|
19
|
+
*/
|
|
20
|
+
export declare const mainnetServices: ServiceEndpoints;
|
|
21
|
+
/**
|
|
22
|
+
* Default service endpoints for Moksha Testnet (chain ID: 14800)
|
|
23
|
+
*/
|
|
24
|
+
export declare const mokshaServices: ServiceEndpoints;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves the default service endpoints for a given chain ID
|
|
27
|
+
*
|
|
28
|
+
* @param chainId - The numeric chain ID
|
|
29
|
+
* @returns Service endpoints for the chain, or undefined if not supported
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const services = getServiceEndpoints(1480);
|
|
33
|
+
* if (services) {
|
|
34
|
+
* console.log('Personal server:', services.personalServerUrl);
|
|
35
|
+
* console.log('Subgraph:', services.subgraphUrl);
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function getServiceEndpoints(chainId: number): ServiceEndpoints | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the default personal server URL for a given chain ID
|
|
42
|
+
*
|
|
43
|
+
* @param chainId - The numeric chain ID
|
|
44
|
+
* @returns The personal server URL for the chain, or undefined if not supported
|
|
45
|
+
*/
|
|
46
|
+
export declare function getDefaultPersonalServerUrl(chainId: number): string | undefined;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const mainnetServices = {
|
|
2
|
+
subgraphUrl: "https://vanagraph.io/v7",
|
|
3
|
+
blockExplorerUrl: "https://vanascan.io",
|
|
4
|
+
personalServerUrl: "https://server.vana.com",
|
|
5
|
+
rpcUrl: "https://rpc.vana.org"
|
|
6
|
+
};
|
|
7
|
+
const mokshaServices = {
|
|
8
|
+
subgraphUrl: "https://moksha.vanagraph.io/v7",
|
|
9
|
+
blockExplorerUrl: "https://moksha.vanascan.io",
|
|
10
|
+
personalServerUrl: "https://test.server.vana.com",
|
|
11
|
+
rpcUrl: "https://rpc.moksha.vana.org"
|
|
12
|
+
};
|
|
13
|
+
function getServiceEndpoints(chainId) {
|
|
14
|
+
switch (chainId) {
|
|
15
|
+
case 1480:
|
|
16
|
+
return mainnetServices;
|
|
17
|
+
case 14800:
|
|
18
|
+
return mokshaServices;
|
|
19
|
+
default:
|
|
20
|
+
return void 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function getDefaultPersonalServerUrl(chainId) {
|
|
24
|
+
const services = getServiceEndpoints(chainId);
|
|
25
|
+
return services?.personalServerUrl;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
getDefaultPersonalServerUrl,
|
|
29
|
+
getServiceEndpoints,
|
|
30
|
+
mainnetServices,
|
|
31
|
+
mokshaServices
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=default-services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/config/default-services.ts"],"sourcesContent":["/**\n * Default service endpoints for Vana networks\n *\n * Centralizes all default service URLs for different Vana networks.\n * These can be overridden during SDK initialization.\n */\n\nexport interface ServiceEndpoints {\n /** Subgraph API endpoint for querying on-chain data */\n subgraphUrl: string;\n /** Block explorer URL for viewing transactions and addresses */\n blockExplorerUrl: string;\n /** Personal server URL for computation operations */\n personalServerUrl: string;\n /** RPC URL for blockchain interactions */\n rpcUrl: string;\n}\n\n/**\n * Default service endpoints for Vana Mainnet (chain ID: 1480)\n */\nexport const mainnetServices: ServiceEndpoints = {\n subgraphUrl: \"https://vanagraph.io/v7\",\n blockExplorerUrl: \"https://vanascan.io\",\n personalServerUrl: \"https://server.vana.com\",\n rpcUrl: \"https://rpc.vana.org\",\n} as const;\n\n/**\n * Default service endpoints for Moksha Testnet (chain ID: 14800)\n */\nexport const mokshaServices: ServiceEndpoints = {\n subgraphUrl: \"https://moksha.vanagraph.io/v7\",\n blockExplorerUrl: \"https://moksha.vanascan.io\",\n personalServerUrl: \"https://test.server.vana.com\",\n rpcUrl: \"https://rpc.moksha.vana.org\",\n} as const;\n\n/**\n * Retrieves the default service endpoints for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns Service endpoints for the chain, or undefined if not supported\n * @example\n * ```typescript\n * const services = getServiceEndpoints(1480);\n * if (services) {\n * console.log('Personal server:', services.personalServerUrl);\n * console.log('Subgraph:', services.subgraphUrl);\n * }\n * ```\n */\nexport function getServiceEndpoints(\n chainId: number,\n): ServiceEndpoints | undefined {\n switch (chainId) {\n case 1480:\n return mainnetServices;\n case 14800:\n return mokshaServices;\n default:\n return undefined;\n }\n}\n\n/**\n * Gets the default personal server URL for a given chain ID\n *\n * @param chainId - The numeric chain ID\n * @returns The personal server URL for the chain, or undefined if not supported\n */\nexport function getDefaultPersonalServerUrl(\n chainId: number,\n): string | undefined {\n const services = getServiceEndpoints(chainId);\n return services?.personalServerUrl;\n}\n"],"mappings":"AAqBO,MAAM,kBAAoC;AAAA,EAC/C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAKO,MAAM,iBAAmC;AAAA,EAC9C,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,QAAQ;AACV;AAgBO,SAAS,oBACd,SAC8B;AAC9B,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAQO,SAAS,4BACd,SACoB;AACpB,QAAM,WAAW,oBAAoB,OAAO;AAC5C,SAAO,UAAU;AACnB;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/contracts/contractController.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/contracts/contractController.ts"],"sourcesContent":["/**\n * Provides type-safe contract interaction utilities for the Vana protocol.\n *\n * @remarks\n * This module enables strongly-typed smart contract interactions with automatic\n * ABI loading, address resolution, and instance caching. It follows viem's patterns\n * for contract typing while providing Vana-specific conveniences.\n *\n * @category Contracts\n * @module contractController\n */\n\nimport type { Abi } from \"abitype\";\nimport {\n getContract,\n type GetContractReturnType,\n type PublicClient,\n type WalletClient,\n} from \"viem\";\nimport { type ContractAbis, getAbi, type VanaContract } from \"../generated/abi\";\nimport type { VanaChainId, ContractInfo } from \"../types/index\";\nimport { getContractAddress, CONTRACT_ADDRESSES } from \"../config/addresses\";\nimport { createClient } from \"../core/client\";\nimport { vanaMainnet } from \"../config/chains\";\n\n// Cache for contract instances - keyed by contract name and chain ID\nconst contractCache = new Map<string, GetContractReturnType<Abi>>();\n\n// Export cache for testing\nexport const contractCacheForTesting = contractCache;\n\n/**\n * Creates a cache key for contract instances.\n *\n * @remarks\n * Generates unique keys for caching contract instances per chain to prevent\n * cross-chain contamination and improve performance.\n *\n * @param contract - The contract name to create a cache key for\n * @param chainId - The chain ID to include in the cache key\n * @returns A string cache key combining contract name and chain ID\n *\n * @internal\n */\nfunction createCacheKey(contract: VanaContract, chainId: number): string {\n return `${contract}:${chainId}`;\n}\n\n/**\n * Gets a typed contract instance for the specified contract name.\n *\n * @remarks\n * Provides complete type safety following viem's patterns with automatic\n * ABI loading and address resolution. Contract instances are cached per\n * chain for performance. Use const assertion for full type inference.\n *\n * @param contract - Name of the contract to instantiate.\n * Use const assertion for full typing: `\"DataRegistry\" as const`\n * @param client - Optional viem client instance.\n * Defaults to auto-configured client. Obtain via `createClient()` or viem.\n * @returns A fully typed contract instance with methods corresponding to the contract's ABI\n *\n * @example\n * ```typescript\n * // Full type inference with const assertion\n * const dataRegistry = getContractController(\"DataRegistry\" as const, client);\n *\n * // Now dataRegistry has full type inference for all methods\n * const result = await dataRegistry.read.getFileCount(); // Type: bigint\n * await dataRegistry.write.addFile([url, proof]); // Typed parameters\n *\n * // Auto-configured client\n * const permissions = getContractController(\"DataPortabilityPermissions\" as const);\n * const granted = await permissions.read.hasPermission([grantor, grantee]);\n * ```\n *\n * @category Contracts\n */\nexport function getContractController<T extends VanaContract>(\n contract: T,\n client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient> = createClient(),\n): GetContractReturnType<ContractAbis[T]> {\n const chainId = client.chain?.id ?? vanaMainnet.id;\n const cacheKey = createCacheKey(contract, chainId);\n\n let controller = contractCache.get(cacheKey);\n\n if (!controller) {\n controller = getContract({\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n client,\n }) as GetContractReturnType<ContractAbis[T]>;\n\n contractCache.set(cacheKey, controller);\n }\n\n return controller as GetContractReturnType<ContractAbis[T]>;\n}\n\n/**\n * Gets contract information without creating a contract instance.\n *\n * @remarks\n * Returns contract address and ABI for manual contract interaction or\n * custom client configuration. Useful when you need contract details\n * but don't want to create a client connection.\n *\n * @param contract - Name of the contract.\n * Use const assertion for typed ABI.\n * @param chainId - Chain ID to get contract info for.\n * Defaults to Vana mainnet (1480).\n * @returns Contract information with typed ABI\n *\n * @example\n * ```typescript\n * const info = getContractInfo(\"DataRegistry\" as const, 14800);\n * console.log(info.address); // Typed as Address\n * console.log(info.abi); // Fully typed ABI\n *\n * // Use with custom viem client\n * const contract = getContract({\n * ...info,\n * client: customClient\n * });\n * ```\n *\n * @category Contracts\n */\nexport function getContractInfo<T extends VanaContract>(\n contract: T,\n chainId: VanaChainId = vanaMainnet.id as VanaChainId,\n): ContractInfo<ContractAbis[T]> {\n return {\n address: getContractAddress(chainId, contract),\n abi: getAbi(contract),\n };\n}\n\n/**\n * Provides type-safe contract factory for creating multiple contract instances.\n *\n * @remarks\n * Alternative API for applications that need to create multiple contracts\n * with the same client. The factory pattern reduces boilerplate and ensures\n * consistent client configuration across contracts.\n *\n * @example\n * ```typescript\n * const factory = new ContractFactory(client);\n *\n * const dataRegistry = factory.create(\"DataRegistry\" as const);\n * const permissions = factory.create(\"DataPortabilityPermissions\" as const);\n *\n * // List available contracts\n * const contracts = factory.getAvailableContracts();\n * ```\n *\n * @category Contracts\n */\nexport class ContractFactory {\n private readonly client:\n | PublicClient\n | WalletClient\n | ReturnType<typeof createClient>;\n private readonly chainId: number;\n\n constructor(\n client: PublicClient | WalletClient | ReturnType<typeof createClient>,\n ) {\n this.client = client;\n try {\n this.chainId = client.chain?.id ?? vanaMainnet.id;\n } catch {\n this.chainId = vanaMainnet.id;\n }\n }\n\n /**\n * Creates a typed contract instance\n *\n * @param contract - Contract name (use const assertion for full typing)\n * @returns Fully typed contract instance\n */\n create<T extends VanaContract>(\n contract: T,\n ): GetContractReturnType<ContractAbis[T]> {\n return getContractController(contract, this.client);\n }\n\n /**\n * Gets contract information without creating an instance\n *\n * @param contract - Contract name\n * @returns Contract information with typed ABI\n */\n getInfo<T extends VanaContract>(contract: T): ContractInfo<ContractAbis[T]> {\n return getContractInfo(contract, this.chainId as VanaChainId);\n }\n\n /**\n * Lists all available contracts for the current chain\n *\n * @returns Array of contract names available on this chain\n */\n getAvailableContracts(): VanaContract[] {\n // Return all contract names that have addresses on this chain\n const chainAddresses = CONTRACT_ADDRESSES[this.chainId];\n if (!chainAddresses) return [];\n\n return Object.keys(chainAddresses) as VanaContract[];\n }\n}\n\n/**\n * Clears the contract cache. Useful for testing or when chain configurations change.\n *\n * @param contract - Optional specific contract to clear, or clear all if not provided\n * @param chainId - Optional specific chain to clear, or clear all if not provided\n */\nexport function clearContractCache(\n contract?: VanaContract,\n chainId?: number,\n): void {\n if (contract && chainId) {\n const cacheKey = createCacheKey(contract, chainId);\n contractCache.delete(cacheKey);\n } else if (contract) {\n // Clear all instances of this contract across all chains\n for (const key of contractCache.keys()) {\n if (key.startsWith(`${contract}:`)) {\n contractCache.delete(key);\n }\n }\n } else if (chainId) {\n // Clear all contracts for this chain\n for (const key of contractCache.keys()) {\n if (key.endsWith(`:${chainId}`)) {\n contractCache.delete(key);\n }\n }\n } else {\n // Clear entire cache\n contractCache.clear();\n }\n}\n\n// Function is already exported above, no need for redundant export\n\n// Type-only exports for enhanced type safety\nexport type { GetContractReturnType } from \"viem\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,kBAKO;AACP,iBAA6D;AAE7D,uBAAuD;AACvD,oBAA6B;AAC7B,oBAA4B;AAG5B,MAAM,gBAAgB,oBAAI,IAAwC;AAG3D,MAAM,0BAA0B;AAevC,SAAS,eAAe,UAAwB,SAAyB;AACvE,SAAO,GAAG,QAAQ,IAAI,OAAO;AAC/B;AAgCO,SAAS,sBACd,UACA,aAGsC,4BAAa,GACX;AACxC,QAAM,UAAU,OAAO,OAAO,MAAM,0BAAY;AAChD,QAAM,WAAW,eAAe,UAAU,OAAO;AAEjD,MAAI,aAAa,cAAc,IAAI,QAAQ;AAE3C,MAAI,CAAC,YAAY;AACf,qBAAa,yBAAY;AAAA,MACvB,aAAS,qCAAmB,SAAS,QAAQ;AAAA,MAC7C,SAAK,mBAAO,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC;AAED,kBAAc,IAAI,UAAU,UAAU;AAAA,EACxC;AAEA,SAAO;AACT;AA+BO,SAAS,gBACd,UACA,UAAuB,0BAAY,IACJ;AAC/B,SAAO;AAAA,IACL,aAAS,qCAAmB,SAAS,QAAQ;AAAA,IAC7C,SAAK,mBAAO,QAAQ;AAAA,EACtB;AACF;AAuBO,MAAM,gBAAgB;AAAA,EACV;AAAA,EAIA;AAAA,EAEjB,YACE,QACA;AACA,SAAK,SAAS;AACd,QAAI;AACF,WAAK,UAAU,OAAO,OAAO,MAAM,0BAAY;AAAA,IACjD,QAAQ;AACN,WAAK,UAAU,0BAAY;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OACE,UACwC;AACxC,WAAO,sBAAsB,UAAU,KAAK,MAAM;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAgC,UAA4C;AAC1E,WAAO,gBAAgB,UAAU,KAAK,OAAsB;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,wBAAwC;AAEtC,UAAM,iBAAiB,oCAAmB,KAAK,OAAO;AACtD,QAAI,CAAC,eAAgB,QAAO,CAAC;AAE7B,WAAO,OAAO,KAAK,cAAc;AAAA,EACnC;AACF;AAQO,SAAS,mBACd,UACA,SACM;AACN,MAAI,YAAY,SAAS;AACvB,UAAM,WAAW,eAAe,UAAU,OAAO;AACjD,kBAAc,OAAO,QAAQ;AAAA,EAC/B,WAAW,UAAU;AAEnB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,GAAG;AAClC,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,WAAW,SAAS;AAElB,eAAW,OAAO,cAAc,KAAK,GAAG;AACtC,UAAI,IAAI,SAAS,IAAI,OAAO,EAAE,GAAG;AAC/B,sBAAc,OAAO,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,OAAO;AAEL,kBAAc,MAAM;AAAA,EACtB;AACF;","names":[]}
|