@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,12 +1,111 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Akash
|
|
2
|
+
* Akash Container Log Streaming
|
|
3
3
|
*
|
|
4
|
-
* Streams container logs from Akash
|
|
5
|
-
*
|
|
4
|
+
* Streams container logs in real-time from Akash deployments using WebSocket
|
|
5
|
+
* connections with mTLS authentication.
|
|
6
|
+
*
|
|
7
|
+
* Key responsibilities:
|
|
8
|
+
* - Establish WebSocket connection to provider with certificate authentication
|
|
9
|
+
* - Parse and normalize log messages from provider format
|
|
10
|
+
* - Emit typed log events for consumption
|
|
11
|
+
* - Support filtering by service name and tail functionality
|
|
6
12
|
*
|
|
7
13
|
* @module targets/akash/logs
|
|
8
14
|
*/
|
|
9
|
-
import
|
|
15
|
+
import { EventEmitter } from 'node:events';
|
|
16
|
+
import type { AkashDeploymentData } from '../../types/index.js';
|
|
17
|
+
import type { WalletContext } from './types.js';
|
|
18
|
+
import type { AkashProviderTlsCertificate } from './types.js';
|
|
19
|
+
import type { Network } from '../../types/common.js';
|
|
20
|
+
/**
|
|
21
|
+
* Options for streaming deployment logs
|
|
22
|
+
*/
|
|
23
|
+
export interface StreamLogsOptions {
|
|
24
|
+
/** Deployment data returned from deployToAkash() */
|
|
25
|
+
readonly deployment: AkashDeploymentData;
|
|
26
|
+
/** Wallet context (for provider address verification) */
|
|
27
|
+
readonly wallet: WalletContext;
|
|
28
|
+
/** Akash certificate (for mTLS authentication) */
|
|
29
|
+
readonly certificate: AkashProviderTlsCertificate;
|
|
30
|
+
/** Network (mainnet or testnet) */
|
|
31
|
+
readonly network: Network;
|
|
32
|
+
/** Optional: Filter logs by service names (default: all services) */
|
|
33
|
+
readonly services?: readonly string[];
|
|
34
|
+
/** Keep connection open and stream new logs (default: true) */
|
|
35
|
+
readonly follow?: boolean;
|
|
36
|
+
/** Show last N lines before streaming (default: 100) */
|
|
37
|
+
readonly tail?: number;
|
|
38
|
+
/** Optional: Custom logger for debugging */
|
|
39
|
+
readonly logger?: {
|
|
40
|
+
readonly debug?: (msg: string) => void;
|
|
41
|
+
readonly warn?: (msg: string) => void;
|
|
42
|
+
readonly error?: (msg: string) => void;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Options for getting logs as an array (non-streaming)
|
|
47
|
+
*/
|
|
48
|
+
export interface GetLogsOptions extends Omit<StreamLogsOptions, 'follow'> {
|
|
49
|
+
/** Maximum logs to retrieve (default: 1000) */
|
|
50
|
+
readonly maxLogs?: number;
|
|
51
|
+
/** Timeout in milliseconds (default: 30000) */
|
|
52
|
+
readonly timeout?: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Parsed log entry from Akash provider
|
|
56
|
+
*/
|
|
57
|
+
export interface LogEntry {
|
|
58
|
+
/** Service name (e.g., "ollama", "vllm") */
|
|
59
|
+
readonly service: string;
|
|
60
|
+
/** Log message content */
|
|
61
|
+
readonly message: string;
|
|
62
|
+
/** Raw log data from provider */
|
|
63
|
+
readonly raw: {
|
|
64
|
+
/** Full service name with replica suffix */
|
|
65
|
+
readonly name: string;
|
|
66
|
+
/** Original message before parsing */
|
|
67
|
+
readonly message: string;
|
|
68
|
+
/** ISO timestamp from provider */
|
|
69
|
+
readonly timestamp?: string;
|
|
70
|
+
};
|
|
71
|
+
/** When this log was received by deploy-ability */
|
|
72
|
+
readonly receivedAt: Date;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Log stream emitter
|
|
76
|
+
*
|
|
77
|
+
* Events:
|
|
78
|
+
* - 'log': Emitted for each log line
|
|
79
|
+
* - 'connected': WebSocket connection established
|
|
80
|
+
* - 'error': Connection or parsing error
|
|
81
|
+
* - 'end': Stream ended (natural or via close())
|
|
82
|
+
*/
|
|
83
|
+
export interface LogStream extends EventEmitter {
|
|
84
|
+
/** Close the stream and disconnect */
|
|
85
|
+
close(): void;
|
|
86
|
+
/** Check if stream is currently connected */
|
|
87
|
+
isConnected(): boolean;
|
|
88
|
+
on(event: 'log', listener: (log: LogEntry) => void): this;
|
|
89
|
+
on(event: 'connected', listener: () => void): this;
|
|
90
|
+
on(event: 'error', listener: (error: Error) => void): this;
|
|
91
|
+
on(event: 'end', listener: () => void): this;
|
|
92
|
+
once(event: 'log', listener: (log: LogEntry) => void): this;
|
|
93
|
+
once(event: 'connected', listener: () => void): this;
|
|
94
|
+
once(event: 'error', listener: (error: Error) => void): this;
|
|
95
|
+
once(event: 'end', listener: () => void): this;
|
|
96
|
+
off(event: 'log', listener: (log: LogEntry) => void): this;
|
|
97
|
+
off(event: 'connected', listener: () => void): this;
|
|
98
|
+
off(event: 'error', listener: (error: Error) => void): this;
|
|
99
|
+
off(event: 'end', listener: () => void): this;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Internal raw log message from Akash provider
|
|
103
|
+
*/
|
|
104
|
+
export interface RawProviderLogMessage {
|
|
105
|
+
readonly name: string;
|
|
106
|
+
readonly message: string;
|
|
107
|
+
readonly timestamp?: string;
|
|
108
|
+
}
|
|
10
109
|
/**
|
|
11
110
|
* Stream container logs from an Akash deployment in real-time
|
|
12
111
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/logs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAUrD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAEzC,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAElD,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEtC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KACxC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IACvE,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE;QACZ,4CAA4C;QAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAEtB,sCAAsC;QACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAEzB,kCAAkC;QAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IAEF,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,sCAAsC;IACtC,KAAK,IAAI,IAAI,CAAC;IAEd,6CAA6C;IAC7C,WAAW,IAAI,OAAO,CAAC;IAGvB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACnD,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE/C,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpD,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAmOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAU1E;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,EAAE,CAAC,CA0CrB"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Akash
|
|
2
|
+
* Akash Container Log Streaming
|
|
3
3
|
*
|
|
4
|
-
* Streams container logs from Akash
|
|
5
|
-
*
|
|
4
|
+
* Streams container logs in real-time from Akash deployments using WebSocket
|
|
5
|
+
* connections with mTLS authentication.
|
|
6
|
+
*
|
|
7
|
+
* Key responsibilities:
|
|
8
|
+
* - Establish WebSocket connection to provider with certificate authentication
|
|
9
|
+
* - Parse and normalize log messages from provider format
|
|
10
|
+
* - Emit typed log events for consumption
|
|
11
|
+
* - Support filtering by service name and tail functionality
|
|
6
12
|
*
|
|
7
13
|
* @module targets/akash/logs
|
|
8
14
|
*/
|
|
@@ -14,6 +20,9 @@ import stripAnsi from 'strip-ansi';
|
|
|
14
20
|
// Initialize debug logging
|
|
15
21
|
// Usage: DEBUG=deploy-ability:logs:* to see log parsing details
|
|
16
22
|
const debug = createDebug('deploy-ability:logs');
|
|
23
|
+
// ========================================
|
|
24
|
+
// Implementation
|
|
25
|
+
// ========================================
|
|
17
26
|
/**
|
|
18
27
|
* Implementation of LogStream using EventEmitter
|
|
19
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/targets/akash/logs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/targets/akash/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,247 +1,68 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Akash Lease Pricing Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* **Price Calculation Background:**
|
|
9
|
-
*
|
|
10
|
-
* Akash leases are priced per block on the blockchain. The raw price from the
|
|
11
|
-
* blockchain is in uAKT (micro AKT, where 1 AKT = 1,000,000 uAKT) per block.
|
|
12
|
-
*
|
|
13
|
-
* To make this human-readable, we calculate:
|
|
14
|
-
* - Price per hour: Based on average blocks per hour
|
|
15
|
-
* - Price per month: Based on average blocks per month
|
|
16
|
-
* - Price in USD: Requires current AKT market price
|
|
17
|
-
*
|
|
18
|
-
* **Constants (from Akash Console):**
|
|
19
|
-
* - Average block time: 6.098 seconds
|
|
20
|
-
* - Average days in month: 30.437 days (365.25 / 12)
|
|
4
|
+
* Price calculations for Akash Network deployments using the same formulas as
|
|
5
|
+
* Akash Console. Converts per-block prices to human-readable formats (hour/month)
|
|
6
|
+
* and supports USD conversion.
|
|
21
7
|
*
|
|
22
8
|
* @module targets/akash/pricing
|
|
23
9
|
*/
|
|
24
|
-
/**
|
|
25
|
-
* Average time between blocks on Akash Network (in seconds)
|
|
26
|
-
*
|
|
27
|
-
* This value is determined empirically by observing actual block times.
|
|
28
|
-
* Akash Console uses 6.098 seconds as the average.
|
|
29
|
-
*
|
|
30
|
-
* @see https://github.com/akash-network/console
|
|
31
|
-
*/
|
|
10
|
+
/** Average block time on Akash Network (empirically determined) */
|
|
32
11
|
export declare const AVERAGE_BLOCK_TIME_SECONDS = 6.098;
|
|
33
|
-
/**
|
|
34
|
-
* Average number of days in a month (365.25 / 12)
|
|
35
|
-
*
|
|
36
|
-
* Using the astronomical year (365.25 days) divided by 12 months
|
|
37
|
-
* provides accurate monthly cost estimates.
|
|
38
|
-
*/
|
|
12
|
+
/** Average days in a month (365.25 / 12) for accurate monthly estimates */
|
|
39
13
|
export declare const AVERAGE_DAYS_IN_MONTH = 30.437;
|
|
40
|
-
/**
|
|
41
|
-
* Conversion factor: 1 AKT = 1,000,000 uAKT
|
|
42
|
-
*/
|
|
14
|
+
/** Conversion factor: 1 AKT = 1,000,000 uAKT */
|
|
43
15
|
export declare const UAKT_PER_AKT = 1000000;
|
|
44
16
|
/**
|
|
45
|
-
* Lease price
|
|
46
|
-
*
|
|
47
|
-
* This class encapsulates all pricing information for an Akash lease and provides
|
|
48
|
-
* methods to convert between different formats (per block, per hour, per month)
|
|
49
|
-
* and currencies (uAKT, AKT, USD).
|
|
50
|
-
*
|
|
51
|
-
* **Usage Philosophy:**
|
|
52
|
-
*
|
|
53
|
-
* The blockchain provides raw price per block in uAKT. This class:
|
|
54
|
-
* 1. Stores the raw value (immutable)
|
|
55
|
-
* 2. Pre-computes common formats (per hour, per month)
|
|
56
|
-
* 3. Provides USD conversion only when caller provides AKT price
|
|
57
|
-
*
|
|
58
|
-
* This design keeps deploy-ability pure (no external API dependencies) while
|
|
59
|
-
* giving callers maximum flexibility in displaying prices.
|
|
60
|
-
*
|
|
61
|
-
* @example Basic usage - uAKT prices
|
|
62
|
-
* ```typescript
|
|
63
|
-
* const price = new LeasePrice({ denom: 'uakt', amount: '1234' });
|
|
64
|
-
*
|
|
65
|
-
* console.log(price.uakt.perBlock); // 1234
|
|
66
|
-
* console.log(price.uakt.perHour); // ~720,000
|
|
67
|
-
* console.log(price.uakt.perMonth); // ~522,000,000
|
|
68
|
-
* ```
|
|
69
|
-
*
|
|
70
|
-
* @example USD conversion
|
|
71
|
-
* ```typescript
|
|
72
|
-
* const price = new LeasePrice({ denom: 'uakt', amount: '1234' });
|
|
73
|
-
*
|
|
74
|
-
* // Fetch current AKT price from your preferred source
|
|
75
|
-
* const aktPrice = 0.50; // $0.50 per AKT
|
|
76
|
-
*
|
|
77
|
-
* const usd = price.toUSD(aktPrice);
|
|
78
|
-
* console.log(`$${usd.perMonth.toFixed(2)}/month`); // "$0.26/month"
|
|
79
|
-
* console.log(`$${usd.perHour.toFixed(4)}/hour`); // "$0.0004/hour"
|
|
80
|
-
* ```
|
|
81
|
-
*
|
|
82
|
-
* @example Displaying in kadi-deploy CLI
|
|
83
|
-
* ```typescript
|
|
84
|
-
* const result = await deployToAkash({ ... });
|
|
85
|
-
*
|
|
86
|
-
* if (result.success) {
|
|
87
|
-
* const { leasePrice } = result.data;
|
|
88
|
-
*
|
|
89
|
-
* // Fetch AKT price
|
|
90
|
-
* const aktPrice = await fetchAktPriceFromCoinGecko();
|
|
91
|
-
* const usd = leasePrice.toUSD(aktPrice);
|
|
92
|
-
*
|
|
93
|
-
* logger.log('Lease Pricing:');
|
|
94
|
-
* logger.log(` ${leasePrice.uakt.perMonth} uAKT/month ($${usd.perMonth.toFixed(2)}/month)`);
|
|
95
|
-
* logger.log(` ${leasePrice.uakt.perHour} uAKT/hour ($${usd.perHour.toFixed(4)}/hour)`);
|
|
96
|
-
* logger.log(` ${leasePrice.perBlock.amount} uAKT/block ($${usd.perBlock.toFixed(6)}/block)`);
|
|
97
|
-
* }
|
|
98
|
-
* ```
|
|
17
|
+
* Lease price with multiple time periods (block/hour/month) and currencies (uAKT/AKT/USD).
|
|
18
|
+
* All prices derived from blockchain's raw per-block price.
|
|
99
19
|
*/
|
|
100
20
|
export declare class LeasePrice {
|
|
101
|
-
/**
|
|
102
|
-
* Raw price from blockchain (per block)
|
|
103
|
-
*
|
|
104
|
-
* This is the authoritative source - all other prices are computed from this.
|
|
105
|
-
*/
|
|
106
21
|
readonly perBlock: {
|
|
107
22
|
readonly denom: string;
|
|
108
23
|
readonly amount: string;
|
|
109
24
|
};
|
|
110
|
-
/**
|
|
111
|
-
* Pre-computed prices in uAKT for different time periods
|
|
112
|
-
*
|
|
113
|
-
* All values are in micro AKT (uAKT). To convert to AKT, divide by 1,000,000.
|
|
114
|
-
*/
|
|
115
25
|
readonly uakt: {
|
|
116
|
-
/** Price in uAKT per block (same as perBlock.amount, but as number) */
|
|
117
26
|
readonly perBlock: number;
|
|
118
|
-
/** Price in uAKT per hour */
|
|
119
27
|
readonly perHour: number;
|
|
120
|
-
/** Price in uAKT per month (30.437 days) */
|
|
121
28
|
readonly perMonth: number;
|
|
122
29
|
};
|
|
123
|
-
/**
|
|
124
|
-
* Pre-computed prices in AKT (1 AKT = 1,000,000 uAKT)
|
|
125
|
-
*
|
|
126
|
-
* Convenient for display without manual conversion.
|
|
127
|
-
*/
|
|
128
30
|
readonly akt: {
|
|
129
|
-
/** Price in AKT per block */
|
|
130
31
|
readonly perBlock: number;
|
|
131
|
-
/** Price in AKT per hour */
|
|
132
32
|
readonly perHour: number;
|
|
133
|
-
/** Price in AKT per month */
|
|
134
33
|
readonly perMonth: number;
|
|
135
34
|
};
|
|
136
|
-
/**
|
|
137
|
-
* Create a LeasePrice instance from blockchain price data
|
|
138
|
-
*
|
|
139
|
-
* @param price - Price object from blockchain query
|
|
140
|
-
* @param price.denom - Denomination (typically "uakt")
|
|
141
|
-
* @param price.amount - Amount per block as string
|
|
142
|
-
*
|
|
143
|
-
* @example
|
|
144
|
-
* ```typescript
|
|
145
|
-
* const price = new LeasePrice({
|
|
146
|
-
* denom: 'uakt',
|
|
147
|
-
* amount: '1234'
|
|
148
|
-
* });
|
|
149
|
-
* ```
|
|
150
|
-
*/
|
|
151
35
|
constructor(price: {
|
|
152
36
|
denom: string;
|
|
153
37
|
amount: string;
|
|
154
38
|
});
|
|
155
39
|
/**
|
|
156
|
-
* Convert
|
|
157
|
-
*
|
|
158
|
-
* **Important:** This method requires you to provide the current AKT price.
|
|
159
|
-
* deploy-ability does not fetch market data to remain pure and dependency-free.
|
|
160
|
-
*
|
|
161
|
-
* **Where to get AKT price:**
|
|
162
|
-
* - CoinGecko API: https://api.coingecko.com/api/v3/simple/price?ids=akash-network&vs_currencies=usd
|
|
163
|
-
* - Your own price oracle
|
|
164
|
-
* - Akash Console API (if available)
|
|
165
|
-
* - Cached/hardcoded value for estimates
|
|
166
|
-
*
|
|
167
|
-
* @param aktPriceUSD - Current price of 1 AKT in USD
|
|
168
|
-
* @returns Prices in USD for different time periods
|
|
169
|
-
*
|
|
170
|
-
* @example Fetch from CoinGecko
|
|
171
|
-
* ```typescript
|
|
172
|
-
* const aktPrice = await fetch(
|
|
173
|
-
* 'https://api.coingecko.com/api/v3/simple/price?ids=akash-network&vs_currencies=usd'
|
|
174
|
-
* )
|
|
175
|
-
* .then(r => r.json())
|
|
176
|
-
* .then(data => data['akash-network'].usd);
|
|
177
|
-
*
|
|
178
|
-
* const usdPricing = leasePrice.toUSD(aktPrice);
|
|
179
|
-
* console.log(`Cost: $${usdPricing.perMonth.toFixed(2)}/month`);
|
|
180
|
-
* ```
|
|
181
|
-
*
|
|
182
|
-
* @example Use hardcoded estimate
|
|
183
|
-
* ```typescript
|
|
184
|
-
* // For quick estimates (update periodically)
|
|
185
|
-
* const aktPrice = 0.50; // $0.50 per AKT
|
|
186
|
-
* const usdPricing = leasePrice.toUSD(aktPrice);
|
|
187
|
-
* ```
|
|
40
|
+
* Convert to USD. You provide the AKT price (library stays dependency-free).
|
|
41
|
+
* Get AKT price from CoinGecko, your oracle, or hardcode for estimates.
|
|
188
42
|
*/
|
|
189
43
|
toUSD(aktPriceUSD: number): {
|
|
190
44
|
readonly perBlock: number;
|
|
191
45
|
readonly perHour: number;
|
|
192
46
|
readonly perMonth: number;
|
|
193
47
|
};
|
|
194
|
-
/**
|
|
195
|
-
* Get a formatted summary of all pricing information
|
|
196
|
-
*
|
|
197
|
-
* Useful for logging or debugging. Returns a plain object with all computed prices.
|
|
198
|
-
*
|
|
199
|
-
* @returns Complete pricing breakdown
|
|
200
|
-
*
|
|
201
|
-
* @example
|
|
202
|
-
* ```typescript
|
|
203
|
-
* console.log(leasePrice.toJSON());
|
|
204
|
-
* // {
|
|
205
|
-
* // perBlock: { denom: 'uakt', amount: '1234' },
|
|
206
|
-
* // uakt: { perBlock: 1234, perHour: 729234, perMonth: 522456789 },
|
|
207
|
-
* // akt: { perBlock: 0.001234, perHour: 0.729234, perMonth: 522.456789 }
|
|
208
|
-
* // }
|
|
209
|
-
* ```
|
|
210
|
-
*/
|
|
48
|
+
/** Get formatted pricing summary */
|
|
211
49
|
toJSON(): {
|
|
212
50
|
perBlock: {
|
|
213
51
|
readonly denom: string;
|
|
214
52
|
readonly amount: string;
|
|
215
53
|
};
|
|
216
54
|
uakt: {
|
|
217
|
-
/** Price in uAKT per block (same as perBlock.amount, but as number) */
|
|
218
55
|
readonly perBlock: number;
|
|
219
|
-
/** Price in uAKT per hour */
|
|
220
56
|
readonly perHour: number;
|
|
221
|
-
/** Price in uAKT per month (30.437 days) */
|
|
222
57
|
readonly perMonth: number;
|
|
223
58
|
};
|
|
224
59
|
akt: {
|
|
225
|
-
/** Price in AKT per block */
|
|
226
60
|
readonly perBlock: number;
|
|
227
|
-
/** Price in AKT per hour */
|
|
228
61
|
readonly perHour: number;
|
|
229
|
-
/** Price in AKT per month */
|
|
230
62
|
readonly perMonth: number;
|
|
231
63
|
};
|
|
232
64
|
};
|
|
233
|
-
/**
|
|
234
|
-
* Create LeasePrice from uAKT amount (convenience method)
|
|
235
|
-
*
|
|
236
|
-
* @param amountUakt - Price per block in uAKT
|
|
237
|
-
* @returns New LeasePrice instance
|
|
238
|
-
*
|
|
239
|
-
* @example
|
|
240
|
-
* ```typescript
|
|
241
|
-
* const price = LeasePrice.fromUakt(1234);
|
|
242
|
-
* // Equivalent to: new LeasePrice({ denom: 'uakt', amount: '1234' })
|
|
243
|
-
* ```
|
|
244
|
-
*/
|
|
65
|
+
/** Create LeasePrice from uAKT amount (convenience method) */
|
|
245
66
|
static fromUakt(amountUakt: number): LeasePrice;
|
|
246
67
|
}
|
|
247
68
|
//# sourceMappingURL=pricing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/pricing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,gDAAgD;AAChD,eAAO,MAAM,YAAY,UAAY,CAAC;AAEtC;;;GAGG;AACH,qBAAa,UAAU;IACrB,SAAgB,QAAQ,EAAE;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,SAAgB,IAAI,EAAE;QACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;IAEF,SAAgB,GAAG,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;gBAEU,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAuBpD;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B;IAQD,oCAAoC;IACpC,MAAM;;4BAxDY,MAAM;6BACL,MAAM;;;+BAIJ,MAAM;8BACP,MAAM;+BACL,MAAM;;;+BAIN,MAAM;8BACP,MAAM;+BACL,MAAM;;;IAmD3B,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAMhD"}
|