@kadi.build/deploy-ability 0.0.3 → 0.0.5

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 (110) hide show
  1. package/dist/targets/akash/bids.d.ts +183 -0
  2. package/dist/targets/akash/bids.d.ts.map +1 -0
  3. package/dist/targets/akash/bids.js +247 -0
  4. package/dist/targets/akash/bids.js.map +1 -0
  5. package/dist/targets/akash/certificate-manager.d.ts +89 -167
  6. package/dist/targets/akash/certificate-manager.d.ts.map +1 -1
  7. package/dist/targets/akash/certificate-manager.js +193 -301
  8. package/dist/targets/akash/certificate-manager.js.map +1 -1
  9. package/dist/targets/akash/client.d.ts +644 -0
  10. package/dist/targets/akash/client.d.ts.map +1 -0
  11. package/dist/targets/akash/client.js +972 -0
  12. package/dist/targets/akash/client.js.map +1 -0
  13. package/dist/targets/akash/constants.d.ts +12 -149
  14. package/dist/targets/akash/constants.d.ts.map +1 -1
  15. package/dist/targets/akash/constants.js +14 -136
  16. package/dist/targets/akash/constants.js.map +1 -1
  17. package/dist/targets/akash/deployer.d.ts +3 -82
  18. package/dist/targets/akash/deployer.d.ts.map +1 -1
  19. package/dist/targets/akash/deployer.js +122 -160
  20. package/dist/targets/akash/deployer.js.map +1 -1
  21. package/dist/targets/akash/environment.d.ts +16 -214
  22. package/dist/targets/akash/environment.d.ts.map +1 -1
  23. package/dist/targets/akash/environment.js +20 -210
  24. package/dist/targets/akash/environment.js.map +1 -1
  25. package/dist/targets/akash/index.d.ts +95 -189
  26. package/dist/targets/akash/index.d.ts.map +1 -1
  27. package/dist/targets/akash/index.js +69 -197
  28. package/dist/targets/akash/index.js.map +1 -1
  29. package/dist/targets/akash/lease-monitor.d.ts +3 -21
  30. package/dist/targets/akash/lease-monitor.d.ts.map +1 -1
  31. package/dist/targets/akash/lease-monitor.js +39 -56
  32. package/dist/targets/akash/lease-monitor.js.map +1 -1
  33. package/dist/targets/akash/logs.d.ts +103 -4
  34. package/dist/targets/akash/logs.d.ts.map +1 -1
  35. package/dist/targets/akash/logs.js +12 -3
  36. package/dist/targets/akash/logs.js.map +1 -1
  37. package/dist/targets/akash/pricing.d.ts +12 -191
  38. package/dist/targets/akash/pricing.d.ts.map +1 -1
  39. package/dist/targets/akash/pricing.js +12 -188
  40. package/dist/targets/akash/pricing.js.map +1 -1
  41. package/dist/targets/akash/provider-manager.d.ts +120 -0
  42. package/dist/targets/akash/provider-manager.d.ts.map +1 -0
  43. package/dist/targets/akash/provider-manager.js +574 -0
  44. package/dist/targets/akash/provider-manager.js.map +1 -0
  45. package/dist/targets/akash/sdl-generator.d.ts +2 -2
  46. package/dist/targets/akash/sdl-generator.d.ts.map +1 -1
  47. package/dist/targets/akash/sdl-generator.js +6 -39
  48. package/dist/targets/akash/sdl-generator.js.map +1 -1
  49. package/dist/targets/akash/types.d.ts +66 -243
  50. package/dist/targets/akash/types.d.ts.map +1 -1
  51. package/dist/targets/akash/types.js +4 -41
  52. package/dist/targets/akash/types.js.map +1 -1
  53. package/dist/targets/akash/wallet-manager.d.ts +35 -352
  54. package/dist/targets/akash/wallet-manager.d.ts.map +1 -1
  55. package/dist/targets/akash/wallet-manager.js +37 -439
  56. package/dist/targets/akash/wallet-manager.js.map +1 -1
  57. package/dist/targets/local/compose-generator.d.ts.map +1 -1
  58. package/dist/targets/local/compose-generator.js +1 -0
  59. package/dist/targets/local/compose-generator.js.map +1 -1
  60. package/dist/targets/local/deployer.js +4 -4
  61. package/dist/targets/local/deployer.js.map +1 -1
  62. package/dist/targets/local/types.d.ts +4 -0
  63. package/dist/targets/local/types.d.ts.map +1 -1
  64. package/dist/types/index.d.ts +1 -1
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/types/index.js.map +1 -1
  67. package/dist/types/options.d.ts +45 -4
  68. package/dist/types/options.d.ts.map +1 -1
  69. package/dist/utils/registry/manager.js +6 -6
  70. package/dist/utils/registry/manager.js.map +1 -1
  71. package/dist/utils/registry/setup.js +4 -4
  72. package/dist/utils/registry/setup.js.map +1 -1
  73. package/docs/KADI_ABILITY_CONVERSION.md +1365 -0
  74. package/docs/PIPELINE_BUILDER_DESIGN.md +1149 -0
  75. package/package.json +8 -11
  76. package/dist/targets/akash/bid-selectors.d.ts +0 -251
  77. package/dist/targets/akash/bid-selectors.d.ts.map +0 -1
  78. package/dist/targets/akash/bid-selectors.js +0 -322
  79. package/dist/targets/akash/bid-selectors.js.map +0 -1
  80. package/dist/targets/akash/bid-types.d.ts +0 -297
  81. package/dist/targets/akash/bid-types.d.ts.map +0 -1
  82. package/dist/targets/akash/bid-types.js +0 -89
  83. package/dist/targets/akash/bid-types.js.map +0 -1
  84. package/dist/targets/akash/blockchain-client.d.ts +0 -577
  85. package/dist/targets/akash/blockchain-client.d.ts.map +0 -1
  86. package/dist/targets/akash/blockchain-client.js +0 -803
  87. package/dist/targets/akash/blockchain-client.js.map +0 -1
  88. package/dist/targets/akash/logs.types.d.ts +0 -102
  89. package/dist/targets/akash/logs.types.d.ts.map +0 -1
  90. package/dist/targets/akash/logs.types.js +0 -9
  91. package/dist/targets/akash/logs.types.js.map +0 -1
  92. package/dist/targets/akash/provider-client.d.ts +0 -114
  93. package/dist/targets/akash/provider-client.d.ts.map +0 -1
  94. package/dist/targets/akash/provider-client.js +0 -318
  95. package/dist/targets/akash/provider-client.js.map +0 -1
  96. package/dist/targets/akash/provider-metadata.d.ts +0 -228
  97. package/dist/targets/akash/provider-metadata.d.ts.map +0 -1
  98. package/dist/targets/akash/provider-metadata.js +0 -14
  99. package/dist/targets/akash/provider-metadata.js.map +0 -1
  100. package/dist/targets/akash/provider-service.d.ts +0 -133
  101. package/dist/targets/akash/provider-service.d.ts.map +0 -1
  102. package/dist/targets/akash/provider-service.js +0 -391
  103. package/dist/targets/akash/provider-service.js.map +0 -1
  104. package/dist/targets/akash/query-client.d.ts +0 -125
  105. package/dist/targets/akash/query-client.d.ts.map +0 -1
  106. package/dist/targets/akash/query-client.js +0 -332
  107. package/dist/targets/akash/query-client.js.map +0 -1
  108. package/docs/EXAMPLES.md +0 -293
  109. package/docs/PLACEMENT.md +0 -433
  110. package/docs/STORAGE.md +0 -318
