@kadi.build/deploy-ability 0.0.2 → 0.0.4
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/targets/akash/bids.d.ts +183 -0
- package/dist/targets/akash/bids.d.ts.map +1 -0
- package/dist/targets/akash/bids.js +247 -0
- package/dist/targets/akash/bids.js.map +1 -0
- package/dist/targets/akash/certificate-manager.d.ts +89 -167
- package/dist/targets/akash/certificate-manager.d.ts.map +1 -1
- package/dist/targets/akash/certificate-manager.js +193 -301
- package/dist/targets/akash/certificate-manager.js.map +1 -1
- package/dist/targets/akash/client.d.ts +644 -0
- package/dist/targets/akash/client.d.ts.map +1 -0
- package/dist/targets/akash/client.js +972 -0
- package/dist/targets/akash/client.js.map +1 -0
- package/dist/targets/akash/constants.d.ts +12 -149
- package/dist/targets/akash/constants.d.ts.map +1 -1
- package/dist/targets/akash/constants.js +14 -136
- package/dist/targets/akash/constants.js.map +1 -1
- package/dist/targets/akash/deployer.d.ts +3 -82
- package/dist/targets/akash/deployer.d.ts.map +1 -1
- package/dist/targets/akash/deployer.js +122 -160
- package/dist/targets/akash/deployer.js.map +1 -1
- package/dist/targets/akash/environment.d.ts +16 -214
- package/dist/targets/akash/environment.d.ts.map +1 -1
- package/dist/targets/akash/environment.js +20 -210
- package/dist/targets/akash/environment.js.map +1 -1
- package/dist/targets/akash/index.d.ts +95 -189
- package/dist/targets/akash/index.d.ts.map +1 -1
- package/dist/targets/akash/index.js +69 -197
- package/dist/targets/akash/index.js.map +1 -1
- package/dist/targets/akash/lease-monitor.d.ts +3 -21
- package/dist/targets/akash/lease-monitor.d.ts.map +1 -1
- package/dist/targets/akash/lease-monitor.js +39 -56
- package/dist/targets/akash/lease-monitor.js.map +1 -1
- package/dist/targets/akash/logs.d.ts +103 -4
- package/dist/targets/akash/logs.d.ts.map +1 -1
- package/dist/targets/akash/logs.js +12 -3
- package/dist/targets/akash/logs.js.map +1 -1
- package/dist/targets/akash/pricing.d.ts +12 -191
- package/dist/targets/akash/pricing.d.ts.map +1 -1
- package/dist/targets/akash/pricing.js +12 -188
- package/dist/targets/akash/pricing.js.map +1 -1
- package/dist/targets/akash/provider-manager.d.ts +120 -0
- package/dist/targets/akash/provider-manager.d.ts.map +1 -0
- package/dist/targets/akash/provider-manager.js +574 -0
- package/dist/targets/akash/provider-manager.js.map +1 -0
- package/dist/targets/akash/sdl-generator.d.ts +2 -2
- package/dist/targets/akash/sdl-generator.d.ts.map +1 -1
- package/dist/targets/akash/sdl-generator.js +6 -39
- package/dist/targets/akash/sdl-generator.js.map +1 -1
- package/dist/targets/akash/types.d.ts +66 -243
- package/dist/targets/akash/types.d.ts.map +1 -1
- package/dist/targets/akash/types.js +4 -41
- package/dist/targets/akash/types.js.map +1 -1
- package/dist/targets/akash/wallet-manager.d.ts +35 -352
- package/dist/targets/akash/wallet-manager.d.ts.map +1 -1
- package/dist/targets/akash/wallet-manager.js +37 -439
- package/dist/targets/akash/wallet-manager.js.map +1 -1
- package/dist/targets/local/deployer.js +4 -4
- package/dist/targets/local/deployer.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +45 -4
- package/dist/types/options.d.ts.map +1 -1
- package/dist/utils/registry/manager.js +6 -6
- package/dist/utils/registry/manager.js.map +1 -1
- package/dist/utils/registry/setup.js +4 -4
- package/dist/utils/registry/setup.js.map +1 -1
- package/package.json +8 -11
- package/dist/targets/akash/bid-selectors.d.ts +0 -251
- package/dist/targets/akash/bid-selectors.d.ts.map +0 -1
- package/dist/targets/akash/bid-selectors.js +0 -322
- package/dist/targets/akash/bid-selectors.js.map +0 -1
- package/dist/targets/akash/bid-types.d.ts +0 -297
- package/dist/targets/akash/bid-types.d.ts.map +0 -1
- package/dist/targets/akash/bid-types.js +0 -89
- package/dist/targets/akash/bid-types.js.map +0 -1
- package/dist/targets/akash/blockchain-client.d.ts +0 -577
- package/dist/targets/akash/blockchain-client.d.ts.map +0 -1
- package/dist/targets/akash/blockchain-client.js +0 -803
- package/dist/targets/akash/blockchain-client.js.map +0 -1
- package/dist/targets/akash/logs.types.d.ts +0 -102
- package/dist/targets/akash/logs.types.d.ts.map +0 -1
- package/dist/targets/akash/logs.types.js +0 -9
- package/dist/targets/akash/logs.types.js.map +0 -1
- package/dist/targets/akash/provider-client.d.ts +0 -114
- package/dist/targets/akash/provider-client.d.ts.map +0 -1
- package/dist/targets/akash/provider-client.js +0 -318
- package/dist/targets/akash/provider-client.js.map +0 -1
- package/dist/targets/akash/provider-metadata.d.ts +0 -228
- package/dist/targets/akash/provider-metadata.d.ts.map +0 -1
- package/dist/targets/akash/provider-metadata.js +0 -14
- package/dist/targets/akash/provider-metadata.js.map +0 -1
- package/dist/targets/akash/provider-service.d.ts +0 -133
- package/dist/targets/akash/provider-service.d.ts.map +0 -1
- package/dist/targets/akash/provider-service.js +0 -391
- package/dist/targets/akash/provider-service.js.map +0 -1
- package/dist/targets/akash/query-client.d.ts +0 -125
- package/dist/targets/akash/query-client.d.ts.map +0 -1
- package/dist/targets/akash/query-client.js +0 -332
- package/dist/targets/akash/query-client.js.map +0 -1
- package/docs/EXAMPLES.md +0 -293
- package/docs/PLACEMENT.md +0 -433
- package/docs/STORAGE.md +0 -318
|
@@ -1,241 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Akash Network Environment Configuration
|
|
2
|
+
* Akash Network Environment Configuration
|
|
3
3
|
*
|
|
4
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
2
|
+
* Akash Network Environment Configuration
|
|
3
3
|
*
|
|
4
|
-
*
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|