@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.
Files changed (103) 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/deployer.js +4 -4
  58. package/dist/targets/local/deployer.js.map +1 -1
  59. package/dist/types/index.d.ts +1 -1
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/dist/types/index.js.map +1 -1
  62. package/dist/types/options.d.ts +45 -4
  63. package/dist/types/options.d.ts.map +1 -1
  64. package/dist/utils/registry/manager.js +6 -6
  65. package/dist/utils/registry/manager.js.map +1 -1
  66. package/dist/utils/registry/setup.js +4 -4
  67. package/dist/utils/registry/setup.js.map +1 -1
  68. package/package.json +8 -11
  69. package/dist/targets/akash/bid-selectors.d.ts +0 -251
  70. package/dist/targets/akash/bid-selectors.d.ts.map +0 -1
  71. package/dist/targets/akash/bid-selectors.js +0 -322
  72. package/dist/targets/akash/bid-selectors.js.map +0 -1
  73. package/dist/targets/akash/bid-types.d.ts +0 -297
  74. package/dist/targets/akash/bid-types.d.ts.map +0 -1
  75. package/dist/targets/akash/bid-types.js +0 -89
  76. package/dist/targets/akash/bid-types.js.map +0 -1
  77. package/dist/targets/akash/blockchain-client.d.ts +0 -577
  78. package/dist/targets/akash/blockchain-client.d.ts.map +0 -1
  79. package/dist/targets/akash/blockchain-client.js +0 -803
  80. package/dist/targets/akash/blockchain-client.js.map +0 -1
  81. package/dist/targets/akash/logs.types.d.ts +0 -102
  82. package/dist/targets/akash/logs.types.d.ts.map +0 -1
  83. package/dist/targets/akash/logs.types.js +0 -9
  84. package/dist/targets/akash/logs.types.js.map +0 -1
  85. package/dist/targets/akash/provider-client.d.ts +0 -114
  86. package/dist/targets/akash/provider-client.d.ts.map +0 -1
  87. package/dist/targets/akash/provider-client.js +0 -318
  88. package/dist/targets/akash/provider-client.js.map +0 -1
  89. package/dist/targets/akash/provider-metadata.d.ts +0 -228
  90. package/dist/targets/akash/provider-metadata.d.ts.map +0 -1
  91. package/dist/targets/akash/provider-metadata.js +0 -14
  92. package/dist/targets/akash/provider-metadata.js.map +0 -1
  93. package/dist/targets/akash/provider-service.d.ts +0 -133
  94. package/dist/targets/akash/provider-service.d.ts.map +0 -1
  95. package/dist/targets/akash/provider-service.js +0 -391
  96. package/dist/targets/akash/provider-service.js.map +0 -1
  97. package/dist/targets/akash/query-client.d.ts +0 -125
  98. package/dist/targets/akash/query-client.d.ts.map +0 -1
  99. package/dist/targets/akash/query-client.js +0 -332
  100. package/dist/targets/akash/query-client.js.map +0 -1
  101. package/docs/EXAMPLES.md +0 -293
  102. package/docs/PLACEMENT.md +0 -433
  103. package/docs/STORAGE.md +0 -318