@@ -1,241 +1,43 @@
1
1
  /**
2
- * Akash Network Environment Configuration Module
2
+ * Akash Network Environment Configuration
3
3
  *
4
- * Provides pure, readonly configuration for Akash Network deployments.
4
+ * Pure, readonly configuration for Akash Network deployments.
5
5
  * NO file I/O, NO user prompts, NO environment variable loading.
6
6
  *
7
7
  * @module targets/akash/environment
8
8
  */
9
- /**
10
- * Akash network identifier
11
- *
12
- * - mainnet: Production network (real AKT tokens)
13
- * - testnet: Testing network (free test tokens)
14
- */
15
9
  export type AkashNetwork = 'mainnet' | 'testnet';
16
- /**
17
- * Network configuration for Akash blockchain
18
- *
19
- * Contains all data needed to connect to an Akash network:
20
- * - RPC endpoint for blockchain queries and transactions
21
- * - Chain ID for transaction signing
22
- *
23
- * @property rpc - RPC endpoint URL
24
- * @property chainId - Blockchain chain identifier
25
- */
10
+ /** Network configuration (RPC for transactions, REST for queries, chain ID) */
26
11
  export interface NetworkConfiguration {
27
- /** RPC endpoint URL (e.g., "https://rpc.akashnet.net:443") */
28
12
  readonly rpc: string;
29
- /** Chain ID (e.g., "akashnet-2" for mainnet) */
13
+ readonly rest: string;
30
14
  readonly chainId: string;
31
15
  }
