@alchemy/cli 0.6.1 → 0.6.3-alpha.6
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/README.md +49 -61
- package/dist/auth-I5WFLU46.js +16 -0
- package/dist/{auth-S4DTOWW3.js → auth-JGON2JU6.js} +10 -8
- package/dist/{chunk-NBDWF4ZQ.js → chunk-A6L3WCJN.js} +32 -22
- package/dist/{chunk-BAAQ7ELR.js → chunk-B3R6PRAL.js} +59 -4
- package/dist/{chunk-FFMNT74F.js → chunk-HSKKIATB.js} +125 -76
- package/dist/{chunk-KDMIWPZH.js → chunk-HYCRHNPX.js} +1 -1
- package/dist/chunk-MUT4TFQ5.js +64 -0
- package/dist/{chunk-7GD5HACA.js → chunk-NSBL7TUF.js} +3 -3
- package/dist/{chunk-UMKDYHMO.js → chunk-NT3G6BKD.js} +54 -99
- package/dist/{chunk-ATX65U7J.js → chunk-PKAN5FKD.js} +570 -41
- package/dist/{chunk-56ZVYB4G.js → chunk-QEDAULQ2.js} +263 -222
- package/dist/errors-3CNFGAXT.js +54 -0
- package/dist/index.js +6670 -2158
- package/dist/{interactive-QJ4REXWB.js → interactive-OSVYTHBP.js} +56 -61
- package/dist/{onboarding-3WIM6PVV.js → onboarding-EBOY4QWF.js} +14 -11
- package/dist/resolve-X7HLVLGA.js +50 -0
- package/package.json +12 -3
- package/scripts/postinstall.cjs +69 -1
- package/dist/auth-QB3BA7AN.js +0 -17
- package/dist/chunk-JQRGILIS.js +0 -53
- package/dist/chunk-T5Z2GJUX.js +0 -331
- package/dist/credential-storage-T6FFW7DG.js +0 -14
- package/dist/resolve-HXKHDOJZ.js +0 -31
package/dist/chunk-T5Z2GJUX.js
DELETED
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
if(process.argv.includes("--no-color"))process.env.NO_COLOR="1";
|
|
3
|
-
import {
|
|
4
|
-
isInteractiveAllowed
|
|
5
|
-
} from "./chunk-KDMIWPZH.js";
|
|
6
|
-
import {
|
|
7
|
-
resolveAuthToken
|
|
8
|
-
} from "./chunk-ATX65U7J.js";
|
|
9
|
-
import {
|
|
10
|
-
getBaseDomain
|
|
11
|
-
} from "./chunk-56ZVYB4G.js";
|
|
12
|
-
|
|
13
|
-
// src/lib/networks.ts
|
|
14
|
-
var TESTNET_TOKEN_RE = /(testnet|sepolia|holesky|hoodi|devnet|minato|amoy|fuji|saigon|cardona|aeneid|curtis|chiado|cassiopeia|blaze|ropsten|signet|mocha|fam|bepolia)$/i;
|
|
15
|
-
var FAMILY_ALIASES = {
|
|
16
|
-
arb: "Arbitrum",
|
|
17
|
-
arbnova: "Arbitrum Nova",
|
|
18
|
-
avax: "Avalanche",
|
|
19
|
-
bnb: "BNB Smart Chain",
|
|
20
|
-
eth: "Ethereum",
|
|
21
|
-
opt: "OP Mainnet",
|
|
22
|
-
polygonzkevm: "Polygon zkEVM"
|
|
23
|
-
};
|
|
24
|
-
var NAME_ALIASES = {
|
|
25
|
-
arb: "Arbitrum",
|
|
26
|
-
avax: "Avalanche",
|
|
27
|
-
bnb: "BNB",
|
|
28
|
-
eth: "Ethereum",
|
|
29
|
-
opbnb: "opBNB",
|
|
30
|
-
opt: "OP Mainnet",
|
|
31
|
-
sui: "SUI",
|
|
32
|
-
xmtp: "XMTP",
|
|
33
|
-
zksync: "ZKsync"
|
|
34
|
-
};
|
|
35
|
-
var RPC_NETWORK_IDS = [
|
|
36
|
-
"abstract-mainnet",
|
|
37
|
-
"abstract-testnet",
|
|
38
|
-
"adi-mainnet",
|
|
39
|
-
"adi-testnet",
|
|
40
|
-
"alchemy-internal",
|
|
41
|
-
"alchemy-sepolia",
|
|
42
|
-
"alchemyarb-fam",
|
|
43
|
-
"alchemyarb-sepolia",
|
|
44
|
-
"alterscope-mainnet",
|
|
45
|
-
"anime-mainnet",
|
|
46
|
-
"anime-sepolia",
|
|
47
|
-
"apechain-curtis",
|
|
48
|
-
"apechain-mainnet",
|
|
49
|
-
"aptos-mainnet",
|
|
50
|
-
"aptos-testnet",
|
|
51
|
-
"arb-mainnet",
|
|
52
|
-
"arb-sepolia",
|
|
53
|
-
"arbnova-mainnet",
|
|
54
|
-
"arc-testnet",
|
|
55
|
-
"astar-mainnet",
|
|
56
|
-
"avax-fuji",
|
|
57
|
-
"avax-mainnet",
|
|
58
|
-
"base-mainnet",
|
|
59
|
-
"base-sepolia",
|
|
60
|
-
"berachain-bepolia",
|
|
61
|
-
"berachain-mainnet",
|
|
62
|
-
"bitcoin-mainnet",
|
|
63
|
-
"bitcoin-signet",
|
|
64
|
-
"bitcoin-testnet",
|
|
65
|
-
"blast-mainnet",
|
|
66
|
-
"blast-sepolia",
|
|
67
|
-
"bnb-mainnet",
|
|
68
|
-
"bnb-testnet",
|
|
69
|
-
"bob-mainnet",
|
|
70
|
-
"bob-sepolia",
|
|
71
|
-
"boba-mainnet",
|
|
72
|
-
"boba-sepolia",
|
|
73
|
-
"botanix-mainnet",
|
|
74
|
-
"botanix-testnet",
|
|
75
|
-
"celestiabridge-mainnet",
|
|
76
|
-
"celestiabridge-mocha",
|
|
77
|
-
"celo-mainnet",
|
|
78
|
-
"celo-sepolia",
|
|
79
|
-
"citrea-mainnet",
|
|
80
|
-
"citrea-testnet",
|
|
81
|
-
"clankermon-mainnet",
|
|
82
|
-
"commons-mainnet",
|
|
83
|
-
"crossfi-mainnet",
|
|
84
|
-
"crossfi-testnet",
|
|
85
|
-
"degen-mainnet",
|
|
86
|
-
"degen-sepolia",
|
|
87
|
-
"earnm-mainnet",
|
|
88
|
-
"earnm-sepolia",
|
|
89
|
-
"edge-mainnet",
|
|
90
|
-
"edge-testnet",
|
|
91
|
-
"eth-holesky",
|
|
92
|
-
"eth-holeskybeacon",
|
|
93
|
-
"eth-hoodi",
|
|
94
|
-
"eth-hoodibeacon",
|
|
95
|
-
"eth-mainnet",
|
|
96
|
-
"eth-mainnetbeacon",
|
|
97
|
-
"eth-sepolia",
|
|
98
|
-
"eth-sepoliabeacon",
|
|
99
|
-
"flow-mainnet",
|
|
100
|
-
"flow-testnet",
|
|
101
|
-
"frax-hoodi",
|
|
102
|
-
"frax-mainnet",
|
|
103
|
-
"galactica-cassiopeia",
|
|
104
|
-
"galactica-mainnet",
|
|
105
|
-
"gensyn-mainnet",
|
|
106
|
-
"gensyn-testnet",
|
|
107
|
-
"gnosis-chiado",
|
|
108
|
-
"gnosis-mainnet",
|
|
109
|
-
"humanity-mainnet",
|
|
110
|
-
"humanity-testnet",
|
|
111
|
-
"hyperliquid-mainnet",
|
|
112
|
-
"hyperliquid-testnet",
|
|
113
|
-
"ink-mainnet",
|
|
114
|
-
"ink-sepolia",
|
|
115
|
-
"lens-mainnet",
|
|
116
|
-
"lens-sepolia",
|
|
117
|
-
"linea-mainnet",
|
|
118
|
-
"linea-sepolia",
|
|
119
|
-
"mantle-mainnet",
|
|
120
|
-
"mantle-sepolia",
|
|
121
|
-
"megaeth-mainnet",
|
|
122
|
-
"megaeth-testnet",
|
|
123
|
-
"metis-mainnet",
|
|
124
|
-
"mode-mainnet",
|
|
125
|
-
"mode-sepolia",
|
|
126
|
-
"monad-mainnet",
|
|
127
|
-
"monad-testnet",
|
|
128
|
-
"moonbeam-mainnet",
|
|
129
|
-
"mythos-mainnet",
|
|
130
|
-
"opbnb-mainnet",
|
|
131
|
-
"opbnb-testnet",
|
|
132
|
-
"openloot-sepolia",
|
|
133
|
-
"opt-mainnet",
|
|
134
|
-
"opt-sepolia",
|
|
135
|
-
"plasma-mainnet",
|
|
136
|
-
"plasma-testnet",
|
|
137
|
-
"polygon-amoy",
|
|
138
|
-
"polygon-mainnet",
|
|
139
|
-
"polygonzkevm-cardona",
|
|
140
|
-
"polygonzkevm-mainnet",
|
|
141
|
-
"polynomial-mainnet",
|
|
142
|
-
"polynomial-sepolia",
|
|
143
|
-
"race-mainnet",
|
|
144
|
-
"race-sepolia",
|
|
145
|
-
"risa-testnet",
|
|
146
|
-
"rise-testnet",
|
|
147
|
-
"ronin-mainnet",
|
|
148
|
-
"ronin-saigon",
|
|
149
|
-
"rootstock-mainnet",
|
|
150
|
-
"rootstock-testnet",
|
|
151
|
-
"scroll-mainnet",
|
|
152
|
-
"scroll-sepolia",
|
|
153
|
-
"sei-mainnet",
|
|
154
|
-
"sei-testnet",
|
|
155
|
-
"settlus-mainnet",
|
|
156
|
-
"settlus-septestnet",
|
|
157
|
-
"shape-mainnet",
|
|
158
|
-
"shape-sepolia",
|
|
159
|
-
"solana-devnet",
|
|
160
|
-
"solana-mainnet",
|
|
161
|
-
"soneium-mainnet",
|
|
162
|
-
"soneium-minato",
|
|
163
|
-
"sonic-blaze",
|
|
164
|
-
"sonic-mainnet",
|
|
165
|
-
"sonic-testnet",
|
|
166
|
-
"stable-mainnet",
|
|
167
|
-
"stable-testnet",
|
|
168
|
-
"standard-mainnet",
|
|
169
|
-
"starknet-mainnet",
|
|
170
|
-
"starknet-sepolia",
|
|
171
|
-
"story-aeneid",
|
|
172
|
-
"story-mainnet",
|
|
173
|
-
"sui-mainnet",
|
|
174
|
-
"sui-testnet",
|
|
175
|
-
"superseed-mainnet",
|
|
176
|
-
"superseed-sepolia",
|
|
177
|
-
"synd-mainnet",
|
|
178
|
-
"syndicate-manchego",
|
|
179
|
-
"tea-sepolia",
|
|
180
|
-
"tempo-testnet",
|
|
181
|
-
"tron-mainnet",
|
|
182
|
-
"tron-testnet",
|
|
183
|
-
"unichain-mainnet",
|
|
184
|
-
"unichain-sepolia",
|
|
185
|
-
"unite-mainnet",
|
|
186
|
-
"unite-testnet",
|
|
187
|
-
"worldchain-mainnet",
|
|
188
|
-
"worldchain-sepolia",
|
|
189
|
-
"worldl3-devnet",
|
|
190
|
-
"worldmobile-devnet",
|
|
191
|
-
"worldmobile-testnet",
|
|
192
|
-
"worldmobilechain-mainnet",
|
|
193
|
-
"xmtp-mainnet",
|
|
194
|
-
"xmtp-ropsten",
|
|
195
|
-
"xprotocol-mainnet",
|
|
196
|
-
"zetachain-mainnet",
|
|
197
|
-
"zetachain-testnet",
|
|
198
|
-
"zksync-mainnet",
|
|
199
|
-
"zksync-sepolia",
|
|
200
|
-
"zora-mainnet",
|
|
201
|
-
"zora-sepolia"
|
|
202
|
-
];
|
|
203
|
-
function isTestnetNetwork(id) {
|
|
204
|
-
return TESTNET_TOKEN_RE.test(id);
|
|
205
|
-
}
|
|
206
|
-
function tokenToName(token) {
|
|
207
|
-
const alias = NAME_ALIASES[token];
|
|
208
|
-
if (alias) return alias;
|
|
209
|
-
return token.charAt(0).toUpperCase() + token.slice(1);
|
|
210
|
-
}
|
|
211
|
-
function toFamily(id) {
|
|
212
|
-
const [head] = id.split("-");
|
|
213
|
-
return FAMILY_ALIASES[head] ?? tokenToName(head);
|
|
214
|
-
}
|
|
215
|
-
function toDisplayName(id) {
|
|
216
|
-
return id.split("-").map((part) => tokenToName(part)).join(" ");
|
|
217
|
-
}
|
|
218
|
-
function toHttpsUrlTemplate(id) {
|
|
219
|
-
const domain = getBaseDomain();
|
|
220
|
-
if (id === "starknet-mainnet" || id === "starknet-sepolia") {
|
|
221
|
-
return `https://${id}.g.${domain}/starknet/version/rpc/v0_10/{apiKey}`;
|
|
222
|
-
}
|
|
223
|
-
return `https://${id}.g.${domain}/v2/{apiKey}`;
|
|
224
|
-
}
|
|
225
|
-
function getRPCNetworks() {
|
|
226
|
-
return RPC_NETWORK_IDS.map((id) => ({
|
|
227
|
-
id,
|
|
228
|
-
name: toDisplayName(id),
|
|
229
|
-
family: toFamily(id),
|
|
230
|
-
isTestnet: isTestnetNetwork(id),
|
|
231
|
-
httpsUrlTemplate: toHttpsUrlTemplate(id)
|
|
232
|
-
}));
|
|
233
|
-
}
|
|
234
|
-
function getRPCNetworkIds() {
|
|
235
|
-
return [...RPC_NETWORK_IDS];
|
|
236
|
-
}
|
|
237
|
-
var NATIVE_TOKEN_SYMBOLS = {
|
|
238
|
-
eth: "ETH",
|
|
239
|
-
arb: "ETH",
|
|
240
|
-
arbnova: "ETH",
|
|
241
|
-
opt: "ETH",
|
|
242
|
-
base: "ETH",
|
|
243
|
-
zksync: "ETH",
|
|
244
|
-
scroll: "ETH",
|
|
245
|
-
blast: "ETH",
|
|
246
|
-
linea: "ETH",
|
|
247
|
-
zora: "ETH",
|
|
248
|
-
shape: "ETH",
|
|
249
|
-
polygon: "POL",
|
|
250
|
-
polygonzkevm: "ETH",
|
|
251
|
-
bnb: "BNB",
|
|
252
|
-
opbnb: "BNB",
|
|
253
|
-
avax: "AVAX",
|
|
254
|
-
solana: "SOL",
|
|
255
|
-
starknet: "ETH",
|
|
256
|
-
fantom: "FTM",
|
|
257
|
-
metis: "METIS",
|
|
258
|
-
mantle: "MNT",
|
|
259
|
-
celo: "CELO",
|
|
260
|
-
gnosis: "xDAI",
|
|
261
|
-
frax: "frxETH",
|
|
262
|
-
worldchain: "ETH",
|
|
263
|
-
berachain: "BERA",
|
|
264
|
-
flow: "FLOW",
|
|
265
|
-
rootstock: "RBTC",
|
|
266
|
-
zetachain: "ZETA",
|
|
267
|
-
sui: "SUI"
|
|
268
|
-
};
|
|
269
|
-
function nativeTokenSymbol(networkId) {
|
|
270
|
-
const prefix = networkId.replace(/-(mainnet|testnet|sepolia|holesky|hoodi|devnet|amoy|fuji|cardona|saigon|chiado|signet|mocha|blaze|curtis|bepolia).*$/, "");
|
|
271
|
-
return NATIVE_TOKEN_SYMBOLS[prefix] ?? "ETH";
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// src/lib/onboarding.ts
|
|
275
|
-
function hasAPIKey(cfg) {
|
|
276
|
-
return Boolean(cfg.api_key?.trim());
|
|
277
|
-
}
|
|
278
|
-
function hasAccessKeyAndApp(cfg) {
|
|
279
|
-
return Boolean(cfg.access_key?.trim() && cfg.app?.id && cfg.app.apiKey);
|
|
280
|
-
}
|
|
281
|
-
function hasX402Wallet(cfg) {
|
|
282
|
-
return cfg.x402 === true && Boolean(cfg.wallet_key_file?.trim());
|
|
283
|
-
}
|
|
284
|
-
function hasAuthTokenAndApp(cfg) {
|
|
285
|
-
return resolveAuthToken(cfg) !== void 0 && Boolean(cfg.app?.apiKey);
|
|
286
|
-
}
|
|
287
|
-
function getSetupMethod(cfg) {
|
|
288
|
-
if (hasAPIKey(cfg)) return "api_key";
|
|
289
|
-
if (hasAccessKeyAndApp(cfg)) return "access_key_app";
|
|
290
|
-
if (hasX402Wallet(cfg)) return "x402_wallet";
|
|
291
|
-
if (hasAuthTokenAndApp(cfg)) return "auth_token";
|
|
292
|
-
return null;
|
|
293
|
-
}
|
|
294
|
-
function isSetupComplete(cfg) {
|
|
295
|
-
return getSetupMethod(cfg) !== null;
|
|
296
|
-
}
|
|
297
|
-
function getSetupStatus(cfg) {
|
|
298
|
-
const satisfiedBy = getSetupMethod(cfg);
|
|
299
|
-
if (satisfiedBy) {
|
|
300
|
-
return {
|
|
301
|
-
complete: true,
|
|
302
|
-
satisfiedBy,
|
|
303
|
-
missing: [],
|
|
304
|
-
nextCommands: []
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
return {
|
|
308
|
-
complete: false,
|
|
309
|
-
satisfiedBy: null,
|
|
310
|
-
missing: ["Provide one auth path: alchemy auth OR api-key OR access-key+app OR SIWx wallet"],
|
|
311
|
-
nextCommands: [
|
|
312
|
-
"alchemy auth",
|
|
313
|
-
"alchemy config set api-key <key>",
|
|
314
|
-
"alchemy config set access-key <key> && alchemy config set app <app-id>",
|
|
315
|
-
"alchemy wallet generate && alchemy config set x402 true"
|
|
316
|
-
]
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
function shouldRunOnboarding(program, cfg) {
|
|
320
|
-
return isInteractiveAllowed(program) && !isSetupComplete(cfg);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
export {
|
|
324
|
-
getRPCNetworks,
|
|
325
|
-
getRPCNetworkIds,
|
|
326
|
-
nativeTokenSymbol,
|
|
327
|
-
getSetupMethod,
|
|
328
|
-
isSetupComplete,
|
|
329
|
-
getSetupStatus,
|
|
330
|
-
shouldRunOnboarding
|
|
331
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
if(process.argv.includes("--no-color"))process.env.NO_COLOR="1";
|
|
3
|
-
import {
|
|
4
|
-
deleteCredentials,
|
|
5
|
-
getCredentials,
|
|
6
|
-
getStorageBackend,
|
|
7
|
-
saveCredentials
|
|
8
|
-
} from "./chunk-JQRGILIS.js";
|
|
9
|
-
export {
|
|
10
|
-
deleteCredentials,
|
|
11
|
-
getCredentials,
|
|
12
|
-
getStorageBackend,
|
|
13
|
-
saveCredentials
|
|
14
|
-
};
|
package/dist/resolve-HXKHDOJZ.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
if(process.argv.includes("--no-color"))process.env.NO_COLOR="1";
|
|
3
|
-
import {
|
|
4
|
-
adminClientFromFlags,
|
|
5
|
-
clientFromFlags,
|
|
6
|
-
resolveAPIKey,
|
|
7
|
-
resolveAccessKey,
|
|
8
|
-
resolveAppId,
|
|
9
|
-
resolveAuthToken,
|
|
10
|
-
resolveConfiguredNetworkSlugs,
|
|
11
|
-
resolveNetwork,
|
|
12
|
-
resolveWalletKey,
|
|
13
|
-
resolveX402,
|
|
14
|
-
resolveX402Client
|
|
15
|
-
} from "./chunk-ATX65U7J.js";
|
|
16
|
-
import "./chunk-JQRGILIS.js";
|
|
17
|
-
import "./chunk-BAAQ7ELR.js";
|
|
18
|
-
import "./chunk-56ZVYB4G.js";
|
|
19
|
-
export {
|
|
20
|
-
adminClientFromFlags,
|
|
21
|
-
clientFromFlags,
|
|
22
|
-
resolveAPIKey,
|
|
23
|
-
resolveAccessKey,
|
|
24
|
-
resolveAppId,
|
|
25
|
-
resolveAuthToken,
|
|
26
|
-
resolveConfiguredNetworkSlugs,
|
|
27
|
-
resolveNetwork,
|
|
28
|
-
resolveWalletKey,
|
|
29
|
-
resolveX402,
|
|
30
|
-
resolveX402Client
|
|
31
|
-
};
|