@@ -1,391 +0,0 @@
1
- /**
2
- * Provider Metadata Service
3
- *
4
- * Service for fetching enhanced provider information including reliability
5
- * metrics, location data, and audit status. Supports both Akash Console API
6
- * and direct blockchain queries.
7
- *
8
- * **Data Sources:**
9
- *
10
- * 1. **Akash Console API** (Primary) - Provides rich metadata:
11
- * - Uptime/reliability metrics (1d, 7d, 30d)
12
- * - Geographic location (IP geolocation)
13
- * - Audit status and auditor information
14
- * - Provider version information
15
- *
16
- * 2. **Blockchain Query** (Fallback) - Basic provider data:
17
- * - Owner address
18
- * - Host URI
19
- * - Provider attributes
20
- *
21
- * This service tries the Console API first for complete data, and falls back
22
- * to blockchain-only data if the API is unavailable.
23
- *
24
- * @module targets/akash/provider-service
25
- */
26
- import axios from 'axios';
27
- import { DeploymentError } from '../../errors/index.js';
28
- import { failure, success } from '../../types/index.js';
29
- import { getProviderMetadata } from './query-client.js';
30
- /**
31
- * Fetch ALL providers with metadata from Console API
32
- *
33
- * Fetches the complete list of providers from the Akash Console API.
34
- * This is the preferred method as it gets all provider data in a single
35
- * API call, matching how the web console works.
36
- *
37
- * **Performance:**
38
- * - Single API call for all providers (fast)
39
- * - Returns complete metadata for all providers
40
- * - Can be cached and reused across multiple bid queries
41
- *
42
- * **Data Included:**
43
- * - Provider identity (name, owner, hostUri)
44
- * - Reliability metrics (uptime1d, uptime7d, uptime30d, isOnline)
45
- * - Geographic location (country, region, coordinates)
46
- * - Audit status and version information
47
- *
48
- * @param network - Akash network (mainnet/testnet)
49
- * @returns Result with map of provider address to provider info
50
- *
51
- * @example Fetch all providers
52
- * ```typescript
53
- * const result = await fetchAllProviders('mainnet');
54
- * if (result.success) {
55
- * const providers = result.data;
56
- * console.log(`Loaded ${providers.size} providers`);
57
- *
58
- * // Look up a specific provider
59
- * const provider = providers.get('akash1...');
60
- * if (provider) {
61
- * console.log('Uptime:', provider.reliability?.uptime7d);
62
- * }
63
- * }
64
- * ```
65
- */
66
- export async function fetchAllProviders(network) {
67
- // TODO: Replace with custom blockchain indexer once available
68
- // The console.akash.network proxy blocks external access (HTTP 403), so this will fail.
69
- // When you build your own provider reliability tracker (see docs/building-provider-reliability-tracker.md),
70
- // replace this URL with your own indexer API endpoint:
71
- // - Development: http://localhost:3000/api/providers
72
- // - Production: https://your-indexer.example.com/api/providers
73
- // Your indexer should return the same ConsoleProviderResponse[] format.
74
- // Use console.akash.network which proxies the API
75
- // Note: This currently returns 403 Forbidden for external applications
76
- const apiBase = network === 'mainnet'
77
- ? 'https://console.akash.network/api-mainnet/v1'
78
- : 'https://console.akash.network/api-testnet/v1';
79
- try {
80
- const url = `${apiBase}/providers`;
81
- const response = await axios.get(url, {
82
- timeout: 15_000,
83
- headers: {
84
- Accept: 'application/json',
85
- 'User-Agent': 'KADI deploy-ability (+https://github.com/kadi-build)'
86
- },
87
- transitional: { clarifyTimeoutError: true },
88
- });
89
- const providers = response.data;
90
- // Transform array to map for fast lookups
91
- const providerMap = new Map();
92
- for (const data of providers) {
93
- // Build location if available
94
- const location = data.ipCountry && data.ipRegion
95
- ? {
96
- region: data.ipRegion,
97
- regionCode: data.ipRegionCode || '',
98
- country: data.ipCountry,
99
- countryCode: data.ipCountryCode || '',
100
- latitude: data.ipLat,
101
- longitude: data.ipLon,
102
- }
103
- : undefined;
104
- // Build reliability if available
105
- const reliability = typeof data.uptime1d === 'number' &&
106
- typeof data.uptime7d === 'number' &&
107
- typeof data.uptime30d === 'number'
108
- ? {
109
- uptime1d: data.uptime1d,
110
- uptime7d: data.uptime7d,
111
- uptime30d: data.uptime30d,
112
- isOnline: data.isOnline ?? true,
113
- lastCheckDate: data.lastCheckDate
114
- ? new Date(data.lastCheckDate)
115
- : undefined,
116
- }
117
- : undefined;
118
- // Transform to ProviderInfo
119
- const providerInfo = {
120
- owner: data.owner,
121
- hostUri: data.hostUri,
122
- name: data.name ?? undefined, // Convert null to undefined
123
- email: data.email,
124
- website: data.website,
125
- isAudited: data.isAudited,
126
- akashVersion: data.akashVersion,
127
- cosmosSdkVersion: data.cosmosSdkVersion,
128
- location,
129
- reliability,
130
- };
131
- providerMap.set(data.owner, providerInfo);
132
- }
133
- return success(providerMap);
134
- }
135
- catch (error) {
136
- // Map axios error information into a helpful message
137
- let statusCode;
138
- let detail = String(error);
139
- if (axios.isAxiosError(error)) {
140
- statusCode = error.response?.status;
141
- if (error.code === 'ETIMEDOUT' || error.message.includes('timeout')) {
142
- detail = `timeout after 15s`;
143
- }
144
- else if (statusCode) {
145
- detail = `HTTP ${statusCode}`;
146
- }
147
- }
148
- return failure(new DeploymentError(`Failed to fetch provider list: ${detail}`, 'PROVIDER_LIST_FAILED', { error: String(error), statusCode }, true, 'Could not fetch provider list from Console API'));
149
- }
150
- }
151
- /**
152
- * Fetch provider information with enriched metadata
153
- *
154
- * Attempts to fetch complete provider information from the Akash Console API,
155
- * falling back to blockchain-only data if the API is unavailable.
156
- *
157
- * **DEPRECATED:** Use `fetchAllProviders()` instead for better performance.
158
- * This function makes individual API calls per provider, while `fetchAllProviders()`
159
- * gets all providers in a single call.
160
- *
161
- * **Data Quality:**
162
- * - Console API: Complete data with reliability metrics and location
163
- * - Blockchain fallback: Basic identity only (owner, hostUri)
164
- *
165
- * **Reliability:**
166
- * The Console API may be temporarily unavailable during maintenance or
167
- * network issues. The fallback ensures deployment can continue even without
168
- * enhanced metadata, though bid selection will have less information.
169
- *
170
- * @param network - Akash network (mainnet/testnet)
171
- * @param providerAddress - Provider's blockchain address
172
- * @returns Result with complete provider information
173
- *
174
- * @example Fetch single provider
175
- * ```typescript
176
- * const result = await fetchProviderInfo('mainnet', 'akash1...');
177
- * if (result.success) {
178
- * const provider = result.data;
179
- * console.log('Provider:', provider.name || provider.owner);
180
- * if (provider.reliability) {
181
- * console.log('Uptime (7d):', (provider.reliability.uptime7d * 100).toFixed(1) + '%');
182
- * }
183
- * }
184
- * ```
185
- */
186
- export async function fetchProviderInfo(network, providerAddress) {
187
- try {
188
- // Try Console API first for complete data
189
- const consoleResult = await fetchFromConsoleAPI(network, providerAddress);
190
- if (consoleResult.success) {
191
- return consoleResult;
192
- }
193
- // Fallback to blockchain query
194
- const blockchainResult = await fetchFromBlockchain(network, providerAddress);
195
- return blockchainResult;
196
- }
197
- catch (error) {
198
- return failure(new DeploymentError(`Failed to fetch provider info for ${providerAddress}: ${error}`, 'PROVIDER_INFO_FAILED', { providerAddress, error: String(error) }, true, 'Provider metadata fetch failed, but deployment can continue with limited information'));
199
- }
200
- }
201
- /**
202
- * Fetch multiple providers in batch for efficiency
203
- *
204
- * Fetches provider information for multiple providers in parallel.
205
- * This is more efficient than calling `fetchProviderInfo` sequentially
206
- * when processing multiple bids.
207
- *
208
- * **Behavior:**
209
- * - Fetches all providers in parallel
210
- * - Failed fetches return minimal provider info (owner + hostUri)
211
- * - Never fails entirely - partial data is acceptable
212
- *
213
- * @param network - Akash network (mainnet/testnet)
214
- * @param providerAddresses - Array of provider addresses to fetch
215
- * @returns Result with map of provider address to provider info
216
- *
217
- * @example Fetch multiple providers
218
- * ```typescript
219
- * const addresses = ['akash1...', 'akash2...', 'akash3...'];
220
- * const result = await fetchProviderInfoBatch('mainnet', addresses);
221
- *
222
- * if (result.success) {
223
- * const providers = result.data;
224
- * for (const [address, info] of providers) {
225
- * console.log(address, ':', info.name || 'Unknown');
226
- * }
227
- * }
228
- * ```
229
- */
230
- export async function fetchProviderInfoBatch(network, providerAddresses) {
231
- try {
232
- // Fetch all providers in parallel
233
- const results = await Promise.allSettled(providerAddresses.map((address) => fetchProviderInfo(network, address)));
234
- // Build map of successful fetches
235
- const providerMap = new Map();
236
- for (let i = 0; i < providerAddresses.length; i++) {
237
- const address = providerAddresses[i];
238
- const result = results[i];
239
- if (result.status === 'fulfilled' && result.value.success) {
240
- providerMap.set(address, result.value.data);
241
- }
242
- else {
243
- // For failed fetches, create minimal provider info
244
- // This ensures we always have at least basic data
245
- providerMap.set(address, {
246
- owner: address,
247
- hostUri: '', // Will be populated from bid data later
248
- isAudited: false,
249
- });
250
- }
251
- }
252
- return success(providerMap);
253
- }
254
- catch (error) {
255
- return failure(new DeploymentError(`Failed to fetch provider batch: ${error}`, 'PROVIDER_BATCH_FAILED', { providerAddresses, error: String(error) }, true, 'Batch provider fetch failed, deployment can continue with limited information'));
256
- }
257
- }
258
- /**
259
- * Fetch provider data from Akash Console API
260
- *
261
- * Internal helper that queries the Console API for enriched provider data.
262
- *
263
- * **Console API Endpoints:**
264
- * - Mainnet: https://api.cloudmos.io/v1/providers/{address}
265
- * - Testnet: https://api.testnet.cloudmos.io/v1/providers/{address}
266
- *
267
- * @param network - Akash network
268
- * @param providerAddress - Provider address
269
- * @returns Result with complete provider info or error
270
- */
271
- async function fetchFromConsoleAPI(network, providerAddress) {
272
- // TODO: Replace with custom blockchain indexer once available
273
- // See fetchAllProviders() for details on setting up your own indexer API.
274
- // Use console.akash.network which proxies the API
275
- // Note: This currently returns 403 Forbidden for external applications
276
- const apiBase = network === 'mainnet'
277
- ? 'https://console.akash.network/api-mainnet/v1'
278
- : 'https://console.akash.network/api-testnet/v1';
279
- try {
280
- const url = `${apiBase}/providers/${providerAddress}`;
281
- const response = await axios.get(url, {
282
- timeout: 10_000,
283
- headers: {
284
- Accept: 'application/json',
285
- 'User-Agent': 'KADI deploy-ability (+https://github.com/kadi-build)'
286
- },
287
- transitional: { clarifyTimeoutError: true },
288
- });
289
- const data = response.data;
290
- // Build location if available
291
- const location = data.ipCountry && data.ipRegion
292
- ? {
293
- region: data.ipRegion,
294
- regionCode: data.ipRegionCode || '',
295
- country: data.ipCountry,
296
- countryCode: data.ipCountryCode || '',
297
- latitude: data.ipLat,
298
- longitude: data.ipLon,
299
- }
300
- : undefined;
301
- // Build reliability if available
302
- const reliability = typeof data.uptime1d === 'number' &&
303
- typeof data.uptime7d === 'number' &&
304
- typeof data.uptime30d === 'number'
305
- ? {
306
- uptime1d: data.uptime1d,
307
- uptime7d: data.uptime7d,
308
- uptime30d: data.uptime30d,
309
- isOnline: data.isOnline ?? true,
310
- lastCheckDate: data.lastCheckDate
311
- ? new Date(data.lastCheckDate)
312
- : undefined,
313
- }
314
- : undefined;
315
- // Transform Console API response to ProviderInfo
316
- const providerInfo = {
317
- owner: data.owner,
318
- hostUri: data.hostUri,
319
- name: data.name ?? undefined, // Convert null to undefined
320
- email: data.email,
321
- website: data.website,
322
- isAudited: data.isAudited,
323
- akashVersion: data.akashVersion,
324
- cosmosSdkVersion: data.cosmosSdkVersion,
325
- location,
326
- reliability,
327
- };
328
- return success(providerInfo);
329
- }
330
- catch (error) {
331
- // Map axios error information into a helpful message
332
- let statusCode;
333
- let detail = String(error);
334
- if (axios.isAxiosError(error)) {
335
- statusCode = error.response?.status;
336
- if (error.code === 'ETIMEDOUT' || error.message.includes('timeout')) {
337
- detail = `timeout after 10s`;
338
- }
339
- else if (statusCode) {
340
- detail = `HTTP ${statusCode}`;
341
- }
342
- }
343
- return failure(new DeploymentError(`Console API fetch failed: ${detail}`, 'CONSOLE_API_ERROR', { providerAddress, statusCode, error: String(error) }, true, 'Will fallback to blockchain query'));
344
- }
345
- }
346
- /**
347
- * Fetch provider data directly from blockchain
348
- *
349
- * Internal helper that queries blockchain for basic provider data.
350
- * This is a fallback when the Console API is unavailable.
351
- *
352
- * **Available Data:**
353
- * - Owner address
354
- * - Host URI
355
- * - Provider attributes (used to determine audit status)
356
- *
357
- * **Missing Data:**
358
- * - No reliability metrics
359
- * - No location information
360
- * - No version information
361
- *
362
- * @param network - Akash network
363
- * @param providerAddress - Provider address
364
- * @returns Result with basic provider info
365
- */
366
- async function fetchFromBlockchain(network, providerAddress) {
367
- try {
368
- // Query provider metadata from blockchain
369
- const result = await getProviderMetadata(network, providerAddress);
370
- if (!result.success) {
371
- return failure(new DeploymentError(result.error.message, result.error.code, result.error.context, result.error.recoverable, result.error.suggestion));
372
- }
373
- // After success check, data is guaranteed to exist
374
- const metadata = result.data;
375
- // Check if provider is audited based on attributes
376
- // Audited providers typically have an "audited-by" attribute
377
- const isAudited = metadata.attributes.some((attr) => attr.key === 'audited-by');
378
- // Construct minimal provider info from blockchain data
379
- const providerInfo = {
380
- owner: providerAddress,
381
- hostUri: metadata.hostUri || '',
382
- isAudited,
383
- // No reliability, location, or version data from blockchain alone
384
- };
385
- return success(providerInfo);
386
- }
387
- catch (error) {
388
- return failure(new DeploymentError(`Blockchain query failed: ${error}`, 'BLOCKCHAIN_QUERY_ERROR', { providerAddress, error: String(error) }, true, 'Unable to fetch provider info from any source'));
389
- }
390
- }
391
- //# sourceMappingURL=provider-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-service.js","sourceRoot":"","sources":["../../../src/targets/akash/provider-service.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
1
- /**
2
- * Akash RPC Query Client
3
- *
4
- * Provides typed helper functions for querying Akash blockchain state via the
5
- * gRPC query endpoints exposed by @akashnetwork/akash-api. All helpers return
6
- * Result<T, DeploymentError> to encourage explicit error handling by callers.
7
- *
8
- * Responsibilities:
9
- * 1. Fetch lease information (price, state, identifiers)
10
- * 2. Fetch deployment group/resource information
11
- * 3. Fetch provider metadata (host URI, attributes)
12
- * 4. Optionally combine the above into a consolidated deployment overview
13
- *
14
- * Each function normalises protobuf responses into lightweight, serialisable
15
- * TypeScript interfaces – ready for logging, display, or further processing.
16
- *
17
- * @module targets/akash/query-client
18
- */
19
- import type { Result } from '../../types/index.js';
20
- import { DeploymentError } from '../../errors/index.js';
21
- import type { WalletAddress, ProviderUri } from '../../types/common.js';
22
- import { type AkashNetwork } from './environment.js';
23
- /**
24
- * Filters for lease queries
25
- */
26
- export interface LeaseFilters {
27
- readonly owner: string;
28
- readonly dseq: string | number;
29
- readonly provider?: string;
30
- readonly gseq?: number;
31
- readonly oseq?: number;
32
- readonly state?: string;
33
- }
34
- /**
35
- * Normalised lease record returned from Akash
36
- */
37
- export interface LeaseDetails {
38
- readonly owner: WalletAddress;
39
- readonly dseq: string;
40
- readonly gseq: number;
41
- readonly oseq: number;
42
- readonly provider: WalletAddress;
43
- readonly state: string;
44
- readonly price: {
45
- readonly denom: string;
46
- readonly amount: string;
47
- };
48
- readonly createdAt: string;
49
- }
50
- /**
51
- * Normalised resource specification for a deployment group
52
- */
53
- export interface DeploymentGroupResource {
54
- readonly resourceId: number;
55
- readonly count: number;
56
- readonly cpuUnits: string;
57
- readonly memoryQuantity: string;
58
- readonly storageQuantities: readonly string[];
59
- }
60
- /**
61
- * Deployment group information containing aggregated resources
62
- */
63
- export interface DeploymentGroupDetails {
64
- readonly name: string;
65
- readonly resources: readonly DeploymentGroupResource[];
66
- }
67
- /**
68
- * Deployment details combining high-level metadata and group specs
69
- */
70
- export interface DeploymentDetails {
71
- readonly owner: WalletAddress;
72
- readonly dseq: string;
73
- readonly state: string;
74
- readonly version: string;
75
- readonly createdAt: string;
76
- readonly groups: readonly DeploymentGroupDetails[];
77
- }
78
- /**
79
- * Provider metadata returned from on-chain provider module
80
- */
81
- export interface ProviderMetadata {
82
- readonly owner: WalletAddress;
83
- readonly hostUri?: ProviderUri;
84
- readonly attributes: readonly ProviderAttribute[];
85
- }
86
- /**
87
- * Provider attribute key/value pair
88
- */
89
- export interface ProviderAttribute {
90
- readonly key: string;
91
- readonly value: string;
92
- }
93
- /**
94
- * Consolidated deployment overview combining lease, deployment and provider data
95
- */
96
- export interface DeploymentOverview {
97
- readonly lease: LeaseDetails;
98
- readonly deployment: DeploymentDetails;
99
- readonly provider?: ProviderMetadata;
100
- }
101
- /**
102
- * Fetches leases matching the provided filters.
103
- */
104
- export declare function getLeaseRecords(network: AkashNetwork, filters: LeaseFilters): Promise<Result<readonly LeaseDetails[], DeploymentError>>;
105
- /**
106
- * Fetches a single lease by exact identifier.
107
- *
108
- * Accepts either a full LeaseDetails object or a minimal identifier with just
109
- * the required fields (owner, provider, dseq, gseq, oseq).
110
- */
111
- export declare function getLeaseById(network: AkashNetwork, lease: LeaseDetails): Promise<Result<LeaseDetails, DeploymentError>>;
112
- export declare function getLeaseById(network: AkashNetwork, lease: Pick<LeaseDetails, 'owner' | 'provider' | 'dseq' | 'gseq' | 'oseq'>): Promise<Result<LeaseDetails, DeploymentError>>;
113
- /**
114
- * Fetches deployment metadata and group resource information.
115
- */
116
- export declare function getDeploymentDetails(network: AkashNetwork, owner: string, dseq: string | number): Promise<Result<DeploymentDetails, DeploymentError>>;
117
- /**
118
- * Fetches provider metadata (host URI and attributes).
119
- */
120
- export declare function getProviderMetadata(network: AkashNetwork, providerAddress: string): Promise<Result<ProviderMetadata | undefined, DeploymentError>>;
121
- /**
122
- * Aggregates lease, deployment, and provider information into one object.
123
- */
124
- export declare function getDeploymentOverview(network: AkashNetwork, lease: LeaseDetails): Promise<Result<DeploymentOverview, DeploymentError>>;
125
- //# sourceMappingURL=query-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-client.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/query-client.ts"],"names":[],"mappings":"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"}