32
- /**
33
- * Mainnet RPC endpoints for Akash Network
34
- *
35
- * Multiple endpoints provide redundancy and load distribution.
36
- * Clients can implement fallback logic if primary endpoint fails.
37
- *
38
- * Priority order (first is default):
39
- * 1. Official Akash RPC (rpc.akashnet.net)
40
- * 2. Forbole validator RPC
41
- * 3. Ecostake validator RPC
42
- * 4. Polkachu validator RPC
43
- * 5. Community RPC (c29r3)
44
- *
45
- * @example
46
- * ```typescript
47
- * // Use primary endpoint
48
- * const rpc = MAINNET_RPC_ENDPOINTS[0];
49
- *
50
- * // Implement fallback
51
- * for (const endpoint of MAINNET_RPC_ENDPOINTS) {
52
- * try {
53
- * const client = await StargateClient.connect(endpoint);
54
- * break; // Success
55
- * } catch {
56
- * continue; // Try next endpoint
57
- * }
58
- * }
59
- * ```
60
- */
16
+ /** Mainnet RPC endpoints (ordered by priority, first is default) */
61
17
  export declare const MAINNET_RPC_ENDPOINTS: readonly string[];
62
- /**
63
- * Testnet RPC endpoints for Akash Network
64
- *
65
- * Testnet is used for:
66
- * - Development and testing
67
- * - Learning without risking real tokens
68
- * - Integration testing before mainnet deployment
69
- *
70
- * @example
71
- * ```typescript
72
- * const rpc = TESTNET_RPC_ENDPOINTS[0];
73
- * const client = await StargateClient.connect(rpc);
74
- * ```
75
- */
18
+ /** Mainnet REST API endpoints (LCD - Light Client Daemon) */
19
+ export declare const MAINNET_REST_ENDPOINTS: readonly string[];
20
+ /** Testnet RPC endpoints */
76
21
  export declare const TESTNET_RPC_ENDPOINTS: readonly string[];
77
- /**
78
- * Akash network configuration mapping
79
- *
80
- * Immutable configuration for all supported Akash networks.
81
- * Used throughout the deployment process for:
82
- * - Blockchain queries and transactions
83
- * - Network-specific certificate validation
84
- * - Provider communication and bid evaluation
85
- *
86
- * Why as const?
87
- * - Ensures configuration cannot be accidentally modified
88
- * - Enables TypeScript to infer exact string literal types
89
- * - Catches typos at compile time (e.g., 'mainet' vs 'mainnet')
90
- *
91
- * @example
92
- * ```typescript
93
- * // Get network config
94
- * const network = AKASH_NETWORKS.mainnet;
95
- * console.log('RPC:', network.rpc);
96
- * console.log('Chain:', network.chainId);
97
- *
98
- * // Type-safe network selection
99
- * function getConfig(net: AkashNetwork) {
100
- * return AKASH_NETWORKS[net]; // Compile-time checked
101
- * }
102
- * ```
103
- */
22
+ /** Testnet REST API endpoints */
23
+ export declare const TESTNET_REST_ENDPOINTS: readonly string[];
24
+ /** Network configurations for mainnet and testnet */
104
25
  export declare const AKASH_NETWORKS: {
105
- /**
106
- * Mainnet configuration
107
- * - Real AKT tokens
108
- * - Production deployments
109
- * - Chain ID: akashnet-2
110
- */
111
26
  readonly mainnet: {
112
27
  readonly rpc: string;
28
+ readonly rest: string;
113
29
  readonly chainId: "akashnet-2";
114
30
  };
115
- /**
116
- * Testnet configuration
117
- * - Free test tokens from faucet
118
- * - Testing and development
119
- * - Chain ID: sandbox-01
120
- */
121
31
  readonly testnet: {
122
32
  readonly rpc: string;
33
+ readonly rest: string;
123
34
  readonly chainId: "sandbox-01";
124
35
  };
125
36
  };
