@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.
- 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/compose-generator.d.ts.map +1 -1
- package/dist/targets/local/compose-generator.js +1 -0
- package/dist/targets/local/compose-generator.js.map +1 -1
- package/dist/targets/local/deployer.js +4 -4
- package/dist/targets/local/deployer.js.map +1 -1
- package/dist/targets/local/types.d.ts +4 -0
- package/dist/targets/local/types.d.ts.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/docs/KADI_ABILITY_CONVERSION.md +1365 -0
- package/docs/PIPELINE_BUILDER_DESIGN.md +1149 -0
- 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
|
@@ -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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"}
|