@phala/cloud 0.0.1 → 0.0.3

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 (68) hide show
  1. package/dist/actions/add_compose_hash.d.ts +63 -0
  2. package/dist/actions/add_compose_hash.d.ts.map +1 -0
  3. package/dist/actions/commit_cvm_compose_file_update.d.ts +143 -0
  4. package/dist/actions/commit_cvm_compose_file_update.d.ts.map +1 -0
  5. package/dist/actions/commit_cvm_provision.d.ts +209 -0
  6. package/dist/actions/commit_cvm_provision.d.ts.map +1 -0
  7. package/dist/actions/deploy_app_auth.d.ts +164 -0
  8. package/dist/actions/deploy_app_auth.d.ts.map +1 -0
  9. package/dist/actions/get_app_env_encrypt_pubkey.d.ts +30 -0
  10. package/dist/actions/get_app_env_encrypt_pubkey.d.ts.map +1 -0
  11. package/dist/actions/get_available_nodes.d.ts +572 -0
  12. package/dist/actions/get_available_nodes.d.ts.map +1 -0
  13. package/dist/actions/get_current_user.d.ts +92 -0
  14. package/dist/actions/get_current_user.d.ts.map +1 -0
  15. package/dist/actions/get_cvm_compose_file.d.ts +190 -0
  16. package/dist/actions/get_cvm_compose_file.d.ts.map +1 -0
  17. package/dist/actions/get_cvm_info.d.ts +73 -0
  18. package/dist/actions/get_cvm_info.d.ts.map +1 -0
  19. package/dist/actions/get_cvm_list.d.ts +392 -0
  20. package/dist/actions/get_cvm_list.d.ts.map +1 -0
  21. package/dist/actions/get_kms_info.d.ts +34 -0
  22. package/dist/actions/get_kms_info.d.ts.map +1 -0
  23. package/dist/actions/get_kms_list.d.ts +82 -0
  24. package/dist/actions/get_kms_list.d.ts.map +1 -0
  25. package/dist/actions/index.d.ts +15 -0
  26. package/dist/actions/index.d.ts.map +1 -0
  27. package/dist/actions/provision_cvm.d.ts +228 -0
  28. package/dist/actions/provision_cvm.d.ts.map +1 -0
  29. package/dist/actions/provision_cvm_compose_file_update.d.ts +313 -0
  30. package/dist/actions/provision_cvm_compose_file_update.d.ts.map +1 -0
  31. package/dist/client.d.ts +80 -0
  32. package/dist/client.d.ts.map +1 -0
  33. package/dist/index.d.ts +9 -2978
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +91 -20
  36. package/dist/index.js.map +1 -0
  37. package/dist/index.mjs +89 -18
  38. package/dist/index.mjs.map +1 -0
  39. package/dist/parse_dotenv.d.ts +14 -0
  40. package/dist/parse_dotenv.d.ts.map +1 -0
  41. package/dist/types/client.d.ts +126 -0
  42. package/dist/types/client.d.ts.map +1 -0
  43. package/dist/types/common.d.ts +17 -0
  44. package/dist/types/common.d.ts.map +1 -0
  45. package/dist/types/cvm_info.d.ts +486 -0
  46. package/dist/types/cvm_info.d.ts.map +1 -0
  47. package/dist/types/index.d.ts +2 -0
  48. package/dist/types/index.d.ts.map +1 -0
  49. package/dist/types/kms_info.d.ts +28 -0
  50. package/dist/types/kms_info.d.ts.map +1 -0
  51. package/dist/utils/as-hex.d.ts +17 -0
  52. package/dist/utils/as-hex.d.ts.map +1 -0
  53. package/dist/utils/client-factories.d.ts +44 -0
  54. package/dist/utils/client-factories.d.ts.map +1 -0
  55. package/dist/utils/get_compose_hash.d.ts +15 -0
  56. package/dist/utils/get_compose_hash.d.ts.map +1 -0
  57. package/dist/utils/get_error_message.d.ts +3 -0
  58. package/dist/utils/get_error_message.d.ts.map +1 -0
  59. package/dist/utils/index.d.ts +9 -0
  60. package/dist/utils/index.d.ts.map +1 -0
  61. package/dist/utils/network.d.ts +101 -0
  62. package/dist/utils/network.d.ts.map +1 -0
  63. package/dist/utils/transaction.d.ts +81 -0
  64. package/dist/utils/transaction.d.ts.map +1 -0
  65. package/dist/utils/validate-parameters.d.ts +20 -0
  66. package/dist/utils/validate-parameters.d.ts.map +1 -0
  67. package/package.json +10 -4
  68. package/dist/index.d.mts +0 -2978