126
- /**
127
- * Blacklisted provider addresses
128
- *
129
- * Providers in this set have shown unreliable behavior and should be
130
- * excluded from bid selection. Issues include:
131
- * - Failed deployments
132
- * - Unresponsive provider APIs
133
- * - Frequent downtime
134
- * - Poor performance
135
- *
136
- * This list is periodically updated based on community reports and
137
- * monitoring data.
138
- *
139
- * Implementation Note:
140
- * Using Set for O(1) lookup performance during bid filtering.
141
- *
142
- * @example
143
- * ```typescript
144
- * // Filter out blacklisted providers
145
- * const validBids = allBids.filter(bid =>
146
- * !BLACKLISTED_PROVIDERS.has(bid.provider)
147
- * );
148
- *
149
- * // Check if specific provider is blacklisted
150
- * if (BLACKLISTED_PROVIDERS.has(providerAddress)) {
151
- * console.log('Skipping blacklisted provider');
152
- * }
153
- * ```
154
- */
155
- export declare const BLACKLISTED_PROVIDERS: ReadonlySet<string>;
156
- /**
157
- * Get network configuration for specified Akash network
158
- *
159
- * Pure function that returns network configuration.
160
- * No side effects, no I/O, just data lookup.
161
- *
162
- * @param network - Network identifier ('mainnet' or 'testnet')
163
- * @returns Network configuration
164
- *
165
- * @example
166
- * ```typescript
167
- * const config = getNetworkConfig('mainnet');
168
- * console.log('Connecting to:', config.rpc);
169
- * console.log('Chain ID:', config.chainId);
170
- *
171
- * // Use in deployment
172
- * const client = await StargateClient.connect(config.rpc);
173
- * const wallet = await getOfflineSigner(config.chainId);
174
- * ```
175
- */
37
+ /** Get network configuration */
176
38
  export declare function getNetworkConfig(network: AkashNetwork): NetworkConfiguration;
177
- /**
178
- * Get all available RPC endpoints for a network
179
- *
180
- * Returns array of RPC endpoints for failover/load balancing.
181
- * Caller can implement retry logic across multiple endpoints.
182
- *
183
- * @param network - Network identifier
184
- * @returns Array of RPC endpoint URLs
185
- *
186
- * @example
187
- * ```typescript
188
- * // Try each endpoint until one connects
189
- * const endpoints = getAllRpcEndpoints('mainnet');
190
- * for (const rpc of endpoints) {
191
- * try {
192
- * const client = await StargateClient.connect(rpc);
193
- * console.log('Connected to:', rpc);
194
- * break;
195
- * } catch (error) {
196
- * console.log('Failed to connect to:', rpc);
197
- * continue; // Try next
198
- * }
199
- * }
200
- * ```
201
- */
39
+ /** Get all RPC endpoints for network (for fallback/load balancing) */
202
40
  export declare function getAllRpcEndpoints(network: AkashNetwork): readonly string[];
203
- /**
204
- * Check if a provider is blacklisted
205
- *
206
- * Helper function for bid filtering logic.
207
- *
208
- * @param providerAddress - Provider's Akash address
209
- * @returns True if provider should be avoided
210
- *
211
- * @example
212
- * ```typescript
213
- * // Filter bids
214
- * const validBids = bids.filter(bid =>
215
- * !isProviderBlacklisted(bid.bidId.provider)
216
- * );
217
- *
218
- * // Log warning
219
- * if (isProviderBlacklisted(provider)) {
220
- * logger.warn(`Skipping blacklisted provider: ${provider}`);
221
- * }
222
- * ```
223
- */
224
- export declare function isProviderBlacklisted(providerAddress: string): boolean;
225
- /**
226
- * Type guard: Check if string is valid AkashNetwork
227
- *
228
- * @param value - Value to check
229
- * @returns True if value is 'mainnet' or 'testnet'
230
- *
231
- * @example
232
- * ```typescript
233
- * const userInput = 'mainnet';
234
- * if (isAkashNetwork(userInput)) {
235
- * // TypeScript knows userInput is 'mainnet' | 'testnet'
236
- * const config = getNetworkConfig(userInput);
237
- * }
238
- * ```
239
- */
41
+ /** Type guard: Check if string is valid AkashNetwork */
240
42
  export declare function isAkashNetwork(value: string): value is AkashNetwork;
