@layr-labs/ecloud-cli 0.4.0-dev.0 → 0.4.0-dev.2
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/VERSION +2 -0
- package/dist/commands/auth/whoami.js +1 -0
- package/dist/commands/auth/whoami.js.map +1 -1
- package/dist/commands/billing/__tests__/status.test.js +89 -22
- package/dist/commands/billing/__tests__/status.test.js.map +1 -1
- package/dist/commands/billing/__tests__/subscribe.test.js +88 -20
- package/dist/commands/billing/__tests__/subscribe.test.js.map +1 -1
- package/dist/commands/billing/__tests__/top-up.test.js +139 -201
- package/dist/commands/billing/__tests__/top-up.test.js.map +1 -1
- package/dist/commands/billing/cancel.js +88 -19
- package/dist/commands/billing/cancel.js.map +1 -1
- package/dist/commands/billing/status.js +89 -21
- package/dist/commands/billing/status.js.map +1 -1
- package/dist/commands/billing/subscribe.js +88 -19
- package/dist/commands/billing/subscribe.js.map +1 -1
- package/dist/commands/billing/top-up.js +102 -91
- package/dist/commands/billing/top-up.js.map +1 -1
- package/dist/commands/compute/app/create.js +1 -0
- package/dist/commands/compute/app/create.js.map +1 -1
- package/dist/commands/compute/app/deploy.js +38 -24
- package/dist/commands/compute/app/deploy.js.map +1 -1
- package/dist/commands/compute/app/info.js +2 -1
- package/dist/commands/compute/app/info.js.map +1 -1
- package/dist/commands/compute/app/list.js +2 -1
- package/dist/commands/compute/app/list.js.map +1 -1
- package/dist/commands/compute/app/logs.js +5 -8
- package/dist/commands/compute/app/logs.js.map +1 -1
- package/dist/commands/compute/app/profile/set.js +5 -8
- package/dist/commands/compute/app/profile/set.js.map +1 -1
- package/dist/commands/compute/app/releases.js +2 -1
- package/dist/commands/compute/app/releases.js.map +1 -1
- package/dist/commands/compute/app/start.js +5 -8
- package/dist/commands/compute/app/start.js.map +1 -1
- package/dist/commands/compute/app/stop.js +5 -8
- package/dist/commands/compute/app/stop.js.map +1 -1
- package/dist/commands/compute/app/terminate.js +5 -8
- package/dist/commands/compute/app/terminate.js.map +1 -1
- package/dist/commands/compute/app/upgrade.js +36 -14
- package/dist/commands/compute/app/upgrade.js.map +1 -1
- package/dist/commands/compute/build/info.js +9 -12
- package/dist/commands/compute/build/info.js.map +1 -1
- package/dist/commands/compute/build/list.js +9 -12
- package/dist/commands/compute/build/list.js.map +1 -1
- package/dist/commands/compute/build/logs.js +9 -12
- package/dist/commands/compute/build/logs.js.map +1 -1
- package/dist/commands/compute/build/status.js +9 -12
- package/dist/commands/compute/build/status.js.map +1 -1
- package/dist/commands/compute/build/submit.js +32 -10
- package/dist/commands/compute/build/submit.js.map +1 -1
- package/dist/commands/compute/build/verify.js +9 -12
- package/dist/commands/compute/build/verify.js.map +1 -1
- package/dist/commands/compute/environment/set.js +1 -0
- package/dist/commands/compute/environment/set.js.map +1 -1
- package/dist/commands/compute/undelegate.js +5 -8
- package/dist/commands/compute/undelegate.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,9 +9,7 @@ import {
|
|
|
9
9
|
createBillingModule,
|
|
10
10
|
createBuildModule,
|
|
11
11
|
getEnvironmentConfig as getEnvironmentConfig3,
|
|
12
|
-
requirePrivateKey
|
|
13
|
-
getPrivateKeyWithSource,
|
|
14
|
-
addHexPrefix as addHexPrefix2
|
|
12
|
+
requirePrivateKey
|
|
15
13
|
} from "@layr-labs/ecloud-sdk";
|
|
16
14
|
|
|
17
15
|
// src/flags.ts
|
|
@@ -62,6 +60,24 @@ import {
|
|
|
62
60
|
createViemClients as sdkCreateViemClients,
|
|
63
61
|
getChainFromID
|
|
64
62
|
} from "@layr-labs/ecloud-sdk";
|
|
63
|
+
function createViemClients(options) {
|
|
64
|
+
const privateKey = addHexPrefix(options.privateKey);
|
|
65
|
+
const environmentConfig = getEnvironmentConfig(options.environment);
|
|
66
|
+
const rpcUrl = options.rpcUrl || environmentConfig.defaultRPCURL;
|
|
67
|
+
const chain = getChainFromID(environmentConfig.chainID);
|
|
68
|
+
const { publicClient, walletClient } = sdkCreateViemClients({
|
|
69
|
+
privateKey,
|
|
70
|
+
rpcUrl,
|
|
71
|
+
chainId: environmentConfig.chainID
|
|
72
|
+
});
|
|
73
|
+
const account = privateKeyToAccount(privateKey);
|
|
74
|
+
return {
|
|
75
|
+
publicClient,
|
|
76
|
+
walletClient,
|
|
77
|
+
chain,
|
|
78
|
+
address: account.address
|
|
79
|
+
};
|
|
80
|
+
}
|
|
65
81
|
|
|
66
82
|
// src/utils/globalConfig.ts
|
|
67
83
|
import * as fs from "fs";
|
|
@@ -148,6 +164,7 @@ var CONFIG_DIR = path2.join(os2.homedir(), ".eigenx");
|
|
|
148
164
|
var APPS_DIR = path2.join(CONFIG_DIR, "apps");
|
|
149
165
|
|
|
150
166
|
// src/utils/prompts.ts
|
|
167
|
+
import { execSync } from "child_process";
|
|
151
168
|
async function getPrivateKeyInteractive(privateKey) {
|
|
152
169
|
if (privateKey) {
|
|
153
170
|
if (!validatePrivateKeyFormat(privateKey)) {
|
|
@@ -155,8 +172,8 @@ async function getPrivateKeyInteractive(privateKey) {
|
|
|
155
172
|
}
|
|
156
173
|
return privateKey;
|
|
157
174
|
}
|
|
158
|
-
const { getPrivateKeyWithSource
|
|
159
|
-
const result = await
|
|
175
|
+
const { getPrivateKeyWithSource } = await import("@layr-labs/ecloud-sdk");
|
|
176
|
+
const result = await getPrivateKeyWithSource({ privateKey: void 0 });
|
|
160
177
|
if (result) {
|
|
161
178
|
return result.key;
|
|
162
179
|
}
|
|
@@ -175,6 +192,50 @@ async function getPrivateKeyInteractive(privateKey) {
|
|
|
175
192
|
});
|
|
176
193
|
return key.trim();
|
|
177
194
|
}
|
|
195
|
+
async function getEnvironmentInteractive(environment) {
|
|
196
|
+
if (environment) {
|
|
197
|
+
try {
|
|
198
|
+
getEnvironmentConfig2(environment);
|
|
199
|
+
if (!isEnvironmentAvailable(environment)) {
|
|
200
|
+
throw new Error(`Environment ${environment} is not available in this build`);
|
|
201
|
+
}
|
|
202
|
+
return environment;
|
|
203
|
+
} catch {
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const availableEnvs = getAvailableEnvironments();
|
|
207
|
+
let defaultEnv;
|
|
208
|
+
const configDefaultEnv = getDefaultEnvironment();
|
|
209
|
+
if (configDefaultEnv && availableEnvs.includes(configDefaultEnv)) {
|
|
210
|
+
try {
|
|
211
|
+
getEnvironmentConfig2(configDefaultEnv);
|
|
212
|
+
defaultEnv = configDefaultEnv;
|
|
213
|
+
} catch {
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
const choices = [];
|
|
217
|
+
if (availableEnvs.includes("sepolia")) {
|
|
218
|
+
choices.push({ name: "sepolia - Ethereum Sepolia testnet", value: "sepolia" });
|
|
219
|
+
}
|
|
220
|
+
if (availableEnvs.includes("sepolia-dev")) {
|
|
221
|
+
choices.push({ name: "sepolia-dev - Ethereum Sepolia testnet (dev)", value: "sepolia-dev" });
|
|
222
|
+
}
|
|
223
|
+
if (availableEnvs.includes("mainnet-alpha")) {
|
|
224
|
+
choices.push({
|
|
225
|
+
name: "mainnet-alpha - Ethereum mainnet (\u26A0\uFE0F uses real funds)",
|
|
226
|
+
value: "mainnet-alpha"
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if (choices.length === 0) {
|
|
230
|
+
throw new Error("No environments available in this build");
|
|
231
|
+
}
|
|
232
|
+
const env = await select({
|
|
233
|
+
message: "Select environment:",
|
|
234
|
+
choices,
|
|
235
|
+
default: defaultEnv
|
|
236
|
+
});
|
|
237
|
+
return env;
|
|
238
|
+
}
|
|
178
239
|
var MAX_IMAGE_SIZE = 4 * 1024 * 1024;
|
|
179
240
|
|
|
180
241
|
// src/flags.ts
|
|
@@ -201,29 +262,37 @@ var commonFlags = {
|
|
|
201
262
|
default: false
|
|
202
263
|
})
|
|
203
264
|
};
|
|
265
|
+
async function validateCommonFlags(flags, options) {
|
|
266
|
+
flags["environment"] = await getEnvironmentInteractive(flags["environment"]);
|
|
267
|
+
if (options?.requirePrivateKey !== false) {
|
|
268
|
+
flags["private-key"] = await getPrivateKeyInteractive(flags["private-key"]);
|
|
269
|
+
}
|
|
270
|
+
return flags;
|
|
271
|
+
}
|
|
204
272
|
|
|
205
273
|
// src/client.ts
|
|
206
|
-
import { createWalletClient, custom } from "viem";
|
|
207
|
-
import { privateKeyToAccount as privateKeyToAccount4 } from "viem/accounts";
|
|
208
274
|
async function createBillingClient(flags) {
|
|
209
|
-
|
|
275
|
+
flags = await validateCommonFlags(flags);
|
|
276
|
+
const environment = flags.environment;
|
|
277
|
+
const environmentConfig = getEnvironmentConfig3(environment);
|
|
278
|
+
const rpcUrl = flags["rpc-url"] || environmentConfig.billingRPCURL || environmentConfig.defaultRPCURL;
|
|
279
|
+
const { key: privateKey, source } = await requirePrivateKey({
|
|
210
280
|
privateKey: flags["private-key"]
|
|
211
281
|
});
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
})
|
|
282
|
+
if (flags.verbose) {
|
|
283
|
+
console.log(`Using private key from: ${source}`);
|
|
284
|
+
}
|
|
285
|
+
const { walletClient, publicClient } = createViemClients({
|
|
286
|
+
privateKey,
|
|
287
|
+
rpcUrl,
|
|
288
|
+
environment
|
|
221
289
|
});
|
|
222
290
|
return createBillingModule({
|
|
223
|
-
verbose: flags.verbose
|
|
291
|
+
verbose: flags.verbose,
|
|
224
292
|
walletClient,
|
|
293
|
+
publicClient,
|
|
294
|
+
environment,
|
|
225
295
|
skipTelemetry: true
|
|
226
|
-
// CLI already has telemetry, skip SDK telemetry
|
|
227
296
|
});
|
|
228
297
|
}
|
|
229
298
|
|
|
@@ -292,8 +361,7 @@ async function withTelemetry(command, action) {
|
|
|
292
361
|
var BillingStatus = class _BillingStatus extends Command {
|
|
293
362
|
static description = "Show subscription status";
|
|
294
363
|
static flags = {
|
|
295
|
-
|
|
296
|
-
verbose: commonFlags.verbose,
|
|
364
|
+
...commonFlags,
|
|
297
365
|
product: Flags2.string({
|
|
298
366
|
required: false,
|
|
299
367
|
description: "Product ID",
|