@@ -0,0 +1,17 @@
1
+ import { type Hex } from "viem";
2
+ /**
3
+ * Converts a value to a hex string with 0x prefix.
4
+ *
5
+ * @param value - The value to convert to hex. Can be a string with or without 0x prefix.
6
+ * @returns A valid hex string with 0x prefix.
7
+ * @throws Error if the value cannot be converted to a valid hex string.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * asHex("abc123") // "0xabc123"
12
+ * asHex("0xabc123") // "0xabc123"
13
+ * asHex("xyz") // throws Error
14
+ * ```
15
+ */
16
+ export declare function asHex(value: unknown): Hex;
17
+ //# sourceMappingURL=as-hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-hex.d.ts","sourceRoot":"","sources":["../../src/utils/as-hex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAS,MAAM,MAAM,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CASzC"}
@@ -0,0 +1,44 @@
1
+ import { type Chain, type Hash } from "viem";
2
+ import { type NetworkClients } from "./network";
3
+ interface EthereumProvider {
4
+ request: (args: {
5
+ method: string;
6
+ params?: unknown[];
7
+ }) => Promise<unknown>;
8
+ on?(event: string, handler: (...args: unknown[]) => void): void;
9
+ removeListener?(event: string, handler: (...args: unknown[]) => void): void;
10
+ }
11
+ /**
12
+ * CONVENIENCE: Create clients from private key (server-side)
13
+ * You can also create your own viem clients and use createNetworkClients() directly
14
+ */
15
+ export declare function createClientsFromPrivateKey(chain: Chain, privateKey: Hash, rpcUrl?: string): NetworkClients;
16
+ /**
17
+ * CONVENIENCE: Create clients from browser wallet (client-side)
18
+ * You can also create your own viem clients and use createNetworkClients() directly
19
+ */
20
+ export declare function createClientsFromBrowser(chain: Chain, rpcUrl?: string): Promise<NetworkClients>;
21
+ /**
22
+ * CONVENIENCE: Switch to a specific network in browser wallet
23
+ */
24
+ export declare function switchToNetwork(provider: EthereumProvider, chainId: number): Promise<void>;
25
+ /**
26
+ * CONVENIENCE: Add a custom network to browser wallet
27
+ */
28
+ export declare function addNetwork(provider: EthereumProvider, config: {
29
+ chainId: number;
30
+ name: string;
31
+ rpcUrl: string;
32
+ blockExplorer?: string;
33
+ }): Promise<void>;
34
+ /**
35
+ * CONVENIENCE: Auto-detect environment and create clients
36
+ * You can also create your own viem clients and use createNetworkClients() directly
37
+ */
38
+ export declare function autoCreateClients(chain: Chain, options?: {
39
+ privateKey?: Hash;
40
+ rpcUrl?: string;
41
+ preferBrowser?: boolean;
42
+ }): Promise<NetworkClients>;
43
+ export {};
44
+ //# sourceMappingURL=client-factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-factories.d.ts","sourceRoot":"","sources":["../../src/utils/client-factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EAEV,KAAK,IAAI,EACV,MAAM,MAAM,CAAC;AAEd,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAkBnB,UAAU,gBAAgB;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7E;AAUD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAuBhB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CA2DzB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhG;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL,OAAO,CAAC,cAAc,CAAC,CAiBzB"}
@@ -0,0 +1,15 @@
1
+ type SortableValue = string | number | boolean | null | undefined | SortableObject | SortableArray;
2
+ interface SortableObject {
3
+ [key: string]: SortableValue;
4
+ }
5
+ interface SortableArray extends Array<SortableValue> {
6
+ }
7
+ export interface AppCompose extends SortableObject {
8
+ runner?: string;
9
+ docker_compose_file?: string;
10
+ bash_script?: string;
11
+ pre_launch_script?: string;
12
+ }
13
+ export declare function getComposeHash(app_compose: AppCompose): string;
14
+ export {};
15
+ //# sourceMappingURL=get_compose_hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_compose_hash.d.ts","sourceRoot":"","sources":["../../src/utils/get_compose_hash.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;AACnG,UAAU,cAAc;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AACD,UAAU,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC;CAAG;AAoBvD,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsBD,wBAAgB,cAAc,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAI9D"}
@@ -0,0 +1,3 @@
1
+ import type { ApiError } from "../types";
2
+ export declare function getErrorMessage(error: ApiError): string;
3
+ //# sourceMappingURL=get_error_message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_error_message.d.ts","sourceRoot":"","sources":["../../src/utils/get_error_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAiBvD"}
@@ -0,0 +1,9 @@
1
+ export { encryptEnvVars } from "@phala/dstack-sdk/encrypt-env-vars";
2
+ export { getComposeHash, type AppCompose } from "./get_compose_hash";
3
+ export { getErrorMessage } from "./get_error_message";
4
+ export { asHex } from "./as-hex";
5
+ export { validateActionParameters, safeValidateActionParameters } from "./validate-parameters";
6
+ export { createNetworkClients, extractNetworkClients, checkNetworkStatus, checkBalance, validateNetworkPrerequisites, waitForTransactionReceipt, executeTransaction, NetworkError, WalletError, TransactionError, type NetworkConfig, type WalletConnection, type NetworkClients, type BalanceCheckResult, type TransactionOptions, type TransactionResult, } from "./network";
7
+ export { createTransactionTracker, executeBatchTransactions, executeTransactionWithRetry, estimateTransactionGas, type TransactionState, type TransactionStatus, type TransactionTracker, type BatchTransactionOptions, type BatchTransactionResult, type RetryOptions, type GasEstimationOptions, } from "./transaction";
8
+ export { createClientsFromPrivateKey, createClientsFromBrowser, autoCreateClients, switchToNetwork, addNetwork, } from "./client-factories";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAG/F,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EAErB,kBAAkB,EAClB,YAAY,EACZ,4BAA4B,EAE5B,yBAAyB,EACzB,kBAAkB,EAElB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAEhB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAEL,wBAAwB,EAExB,wBAAwB,EAExB,2BAA2B,EAE3B,sBAAsB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAEL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EAEjB,eAAe,EACf,UAAU,GACX,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { type Address, type Hash, type PublicClient, type WalletClient, type TransactionReceipt } from "viem";
2
+ export interface NetworkClients {
3
+ publicClient: PublicClient;
4
+ walletClient: WalletClient;
5
+ address: Address;
6
+ chainId: number;
7
+ }
8
+ export interface NetworkConfig {
9
+ chainId: number;
10
+ name: string;
11
+ rpcUrl: string;
12
+ blockExplorer?: string;
13
+ }
14
+ export interface WalletConnection {
15
+ address: Address;
16
+ chainId: number;
17
+ }
18
+ export interface BalanceCheckResult {
19
+ address: Address;
20
+ balance: bigint;
21
+ sufficient: boolean;
22
+ required?: bigint;
23
+ }
24
+ export interface TransactionOptions {
25
+ timeout?: number;
26
+ confirmations?: number;
27
+ onSubmitted?: (hash: Hash) => void;
28
+ onConfirmed?: (receipt: TransactionReceipt) => void;
29
+ onError?: (error: Error, hash?: Hash) => void;
30
+ }
31
+ export interface TransactionResult {
32
+ hash: Hash;
33
+ receipt: TransactionReceipt;
34
+ success: boolean;
35
+ }
36
+ export declare class NetworkError extends Error {
37
+ code?: string | undefined;
38
+ details?: unknown | undefined;
39
+ constructor(message: string, code?: string | undefined, details?: unknown | undefined);
40
+ }
41
+ export declare class WalletError extends Error {
42
+ code?: string | undefined;
43
+ details?: unknown | undefined;
44
+ constructor(message: string, code?: string | undefined, details?: unknown | undefined);
45
+ }
46
+ export declare class TransactionError extends Error {
47
+ hash?: Hash | undefined;
48
+ details?: unknown | undefined;
49
+ constructor(message: string, hash?: Hash | undefined, details?: unknown | undefined);
50
+ }
51
+ /**
52
+ * Create a NetworkClients object from existing viem clients
53
+ * This is the primary way to create NetworkClients - the caller provides pre-configured clients
54
+ */
55
+ export declare function createNetworkClients(publicClient: PublicClient, walletClient: WalletClient, address: Address, chainId: number): NetworkClients;
56
+ /**
57
+ * Check wallet connection and network status
58
+ */
59
+ export declare function checkNetworkStatus(clients: NetworkClients, targetChainId: number): Promise<{
60
+ isCorrectNetwork: boolean;
61
+ currentChainId: number;
62
+ }>;
63
+ /**
64
+ * Check wallet balance
65
+ */
66
+ export declare function checkBalance(publicClient: PublicClient, address: Address, minBalance?: bigint): Promise<BalanceCheckResult>;
67
+ /**
68
+ * Wait for transaction receipt with timeout and polling
69
+ */
70
+ export declare function waitForTransactionReceipt(publicClient: PublicClient, hash: Hash, options?: {
71
+ timeout?: number;
72
+ pollingInterval?: number;
73
+ confirmations?: number;
74
+ }): Promise<TransactionReceipt>;
75
+ /**
76
+ * Execute a transaction with automatic receipt waiting and error handling
77
+ */
78
+ export declare function executeTransaction<T extends unknown[]>(clients: NetworkClients, operation: (clients: NetworkClients, ...args: T) => Promise<Hash>, args: T, options?: TransactionOptions): Promise<TransactionResult>;
79
+ /**
80
+ * Extract NetworkClients info from existing viem clients
81
+ * Useful when you have existing clients and want to create a NetworkClients object
82
+ */
83
+ export declare function extractNetworkClients(publicClient: PublicClient, walletClient: WalletClient): Promise<NetworkClients>;
84
+ /**
85
+ * Comprehensive network validation
86
+ */
87
+ export declare function validateNetworkPrerequisites(clients: NetworkClients, requirements: {
88
+ targetChainId: number;
89
+ minBalance?: bigint;
90
+ requiredAddress?: Address;
91
+ }): Promise<{
92
+ networkValid: boolean;
93
+ balanceValid: boolean;
94
+ addressValid: boolean;
95
+ details: {
96
+ currentChainId: number;
97
+ balance: bigint;
98
+ address: Address;
99
+ };
100
+ }>;
101
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/utils/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { Hash, TransactionReceipt } from "viem";
2
+ import { NetworkClients, TransactionOptions, TransactionResult } from "./network";
3
+ export type TransactionState = "idle" | "submitting" | "pending" | "success" | "error" | "timeout";
4
+ export interface TransactionStatus {
5
+ state: TransactionState;
6
+ hash?: Hash;
7
+ receipt?: TransactionReceipt;
8
+ error?: string;
9
+ startTime?: number;
10
+ submitTime?: number;
11
+ confirmTime?: number;
12
+ aborted?: boolean;
13
+ }
14
+ export interface TransactionTracker {
15
+ readonly status: TransactionStatus;
16
+ readonly isIdle: boolean;
17
+ readonly isSubmitting: boolean;
18
+ readonly isPending: boolean;
19
+ readonly isSuccess: boolean;
20
+ readonly isError: boolean;
21
+ readonly isTimeout: boolean;
22
+ readonly isAborted: boolean;
23
+ readonly isComplete: boolean;
24
+ abort(): void;
25
+ reset(): void;
26
+ execute<T extends unknown[]>(operation: (clients: NetworkClients, ...args: T) => Promise<Hash>, clients: NetworkClients, args: T, options?: TransactionOptions & {
27
+ signal?: AbortSignal;
28
+ }): Promise<TransactionResult>;
29
+ }
30
+ /**
31
+ * Create a transaction tracker for monitoring transaction state
32
+ */
33
+ export declare function createTransactionTracker(): TransactionTracker;
34
+ /**
35
+ * Batch transaction executor with sequential or parallel execution
36
+ */
37
+ export interface BatchTransactionOptions {
38
+ mode: "sequential" | "parallel";
39
+ failFast?: boolean;
40
+ timeout?: number;
41
+ onProgress?: (completed: number, total: number, results: (TransactionResult | Error)[]) => void;
42
+ }
43
+ export interface BatchTransactionResult {
44
+ results: (TransactionResult | Error)[];
45
+ successCount: number;
46
+ errorCount: number;
47
+ allSuccessful: boolean;
48
+ }
49
+ /**
50
+ * Execute multiple transactions in batch
51
+ */
52
+ export declare function executeBatchTransactions<T extends unknown[]>(operations: Array<{
53
+ operation: (clients: NetworkClients, ...args: T) => Promise<Hash>;
54
+ args: T;
55
+ options?: TransactionOptions;
56
+ }>, clients: NetworkClients, batchOptions: BatchTransactionOptions): Promise<BatchTransactionResult>;
57
+ /**
58
+ * Transaction retry utility with exponential backoff
59
+ */
60
+ export interface RetryOptions {
61
+ maxRetries?: number;
62
+ initialDelay?: number;
63
+ maxDelay?: number;
64
+ backoffFactor?: number;
65
+ retryCondition?: (error: Error) => boolean;
66
+ }
67
+ export declare function executeTransactionWithRetry<T extends unknown[]>(operation: (clients: NetworkClients, ...args: T) => Promise<Hash>, clients: NetworkClients, args: T, options?: TransactionOptions, retryOptions?: RetryOptions): Promise<TransactionResult>;
68
+ /**
69
+ * Smart gas estimation and transaction optimization
70
+ */
71
+ export interface GasEstimationOptions {
72
+ gasLimitMultiplier?: number;
73
+ maxFeePerGasMultiplier?: number;
74
+ priorityFeeMultiplier?: number;
75
+ }
76
+ export declare function estimateTransactionGas(clients: NetworkClients, transaction: Parameters<typeof clients.publicClient.estimateGas>[0], options?: GasEstimationOptions): Promise<{
77
+ gasLimit: bigint;
78
+ maxFeePerGas?: bigint;
79
+ maxPriorityFeePerGas?: bigint;
80
+ }>;
81
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { SafeResult } from "../client";
2
+ /**
3
+ * Validates action parameters, specifically the schema parameter
4
+ *
5
+ * @param parameters - The parameters to validate
6
+ * @throws Error if schema parameter is invalid (for non-safe functions)
7
+ */
8
+ export declare function validateActionParameters<T>(parameters?: {
9
+ schema?: T;
10
+ }): void;
11
+ /**
12
+ * Validates action parameters for safe functions
13
+ *
14
+ * @param parameters - The parameters to validate
15
+ * @returns SafeResult with error if validation fails, undefined if validation passes
16
+ */
17
+ export declare function safeValidateActionParameters<T, ReturnType>(parameters?: {
18
+ schema?: T;
19
+ }): SafeResult<ReturnType> | undefined;
20
+ //# sourceMappingURL=validate-parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-parameters.d.ts","sourceRoot":"","sources":["../../src/utils/validate-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAW7E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,GACnF,UAAU,CAAC,UAAU,CAAC,GACtB,SAAS,CA2BZ"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@phala/cloud",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "TypeScript SDK for Phala Cloud API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": ["dist/**/*", "README.md"],
8
8
  "scripts": {
9
- "build": "tsup src/index.ts --format cjs,esm --dts",
9
+ "build": "tsup src/index.ts --format cjs,esm && tsc --emitDeclarationOnly --declaration --outDir dist",
10
10
  "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
11
11
  "fmt": "biome format --write",
12
12
  "test": "vitest --run --exclude '**/*.e2e.test.ts'",
@@ -17,13 +17,19 @@
17
17
  "check": "npm run lint && npm run test",
18
18
  "type-check": "tsc --noEmit",
19
19
  "typecheck": "tsc --noEmit",
20
- "publish-stable": "npm run build && npm publish --access public"
20
+ "version:patch": "npm version patch",
21
+ "version:minor": "npm version minor",
22
+ "version:major": "npm version major",
23
+ "prepublish-stable": "npm run build && npm run check",
24
+ "publish-stable": "npm run prepublish-stable && npm publish --access public",
25
+ "prepublish-beta": "npm run build && npm run check",
26
+ "publish-beta": "npm run prepublish-beta && npm publish --access public --tag beta"
21
27
  },
22
28
  "keywords": ["phala", "cloud", "cvm", "tee", "blockchain", "deployment"],
23
29
  "author": "Leechael Yim",
24
30
  "license": "Apache-2.0",
25
31
  "dependencies": {
26
- "@phala/dstack-sdk": "0.5.0",
32
+ "@phala/dstack-sdk": "0.5.4-beta.5",
27
33
  "ofetch": "^1.3.3",
28
34
  "viem": "^2.7.0",
29
35
  "zod": "^3.22.4"