@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
@@ -0,0 +1,644 @@
1
+ /**
2
+ * Akash Blockchain Client
3
+ *
4
+ * Single SDK instance manager for all Akash blockchain operations.
5
+ * Eliminates SDK duplication by creating one instance reused across all methods.
6
+ *
7
+ * **Usage Pattern:**
8
+ * ```typescript
9
+ * // Create client (read-only or with signer)
10
+ * const client = new AkashClient({ network: 'mainnet', signer });
11
+ *
12
+ * // Perform operations
13
+ * const bids = await client.getBids(wallet, dseq);
14
+ * const lease = await client.acceptBid(bids.data[0].bid);
15
+ *
16
+ * // Cleanup
17
+ * await client.disconnect();
18
+ * ```
19
+ *
20
+ * @module targets/akash/client
21
+ */
22
+ import Long from 'long';
23
+ import type { SDL as SDLType } from '@akashnetwork/chain-sdk';
24
+ import type { Result } from '../../types/index.js';
25
+ import { DeploymentError } from '../../errors/index.js';
26
+ import type { WalletContext, KeplrSigner, LeaseDetails } from './types.js';
27
+ import { type AkashNetwork } from './environment.js';
28
+ import type { EnhancedBid } from './bids.js';
29
+ import { CertificateManager } from './certificate-manager.js';
30
+ /**
31
+ * Akash client configuration options
32
+ */
33
+ export interface AkashClientOptions {
34
+ /**
35
+ * Network to connect to
36
+ */
37
+ readonly network: AkashNetwork;
38
+ /**
39
+ * Optional signer for write operations (transactions)
40
+ *
41
+ * If not provided, client is read-only (queries only).
42
+ * Required for: createDeployment, acceptBid, closeDeployment
43
+ */
44
+ readonly signer?: KeplrSigner;
45
+ /**
46
+ * Gas multiplier for safety margin
47
+ *
48
+ * Multiplies estimated gas by this factor to ensure transactions succeed.
49
+ * Matches Akash Console default of 1.6x
50
+ *
51
+ * @default 1.6
52
+ */
53
+ readonly gasMultiplier?: number;
54
+ }
55
+ /**
56
+ * Deployment creation result
57
+ */
58
+ export interface DeploymentResult {
59
+ /** Deployment sequence number (unique identifier) */
60
+ readonly dseq: number;
61
+ /** Transaction hash on blockchain */
62
+ readonly transactionHash: string;
63
+ /** Block height where deployment was created */
64
+ readonly height: number;
65
+ }
66
+ /**
67
+ * Lease creation result
68
+ */
69
+ export interface LeaseResult {
70
+ /** Lease identifier (deployment + provider) */
71
+ readonly lease: LeaseIdentifier;
72
+ /** Transaction hash on blockchain */
73
+ readonly transactionHash: string;
74
+ /** Block height where lease was created */
75
+ readonly height: number;
76
+ }
77
+ /**
78
+ * Deployment close result
79
+ */
80
+ export interface DeploymentCloseResult {
81
+ /** Deployment sequence number */
82
+ readonly dseq: string;
83
+ /** Owner address */
84
+ readonly owner: string;
85
+ /** Transaction hash */
86
+ readonly transactionHash: string;
87
+ /** Block height */
88
+ readonly height: number;
89
+ /** When deployment was closed */
90
+ readonly closedAt: Date;
91
+ /** Whether closure was confirmed on blockchain */
92
+ readonly confirmed: boolean;
93
+ }
94
+ /**
95
+ * Lease identifier (uniquely identifies a lease on blockchain)
96
+ */
97
+ export interface LeaseIdentifier {
98
+ readonly owner: string;
99
+ readonly dseq: number;
100
+ readonly gseq: number;
101
+ readonly oseq: number;
102
+ readonly provider: string;
103
+ }
104
+ /**
105
+ * Bid identifier
106
+ */
107
+ export interface BidID {
108
+ owner: string;
109
+ dseq: Long;
110
+ gseq: number;
111
+ oseq: number;
112
+ provider: string;
113
+ bseq?: number;
114
+ }
115
+ /**
116
+ * Coin amount (price denomination)
117
+ */
118
+ export interface DecCoin {
119
+ denom: string;
120
+ amount: string;
121
+ }
122
+ /**
123
+ * Provider bid from blockchain
124
+ */
125
+ export interface Bid {
126
+ $type?: string;
127
+ id?: BidID;
128
+ bidId?: BidID;
129
+ state: number;
130
+ price?: DecCoin;
131
+ createdAt: Long;
132
+ resourcesOffer?: unknown[];
133
+ }
134
+ /**
135
+ * Provider bid type alias
136
+ */
137
+ export type ProviderBid = Bid;
138
+ /**
139
+ * Deployment details from blockchain
140
+ */
141
+ export interface DeploymentDetails {
142
+ readonly owner: string;
143
+ readonly dseq: string;
144
+ readonly state: string;
145
+ readonly version: string;
146
+ readonly createdAt: string;
147
+ readonly groups: readonly DeploymentGroupDetails[];
148
+ }
149
+ /**
150
+ * Deployment group resource specification
151
+ */
152
+ export interface DeploymentGroupDetails {
153
+ readonly name: string;
154
+ readonly resources: readonly DeploymentGroupResource[];
155
+ }
156
+ /**
157
+ * Resource specification for a deployment group
158
+ */
159
+ export interface DeploymentGroupResource {
160
+ readonly resourceId: number;
161
+ readonly count: number;
162
+ readonly cpuUnits: string;
163
+ readonly memoryQuantity: string;
164
+ readonly storageQuantities: readonly string[];
165
+ }
166
+ /**
167
+ * Provider metadata from blockchain
168
+ */
169
+ export interface ProviderMetadata {
170
+ readonly owner: string;
171
+ readonly hostUri?: string;
172
+ readonly attributes: readonly ProviderAttribute[];
173
+ }
174
+ /**
175
+ * Provider attribute (key-value pair)
176
+ */
177
+ export interface ProviderAttribute {
178
+ readonly key: string;
179
+ readonly value: string;
180
+ }
181
+ /**
182
+ * Lease query filters
183
+ */
184
+ export interface LeaseFilters {
185
+ readonly owner?: string;
186
+ readonly dseq?: string | number;
187
+ readonly provider?: string;
188
+ readonly gseq?: number;
189
+ readonly oseq?: number;
190
+ readonly state?: string;
191
+ }
192
+ /**
193
+ * Bid query options
194
+ */
195
+ export interface BidQueryOptions {
196
+ /**
197
+ * Provider addresses to exclude from results
198
+ */
199
+ readonly blacklist?: readonly string[];
200
+ /**
201
+ * Filter out offline providers
202
+ *
203
+ * @default true
204
+ */
205
+ readonly filterOffline?: boolean;
206
+ /**
207
+ * Include provider metadata from Console API
208
+ *
209
+ * Adds uptime, location, audit status to each bid.
210
+ * May add latency (~500ms).
211
+ *
212
+ * @default true
213
+ */
214
+ readonly includeProviderMetadata?: boolean;
215
+ }
216
+ /**
217
+ * Bid polling options
218
+ */
219
+ export interface BidAwaitOptions extends BidQueryOptions {
220
+ /**
221
+ * Maximum time to wait for bids (milliseconds)
222
+ *
223
+ * @default 60000 (60 seconds)
224
+ */
225
+ readonly timeout?: number;
226
+ /**
227
+ * How often to poll for bids (milliseconds)
228
+ *
229
+ * @default 5000 (5 seconds)
230
+ */
231
+ readonly pollInterval?: number;
232
+ /**
233
+ * Minimum number of bids to wait for
234
+ *
235
+ * @default 1
236
+ */
237
+ readonly minBidCount?: number;
238
+ }
239
+ /**
240
+ * SDL type re-export from chain-sdk
241
+ */
242
+ export type SDL = SDLType;
243
+ /**
244
+ * Akash blockchain client with managed SDK lifecycle
245
+ *
246
+ * @example Query Operations (No Signer)
247
+ * ```typescript
248
+ * const client = new AkashClient({ network: 'mainnet' });
249
+ *
250
+ * const deployment = await client.getDeployment('akash1...', 12345);
251
+ * const bids = await client.getBids({ address: 'akash1...' }, 12345);
252
+ *
253
+ * await client.disconnect();
254
+ * ```
255
+ *
256
+ * @example Write Operations (Signer Required)
257
+ * ```typescript
258
+ * const client = new AkashClient({
259
+ * network: 'mainnet',
260
+ * signer: keplrSigner
261
+ * });
262
+ *
263
+ * const deployment = await client.createDeployment(sdl, 5);
264
+ * const bids = await client.awaitBids({ address }, deployment.data.dseq);
265
+ * const lease = await client.acceptBid(bids.data[0].bid);
266
+ *
267
+ * await client.disconnect();
268
+ * ```
269
+ */
270
+ export declare class AkashClient {
271
+ /**
272
+ * Chain SDK instance (created once, reused for all operations)
273
+ * @private
274
+ */
275
+ private readonly sdk;
276
+ /**
277
+ * Network configuration
278
+ * @private
279
+ */
280
+ private readonly network;
281
+ private readonly config;
282
+ /**
283
+ * Optional signer for write operations
284
+ * @private
285
+ */
286
+ private readonly signer?;
287
+ /**
288
+ * Gas multiplier for transaction safety
289
+ * @private
290
+ */
291
+ private readonly gasMultiplier;
292
+ /**
293
+ * Lazy-initialized certificate manager
294
+ * @private
295
+ */
296
+ private certManager?;
297
+ /**
298
+ * Create new Akash blockchain client
299
+ *
300
+ * Initializes a single SDK instance that will be reused for all operations.
301
+ * This is the key improvement over the old implementation which created
302
+ * 7+ SDK instances per deployment.
303
+ *
304
+ * @param options - Client configuration
305
+ *
306
+ * @example Read-Only Client
307
+ * ```typescript
308
+ * const client = new AkashClient({ network: 'mainnet' });
309
+ * // Can only perform queries (getBids, getDeployment, etc.)
310
+ * ```
311
+ *
312
+ * @example Full Client (Read + Write)
313
+ * ```typescript
314
+ * const client = new AkashClient({
315
+ * network: 'mainnet',
316
+ * signer: keplrSigner,
317
+ * gasMultiplier: 1.6
318
+ * });
319
+ * // Can perform queries AND transactions
320
+ * ```
321
+ */
322
+ constructor(options: AkashClientOptions);
323
+ /**
324
+ * Fetch provider bids for a deployment
325
+ *
326
+ * Queries the Akash marketplace for open bids on a specific deployment.
327
+ * Automatically filters blacklisted providers and optionally enriches
328
+ * with provider metadata (uptime, location, audit status).
329
+ *
330
+ * **Performance**: ~200ms (first call), ~50ms (subsequent calls with warm SDK)
331
+ *
332
+ * @param wallet - Wallet context (for filtering bids by owner)
333
+ * @param dseq - Deployment sequence number
334
+ * @param options - Optional filtering and enhancement options
335
+ * @returns Array of enhanced bids with pricing and provider info
336
+ *
337
+ * @example
338
+ * ```typescript
339
+ * const bids = await client.getBids(
340
+ * { address: 'akash1...' },
341
+ * 12345,
342
+ * { filterOffline: true, blacklist: ['akash1bad...'] }
343
+ * );
344
+ *
345
+ * if (bids.success) {
346
+ * console.log(`Found ${bids.data.length} bids`);
347
+ * console.log(`Cheapest: ${bids.data[0].pricing.akt.perMonth} AKT/month`);
348
+ * }
349
+ * ```
350
+ */
351
+ getBids(wallet: WalletContext, dseq: number, options?: BidQueryOptions): Promise<Result<EnhancedBid[], DeploymentError>>;
352
+ /**
353
+ * Extract valid bids from marketplace response
354
+ *
355
+ * Filters out invalid/malformed bids from the raw response.
356
+ *
357
+ * @param response - Raw marketplace response
358
+ * @returns Array of valid bids
359
+ * @private
360
+ */
361
+ private extractValidBids;
362
+ /**
363
+ * Poll marketplace for bids with timeout
364
+ *
365
+ * Waits for at least `minBidCount` bids to appear, polling the marketplace
366
+ * at regular intervals. Returns when bids are found or timeout is reached.
367
+ *
368
+ * **Use case**: After creating a deployment, wait for providers to bid
369
+ *
370
+ * @param wallet - Wallet context
371
+ * @param dseq - Deployment sequence number
372
+ * @param options - Polling configuration
373
+ * @returns Array of bids when found, or error if timeout
374
+ *
375
+ * @example
376
+ * ```typescript
377
+ * // Wait up to 2 minutes for at least 3 bids
378
+ * const bids = await client.awaitBids(
379
+ * { address: 'akash1...' },
380
+ * 12345,
381
+ * { timeout: 120000, minBidCount: 3 }
382
+ * );
383
+ *
384
+ * if (bids.success) {
385
+ * console.log(`Received ${bids.data.length} bids`);
386
+ * }
387
+ * ```
388
+ */
389
+ awaitBids(wallet: WalletContext, dseq: number, options?: BidAwaitOptions): Promise<Result<EnhancedBid[], DeploymentError>>;
390
+ /**
391
+ * Fetch lease details by ID
392
+ *
393
+ * @param lease - Lease identifier
394
+ * @returns Lease details from blockchain
395
+ *
396
+ * @example
397
+ * ```typescript
398
+ * const lease = await client.getLeaseById({
399
+ * owner: 'akash1...',
400
+ * dseq: 12345,
401
+ * gseq: 1,
402
+ * oseq: 1,
403
+ * provider: 'akash1provider...'
404
+ * });
405
+ *
406
+ * console.log(`Lease state: ${lease.data.state}`);
407
+ * console.log(`Price: ${lease.data.price.amount} ${lease.data.price.denom}`);
408
+ * ```
409
+ */
410
+ getLeaseById(lease: LeaseIdentifier): Promise<Result<LeaseDetails, DeploymentError>>;
411
+ /**
412
+ * Fetch multiple leases with optional filtering
413
+ *
414
+ * @param wallet - Wallet context
415
+ * @param filters - Optional filters (dseq, state, provider)
416
+ * @returns Array of matching leases
417
+ *
418
+ * @example
419
+ * ```typescript
420
+ * // Get all active leases
421
+ * const leases = await client.getLeases(
422
+ * { address: 'akash1...' },
423
+ * { state: 'active' }
424
+ * );
425
+ *
426
+ * console.log(`Active leases: ${leases.data.length}`);
427
+ * ```
428
+ */
429
+ getLeases(wallet: WalletContext, filters?: Omit<LeaseFilters, 'owner'>): Promise<Result<readonly LeaseDetails[], DeploymentError>>;
430
+ /**
431
+ * Map lease response to LeaseDetails
432
+ * @private
433
+ */
434
+ private mapLease;
435
+ /**
436
+ * Map lease state enum to string
437
+ * @private
438
+ */
439
+ private mapLeaseState;
440
+ /**
441
+ * Convert Long to string
442
+ * @private
443
+ */
444
+ private longToString;
445
+ /**
446
+ * Fetch deployment details from blockchain
447
+ *
448
+ * @param owner - Wallet address that created deployment
449
+ * @param dseq - Deployment sequence number
450
+ * @returns Deployment details with groups and resources
451
+ *
452
+ * @example
453
+ * ```typescript
454
+ * const deployment = await client.getDeployment('akash1...', 12345);
455
+ *
456
+ * console.log(`State: ${deployment.data.state}`);
457
+ * console.log(`Groups: ${deployment.data.groups.length}`);
458
+ * ```
459
+ */
460
+ getDeployment(owner: string, dseq: number): Promise<Result<DeploymentDetails, DeploymentError>>;
461
+ /**
462
+ * Map deployment response to DeploymentDetails
463
+ * @private
464
+ */
465
+ private mapDeployment;
466
+ /**
467
+ * Map deployment state enum to string
468
+ * @private
469
+ */
470
+ private mapDeploymentState;
471
+ /**
472
+ * Decode resource value from protobuf bytes
473
+ * @private
474
+ */
475
+ private decodeResourceValue;
476
+ /**
477
+ * Convert binary version to hex string
478
+ * @private
479
+ */
480
+ private toHexString;
481
+ /**
482
+ * Fetch provider metadata from blockchain
483
+ *
484
+ * @param providerAddress - Provider wallet address
485
+ * @returns Provider metadata (hostUri, attributes)
486
+ *
487
+ * @example
488
+ * ```typescript
489
+ * const provider = await client.getProvider('akash1provider...');
490
+ *
491
+ * console.log(`Host: ${provider.data.hostUri}`);
492
+ * console.log(`Audited: ${provider.data.attributes.some(a => a.key === 'audited-by')}`);
493
+ * ```
494
+ */
495
+ getProvider(providerAddress: string): Promise<Result<ProviderMetadata | undefined, DeploymentError>>;
496
+ /**
497
+ * Map provider response to ProviderMetadata
498
+ * @private
499
+ */
500
+ private mapProvider;
501
+ /**
502
+ * Normalize provider URI
503
+ * @private
504
+ */
505
+ private normalizeProviderUri;
506
+ /**
507
+ * Create deployment on Akash blockchain
508
+ *
509
+ * Submits an SDL to the blockchain, creating a new deployment that
510
+ * providers can bid on. Requires signing capability.
511
+ *
512
+ * **Gas cost**: ~0.05 AKT + deposit
513
+ *
514
+ * @param sdl - Service Definition Language document
515
+ * @param depositAkt - Initial deposit in AKT (refunded on close)
516
+ * @returns Deployment sequence number and transaction hash
517
+ *
518
+ * @example
519
+ * ```typescript
520
+ * const result = await client.createDeployment(sdl, 5);
521
+ *
522
+ * if (result.success) {
523
+ * console.log(`Deployment created: DSEQ ${result.data.dseq}`);
524
+ * console.log(`Transaction: ${result.data.transactionHash}`);
525
+ * }
526
+ * ```
527
+ */
528
+ createDeployment(sdl: SDL, depositAkt?: number): Promise<Result<DeploymentResult, DeploymentError>>;
529
+ /**
530
+ * Get signer address
531
+ * @private
532
+ */
533
+ private getSignerAddress;
534
+ /**
535
+ * Accept a provider bid and create lease
536
+ *
537
+ * Creates a lease by accepting a provider's bid. The provider will then
538
+ * start deploying containers according to the SDL.
539
+ *
540
+ * **Gas cost**: ~0.02 AKT
541
+ *
542
+ * @param bid - Provider bid to accept (from getBids)
543
+ * @returns Lease identifier and transaction hash
544
+ *
545
+ * @example
546
+ * ```typescript
547
+ * const bids = await client.getBids(wallet, dseq);
548
+ * const cheapestBid = bids.data[0];
549
+ *
550
+ * const lease = await client.acceptBid(cheapestBid.bid);
551
+ *
552
+ * if (lease.success) {
553
+ * console.log(`Lease created with ${lease.data.lease.provider}`);
554
+ * }
555
+ * ```
556
+ */
557
+ acceptBid(bid: ProviderBid): Promise<Result<LeaseResult, DeploymentError>>;
558
+ /**
559
+ * Close deployment on blockchain
560
+ *
561
+ * Closes the deployment and all associated leases. Remaining deposit
562
+ * is refunded to the wallet.
563
+ *
564
+ * **Gas cost**: ~0.02 AKT
565
+ *
566
+ * @param dseq - Deployment sequence number to close
567
+ * @returns Closure confirmation with refund amount
568
+ *
569
+ * @example
570
+ * ```typescript
571
+ * const result = await client.closeDeployment(12345);
572
+ *
573
+ * if (result.success) {
574
+ * console.log(`Deployment ${result.data.dseq} closed`);
575
+ * console.log(`Refunded: ${result.data.refundAmount}`);
576
+ * }
577
+ * ```
578
+ */
579
+ closeDeployment(dseq: number): Promise<Result<DeploymentCloseResult, DeploymentError>>;
580
+ /**
581
+ * Get certificate manager instance
582
+ *
583
+ * Returns a lazy-initialized CertificateManager that uses this client's SDK.
584
+ * The manager handles certificate generation, querying, and broadcasting.
585
+ *
586
+ * @returns Certificate manager instance
587
+ *
588
+ * @example
589
+ * ```typescript
590
+ * const certManager = client.getCertificateManager();
591
+ * const cert = await certManager.getOrCreate('akash1...');
592
+ * ```
593
+ */
594
+ getCertificateManager(): CertificateManager;
595
+ /**
596
+ * Disconnect and cleanup resources
597
+ *
598
+ * Closes SDK connections and cleans up resources. Call this when
599
+ * done with the client to prevent memory leaks.
600
+ *
601
+ * **Important**: Always call this in a `finally` block
602
+ *
603
+ * @example
604
+ * ```typescript
605
+ * const client = new AkashClient({ network: 'mainnet', signer });
606
+ *
607
+ * try {
608
+ * await client.createDeployment(sdl);
609
+ * } finally {
610
+ * await client.disconnect(); // Always cleanup!
611
+ * }
612
+ * ```
613
+ */
614
+ disconnect(): Promise<void>;
615
+ /**
616
+ * Get current network
617
+ *
618
+ * @returns Network this client is connected to
619
+ *
620
+ * @example
621
+ * ```typescript
622
+ * console.log(`Connected to: ${client.getNetwork()}`);
623
+ * ```
624
+ */
625
+ getNetwork(): AkashNetwork;
626
+ /**
627
+ * Check if client can sign transactions
628
+ *
629
+ * Returns true if signer was provided in constructor.
630
+ * Use this to check if write operations are available.
631
+ *
632
+ * @returns True if client can sign transactions
633
+ *
634
+ * @example
635
+ * ```typescript
636
+ * if (!client.canSign()) {
637
+ * console.error('Cannot create deployment - client is read-only');
638
+ * console.log('Create client with signer for write operations');
639
+ * }
640
+ * ```
641
+ */
642
+ canSign(): boolean;
643
+ }
644
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/client.ts"],"names":[],"mappings":"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"}