@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.
- package/dist/actions/add_compose_hash.d.ts +63 -0
- package/dist/actions/add_compose_hash.d.ts.map +1 -0
- package/dist/actions/commit_cvm_compose_file_update.d.ts +143 -0
- package/dist/actions/commit_cvm_compose_file_update.d.ts.map +1 -0
- package/dist/actions/commit_cvm_provision.d.ts +209 -0
- package/dist/actions/commit_cvm_provision.d.ts.map +1 -0
- package/dist/actions/deploy_app_auth.d.ts +164 -0
- package/dist/actions/deploy_app_auth.d.ts.map +1 -0
- package/dist/actions/get_app_env_encrypt_pubkey.d.ts +30 -0
- package/dist/actions/get_app_env_encrypt_pubkey.d.ts.map +1 -0
- package/dist/actions/get_available_nodes.d.ts +572 -0
- package/dist/actions/get_available_nodes.d.ts.map +1 -0
- package/dist/actions/get_current_user.d.ts +92 -0
- package/dist/actions/get_current_user.d.ts.map +1 -0
- package/dist/actions/get_cvm_compose_file.d.ts +190 -0
- package/dist/actions/get_cvm_compose_file.d.ts.map +1 -0
- package/dist/actions/get_cvm_info.d.ts +73 -0
- package/dist/actions/get_cvm_info.d.ts.map +1 -0
- package/dist/actions/get_cvm_list.d.ts +392 -0
- package/dist/actions/get_cvm_list.d.ts.map +1 -0
- package/dist/actions/get_kms_info.d.ts +34 -0
- package/dist/actions/get_kms_info.d.ts.map +1 -0
- package/dist/actions/get_kms_list.d.ts +82 -0
- package/dist/actions/get_kms_list.d.ts.map +1 -0
- package/dist/actions/index.d.ts +15 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/provision_cvm.d.ts +228 -0
- package/dist/actions/provision_cvm.d.ts.map +1 -0
- package/dist/actions/provision_cvm_compose_file_update.d.ts +313 -0
- package/dist/actions/provision_cvm_compose_file_update.d.ts.map +1 -0
- package/dist/client.d.ts +80 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/index.d.ts +9 -2978
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -20
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +89 -18
- package/dist/index.mjs.map +1 -0
- package/dist/parse_dotenv.d.ts +14 -0
- package/dist/parse_dotenv.d.ts.map +1 -0
- package/dist/types/client.d.ts +126 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/common.d.ts +17 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/cvm_info.d.ts +486 -0
- package/dist/types/cvm_info.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/kms_info.d.ts +28 -0
- package/dist/types/kms_info.d.ts.map +1 -0
- package/dist/utils/as-hex.d.ts +17 -0
- package/dist/utils/as-hex.d.ts.map +1 -0
- package/dist/utils/client-factories.d.ts +44 -0
- package/dist/utils/client-factories.d.ts.map +1 -0
- package/dist/utils/get_compose_hash.d.ts +15 -0
- package/dist/utils/get_compose_hash.d.ts.map +1 -0
- package/dist/utils/get_error_message.d.ts +3 -0
- package/dist/utils/get_error_message.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/network.d.ts +101 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/transaction.d.ts +81 -0
- package/dist/utils/transaction.d.ts.map +1 -0
- package/dist/utils/validate-parameters.d.ts +20 -0
- package/dist/utils/validate-parameters.d.ts.map +1 -0
- package/package.json +10 -4
- 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 @@
|
|
|
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.
|
|
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 --
|
|
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
|
-
"
|
|
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.
|
|
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"
|