241
43
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAMzC,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAEzC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;OAKG;;;;;IAMH;;;;;OAKG;;;;;CAKK,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAMpD,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,oBAAoB,CAE5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAO3E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAMzC,CAAC;AAEX,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAG1C,CAAC;AAEX,4BAA4B;AAC5B,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAEzC,CAAC;AAEX,iCAAiC;AACjC,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAE1C,CAAC;AAEX,qDAAqD;AACrD,eAAO,MAAM,cAAc;;;;;;;;;;;CAWjB,CAAC;AAEX,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,oBAAoB,CAE5E;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAE3E;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE"}
@@ -1,40 +1,12 @@
1
1
  /**
2
- * Akash Network Environment Configuration Module
2
+ * Akash Network Environment Configuration
3
3
  *
4
- * Provides pure, readonly configuration for Akash Network deployments.
4
+ * Pure, readonly configuration for Akash Network deployments.
5
5
  * NO file I/O, NO user prompts, NO environment variable loading.
6
6
  *
7
7
  * @module targets/akash/environment
8
8
  */
9
- /**
10
- * Mainnet RPC endpoints for Akash Network
11
- *
12
- * Multiple endpoints provide redundancy and load distribution.
13
- * Clients can implement fallback logic if primary endpoint fails.
14
- *
15
- * Priority order (first is default):
16
- * 1. Official Akash RPC (rpc.akashnet.net)
17
- * 2. Forbole validator RPC
18
- * 3. Ecostake validator RPC
19
- * 4. Polkachu validator RPC
20
- * 5. Community RPC (c29r3)
21
- *
22
- * @example
23
- * ```typescript
24
- * // Use primary endpoint
25
- * const rpc = MAINNET_RPC_ENDPOINTS[0];
26
- *
27
- * // Implement fallback
28
- * for (const endpoint of MAINNET_RPC_ENDPOINTS) {
29
- * try {
30
- * const client = await StargateClient.connect(endpoint);
31
- * break; // Success
32
- * } catch {
33
- * continue; // Try next endpoint
34
- * }
35
- * }
36
- * ```
37
- */
9
+ /** Mainnet RPC endpoints (ordered by priority, first is default) */
38
10
  export const MAINNET_RPC_ENDPOINTS = [
39
11
  'https://rpc.akashnet.net:443',
40
12
  'https://rpc.akash.forbole.com:443',
@@ -42,203 +14,41 @@ export const MAINNET_RPC_ENDPOINTS = [
42
14
  'https://akash-rpc.polkachu.com:443',
43
15
  'https://akash.c29r3.xyz:443/rpc'
44
16
  ];
45
- /**
46
- * Testnet RPC endpoints for Akash Network
47
- *
48
- * Testnet is used for:
49
- * - Development and testing
50
- * - Learning without risking real tokens
51
- * - Integration testing before mainnet deployment
52
- *
53
- * @example
54
- * ```typescript
55
- * const rpc = TESTNET_RPC_ENDPOINTS[0];
56
- * const client = await StargateClient.connect(rpc);
57
- * ```
58
- */
17
+ /** Mainnet REST API endpoints (LCD - Light Client Daemon) */
18
+ export const MAINNET_REST_ENDPOINTS = [
19
+ 'https://api.akashnet.net:443',
20
+ 'https://api.akash.forbole.com:443',
21
+ ];
22
+ /** Testnet RPC endpoints */
59
23
  export const TESTNET_RPC_ENDPOINTS = [
60
24
  'https://rpc.sandbox-01.aksh.pw:443'
61
25
  ];
62
- /**
63
- * Akash network configuration mapping
64
- *
65
- * Immutable configuration for all supported Akash networks.
66
- * Used throughout the deployment process for:
67
- * - Blockchain queries and transactions
68
- * - Network-specific certificate validation
69
- * - Provider communication and bid evaluation
70
- *
71
- * Why as const?
72
- * - Ensures configuration cannot be accidentally modified
73
- * - Enables TypeScript to infer exact string literal types
74
- * - Catches typos at compile time (e.g., 'mainet' vs 'mainnet')
75
- *
76
- * @example
77
- * ```typescript
78
- * // Get network config
79
- * const network = AKASH_NETWORKS.mainnet;
80
- * console.log('RPC:', network.rpc);
81
- * console.log('Chain:', network.chainId);
82
- *
83
- * // Type-safe network selection
84
- * function getConfig(net: AkashNetwork) {
85
- * return AKASH_NETWORKS[net]; // Compile-time checked
86
- * }
87
- * ```
88
- */
26
+ /** Testnet REST API endpoints */
27
+ export const TESTNET_REST_ENDPOINTS = [
28
+ 'https://api.sandbox-01.aksh.pw:443'
29
+ ];
30
+ /** Network configurations for mainnet and testnet */
89
31
  export const AKASH_NETWORKS = {
90
- /**
91
- * Mainnet configuration
92
- * - Real AKT tokens
93
- * - Production deployments
94
- * - Chain ID: akashnet-2
95
- */
96
32
  mainnet: {
97
33
  rpc: MAINNET_RPC_ENDPOINTS[0],
34
+ rest: MAINNET_REST_ENDPOINTS[0],
98
35
  chainId: 'akashnet-2'
99
36
  },
100
- /**
101
- * Testnet configuration
102
- * - Free test tokens from faucet
103
- * - Testing and development
104
- * - Chain ID: sandbox-01
105
- */
106
37
  testnet: {
107
38
  rpc: TESTNET_RPC_ENDPOINTS[0],
39
+ rest: TESTNET_REST_ENDPOINTS[0],
108
40
  chainId: 'sandbox-01'
109
41
  }
110
42
  };
111
- /**
112
- * Blacklisted provider addresses
113
- *
114
- * Providers in this set have shown unreliable behavior and should be
115
- * excluded from bid selection. Issues include:
116
- * - Failed deployments
117
- * - Unresponsive provider APIs
118
- * - Frequent downtime
119
- * - Poor performance
120
- *
121
- * This list is periodically updated based on community reports and
122
- * monitoring data.
123
- *
124
- * Implementation Note:
125
- * Using Set for O(1) lookup performance during bid filtering.
126
- *
127
- * @example
128
- * ```typescript
129
- * // Filter out blacklisted providers
130
- * const validBids = allBids.filter(bid =>
131
- * !BLACKLISTED_PROVIDERS.has(bid.provider)
132
- * );
133
- *
134
- * // Check if specific provider is blacklisted
135
- * if (BLACKLISTED_PROVIDERS.has(providerAddress)) {
136
- * console.log('Skipping blacklisted provider');
137
- * }
138
- * ```
139
- */
140
- export const BLACKLISTED_PROVIDERS = new Set([
141
- // Provider addresses with known issues
142
- 'akash1p5ptazlyc2zpt6jfwa7uupvf97t7wn3ys4kpdg',
143
- 'akash1p3n6cwgfd5v98nwm8zfjfg99adxz26jx0nehcg',
144
- 'akash1zlsep362zz46qlwzttm06t8lv9qtg8gtaya97u',
145
- 'akash1qk9dg3kr3jx6q5l2uf7g7mm8st2mr8ylfakepy'
146
- ]);
147
- /**
148
- * Get network configuration for specified Akash network
149
- *
150
- * Pure function that returns network configuration.
151
- * No side effects, no I/O, just data lookup.
152
- *
153
- * @param network - Network identifier ('mainnet' or 'testnet')
154
- * @returns Network configuration
155
- *
156
- * @example
157
- * ```typescript
158
- * const config = getNetworkConfig('mainnet');
159
- * console.log('Connecting to:', config.rpc);
160
- * console.log('Chain ID:', config.chainId);
161
- *
162
- * // Use in deployment
163
- * const client = await StargateClient.connect(config.rpc);
164
- * const wallet = await getOfflineSigner(config.chainId);
165
- * ```
166
- */
43
+ /** Get network configuration */
167
44
  export function getNetworkConfig(network) {
168
45
  return AKASH_NETWORKS[network];
169
46
  }
170
- /**
171
- * Get all available RPC endpoints for a network
172
- *
173
- * Returns array of RPC endpoints for failover/load balancing.
174
- * Caller can implement retry logic across multiple endpoints.
175
- *
176
- * @param network - Network identifier
177
- * @returns Array of RPC endpoint URLs
178
- *
179
- * @example
180
- * ```typescript
181
- * // Try each endpoint until one connects
182
- * const endpoints = getAllRpcEndpoints('mainnet');
183
- * for (const rpc of endpoints) {
184
- * try {
185
- * const client = await StargateClient.connect(rpc);
186
- * console.log('Connected to:', rpc);
187
- * break;
188
- * } catch (error) {
189
- * console.log('Failed to connect to:', rpc);
190
- * continue; // Try next
191
- * }
192
- * }
193
- * ```
194
- */
47
+ /** Get all RPC endpoints for network (for fallback/load balancing) */
195
48
  export function getAllRpcEndpoints(network) {
196
- switch (network) {
197
- case 'mainnet':
198
- return MAINNET_RPC_ENDPOINTS;
199
- case 'testnet':
200
- return TESTNET_RPC_ENDPOINTS;
201
- }
202
- }
203
- /**
204
- * Check if a provider is blacklisted
205
- *
206
- * Helper function for bid filtering logic.
207
- *
208
- * @param providerAddress - Provider's Akash address
209
- * @returns True if provider should be avoided
210
- *
211
- * @example
212
- * ```typescript
213
- * // Filter bids
214
- * const validBids = bids.filter(bid =>
215
- * !isProviderBlacklisted(bid.bidId.provider)
216
- * );
217
- *
218
- * // Log warning
219
- * if (isProviderBlacklisted(provider)) {
220
- * logger.warn(`Skipping blacklisted provider: ${provider}`);
221
- * }
222
- * ```
223
- */
224
- export function isProviderBlacklisted(providerAddress) {
225
- return BLACKLISTED_PROVIDERS.has(providerAddress);
49
+ return network === 'mainnet' ? MAINNET_RPC_ENDPOINTS : TESTNET_RPC_ENDPOINTS;
226
50
  }
227
- /**
228
- * Type guard: Check if string is valid AkashNetwork
229
- *
230
- * @param value - Value to check
231
- * @returns True if value is 'mainnet' or 'testnet'
232
- *
233
- * @example
234
- * ```typescript
235
- * const userInput = 'mainnet';
236
- * if (isAkashNetwork(userInput)) {
237
- * // TypeScript knows userInput is 'mainnet' | 'testnet'
238
- * const config = getNetworkConfig(userInput);
239
- * }
240
- * ```
241
- */
51
+ /** Type guard: Check if string is valid AkashNetwork */
242
52
  export function isAkashNetwork(value) {
243
53
  return value === 'mainnet' || value === 'testnet';
244
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/targets/akash/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4BH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,8BAA8B;IAC9B,mCAAmC;IACnC,oCAAoC;IACpC,oCAAoC;IACpC,iCAAiC;CACzB,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,oCAAoC;CAC5B,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;;;;;OAKG;IACH,OAAO,EAAE;QACP,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAE;QAC9B,OAAO,EAAE,YAAY;KACtB;IAED;;;;;OAKG;IACH,OAAO,EAAE;QACP,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAE;QAC9B,OAAO,EAAE,YAAY;KACtB;CACO,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,uCAAuC;IACvC,8CAA8C;IAC9C,8CAA8C;IAC9C,8CAA8C;IAC9C,8CAA8C;CAC/C,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,qBAAqB,CAAC;QAC/B,KAAK,SAAS;YACZ,OAAO,qBAAqB,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAAuB;IAC3D,OAAO,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/targets/akash/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,8BAA8B;IAC9B,mCAAmC;IACnC,oCAAoC;IACpC,oCAAoC;IACpC,iCAAiC;CACzB,CAAC;AAEX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,8BAA8B;IAC9B,mCAAmC;CAC3B,CAAC;AAEX,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,oCAAoC;CAC5B,CAAC;AAEX,iCAAiC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,oCAAoC;CAC5B,CAAC;AAEX,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE;QACP,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAE;QAC9B,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAE;QAChC,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAE;QAC9B,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAE;QAChC,OAAO,EAAE,YAAY;KACtB;CACO,CAAC;AAEX,gCAAgC;AAChC,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAC/E,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC;AACpD,CAAC"}