@flarestudio/fcc-workbench 1.0.19 → 1.0.21
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 -28
- package/dist/index.js +83 -14
- package/dist/index.js.map +1 -1
- package/dist/modules/config.d.ts +3 -0
- package/dist/modules/config.js +7 -2
- package/dist/modules/config.js.map +1 -1
- package/dist/modules/docker.d.ts +3 -0
- package/dist/modules/docker.js +50 -3
- package/dist/modules/docker.js.map +1 -1
- package/dist/modules/doctor.d.ts +14 -0
- package/dist/modules/doctor.js +65 -0
- package/dist/modules/doctor.js.map +1 -0
- package/dist/modules/net.d.ts +2 -0
- package/dist/modules/net.js +41 -0
- package/dist/modules/net.js.map +1 -0
- package/dist/modules/officialTools.d.ts +7 -0
- package/dist/modules/officialTools.js +278 -0
- package/dist/modules/officialTools.js.map +1 -0
- package/dist/modules/runner.d.ts +19 -0
- package/dist/modules/runner.js +374 -0
- package/dist/modules/runner.js.map +1 -0
- package/dist/modules/scaffold.d.ts +1 -1
- package/dist/modules/scaffold.js +67 -64
- package/dist/modules/scaffold.js.map +1 -1
- package/dist/modules/state.d.ts +12 -0
- package/dist/modules/state.js +32 -0
- package/dist/modules/state.js.map +1 -0
- package/dist/modules/version.d.ts +1 -0
- package/dist/modules/version.js +31 -0
- package/dist/modules/version.js.map +1 -0
- package/dist/templates/index.js +10 -11
- package/dist/templates/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"net.js","sourceRoot":"","sources":["../../src/modules/net.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,SAAS,GAAG,IAAI;IACzE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YAC9B,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAI,GAAG,SAAS;IAC7D,OAAO,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FccEnv } from './config.js';
|
|
2
|
+
export declare function assertE2EPrereqs(): Promise<void>;
|
|
3
|
+
export declare function runGoTool(command: string, env: FccEnv, args?: string[], capture?: boolean): Promise<string>;
|
|
4
|
+
export declare function toolHelp(command: string): Promise<string>;
|
|
5
|
+
export declare function toolSupportsFlag(command: string, flag: string): Promise<boolean>;
|
|
6
|
+
export declare function parseExtensionId(output: string): string;
|
|
7
|
+
export declare function parseLastAddress(output: string): string;
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
const DEFAULT_FCE_SIGN_REF = process.env.FLARE_FCC_FCE_SIGN_REF || 'main';
|
|
6
|
+
// Default sibling refs chosen to match `fce-sign` current main (as of 2026-05-28):
|
|
7
|
+
// - `sign-extension/tools` go.mod requires tee-node v0.0.20 and tee-proxy v0.0.1, with replace directives.
|
|
8
|
+
// Users can override any of these via env vars.
|
|
9
|
+
const DEFAULT_TEE_NODE_REF = process.env.FLARE_FCC_TEE_NODE_REF || 'v0.0.20';
|
|
10
|
+
const DEFAULT_TEE_PROXY_REF = process.env.FLARE_FCC_TEE_PROXY_REF || '0.0.1';
|
|
11
|
+
const GLOBAL_ROOT = path.join(os.homedir(), '.flare-fcc', 'toolchains');
|
|
12
|
+
const TOOLCHAIN_NAME = 'fce-sign';
|
|
13
|
+
const REPO_URL = 'https://github.com/flare-foundation/fce-sign.git';
|
|
14
|
+
const TEE_NODE_REPO_URL = 'https://github.com/flare-foundation/tee-node.git';
|
|
15
|
+
const TEE_PROXY_REPO_URL = 'https://github.com/flare-foundation/tee-proxy.git';
|
|
16
|
+
function detectSiblingVersions(repoPath) {
|
|
17
|
+
try {
|
|
18
|
+
const goModPath = path.join(repoPath, 'go', 'tools', 'go.mod');
|
|
19
|
+
if (!fs.existsSync(goModPath))
|
|
20
|
+
return { teeNode: null, teeProxy: null };
|
|
21
|
+
const text = fs.readFileSync(goModPath, 'utf8');
|
|
22
|
+
const teeNodeMatch = text.match(/github\.com\/flare-foundation\/tee-node\s+v([0-9]+\.[0-9]+\.[0-9]+)/);
|
|
23
|
+
const teeProxyMatch = text.match(/github\.com\/flare-foundation\/tee-proxy\s+v([0-9]+\.[0-9]+\.[0-9]+)/);
|
|
24
|
+
return {
|
|
25
|
+
teeNode: teeNodeMatch ? `v${teeNodeMatch[1]}` : null,
|
|
26
|
+
teeProxy: teeProxyMatch ? `v${teeProxyMatch[1]}` : null,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return { teeNode: null, teeProxy: null };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function run(command, args, options) {
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
const child = spawn(command, args, {
|
|
36
|
+
cwd: options.cwd,
|
|
37
|
+
env: { ...process.env, ...options.env },
|
|
38
|
+
shell: false,
|
|
39
|
+
stdio: options.capture ? ['ignore', 'pipe', 'pipe'] : 'inherit',
|
|
40
|
+
});
|
|
41
|
+
let output = '';
|
|
42
|
+
if (options.capture) {
|
|
43
|
+
child.stdout?.on('data', (chunk) => {
|
|
44
|
+
const text = chunk.toString();
|
|
45
|
+
output += text;
|
|
46
|
+
process.stdout.write(text);
|
|
47
|
+
});
|
|
48
|
+
child.stderr?.on('data', (chunk) => {
|
|
49
|
+
const text = chunk.toString();
|
|
50
|
+
output += text;
|
|
51
|
+
process.stderr.write(text);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
child.on('error', reject);
|
|
55
|
+
child.on('close', (code) => {
|
|
56
|
+
if (code === 0)
|
|
57
|
+
resolve(output);
|
|
58
|
+
else {
|
|
59
|
+
const suffix = output.trim() ? `\n${output.trim()}` : '';
|
|
60
|
+
reject(new Error(`${command} ${args.join(' ')} exited with code ${code}${suffix}`));
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async function commandAvailable(command) {
|
|
66
|
+
try {
|
|
67
|
+
if (process.platform === 'win32') {
|
|
68
|
+
await run('where', [command], { cwd: process.cwd(), capture: true });
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
await run('bash', ['-lc', `command -v ${command}`], { cwd: process.cwd(), capture: true });
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export async function assertE2EPrereqs() {
|
|
80
|
+
const missing = [];
|
|
81
|
+
if (!(await commandAvailable('jq')))
|
|
82
|
+
missing.push('jq');
|
|
83
|
+
if (!(await commandAvailable('forge')))
|
|
84
|
+
missing.push('forge');
|
|
85
|
+
if (missing.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
const hint = process.platform === 'win32'
|
|
88
|
+
? 'Install jq + Foundry in the environment where you run this command.'
|
|
89
|
+
: 'Install prerequisites:\n' +
|
|
90
|
+
' - jq: `sudo apt-get update && sudo apt-get install -y jq`\n' +
|
|
91
|
+
' - Foundry: `curl -L https://foundry.paradigm.xyz | bash && foundryup`';
|
|
92
|
+
throw new Error(`Missing required tools for E2E test: ${missing.join(', ')}.\n${hint}`);
|
|
93
|
+
}
|
|
94
|
+
function toolEnv(env) {
|
|
95
|
+
const rawPrivateKey = env.PRIVATE_KEY?.trim();
|
|
96
|
+
const cleanPrivateKey = rawPrivateKey?.replace(/^0x/, '');
|
|
97
|
+
return {
|
|
98
|
+
LANGUAGE: env.LANGUAGE || 'typescript',
|
|
99
|
+
// Keep both forms: some tools expect 0x-prefixed, others expect raw hex.
|
|
100
|
+
PRIVATE_KEY: rawPrivateKey ?? cleanPrivateKey,
|
|
101
|
+
PRIVATE_KEY_HEX: cleanPrivateKey,
|
|
102
|
+
DEPLOYMENT_PRIVATE_KEY: rawPrivateKey ?? cleanPrivateKey,
|
|
103
|
+
DEPLOYMENT_PRIVATE_KEY_HEX: cleanPrivateKey,
|
|
104
|
+
SIMULATED_TEE: env.SIMULATED_TEE,
|
|
105
|
+
LOCAL_MODE: env.LOCAL_MODE,
|
|
106
|
+
NORMAL_PROXY_URL: env.NORMAL_PROXY_URL,
|
|
107
|
+
INITIAL_OWNER: env.INITIAL_OWNER,
|
|
108
|
+
INSTRUCTION_SENDER: env.INSTRUCTION_SENDER,
|
|
109
|
+
EXTENSION_ID: env.EXTENSION_ID,
|
|
110
|
+
TUNNEL_URL: env.TUNNEL_URL,
|
|
111
|
+
CHAIN_URL: env.RPC_URL || 'https://coston2-api.flare.network/ext/C/rpc',
|
|
112
|
+
RPC_URL: env.RPC_URL || 'https://coston2-api.flare.network/ext/C/rpc',
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function toolExeName(command) {
|
|
116
|
+
return process.platform === 'win32' ? `${command}.exe` : command;
|
|
117
|
+
}
|
|
118
|
+
function toolchainRoot(ref) {
|
|
119
|
+
// Single shared root for the toolchain. We keep a "current" checkout for `fce-sign`
|
|
120
|
+
// and sibling repos needed by its replace directives. We also keep per-ref bin outputs.
|
|
121
|
+
void ref;
|
|
122
|
+
return path.join(GLOBAL_ROOT, TOOLCHAIN_NAME);
|
|
123
|
+
}
|
|
124
|
+
function goBinDir(ref) {
|
|
125
|
+
const safeRef = (ref || 'main').replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
126
|
+
return path.join(toolchainRoot(ref), 'bin', safeRef);
|
|
127
|
+
}
|
|
128
|
+
function repoDir(ref) {
|
|
129
|
+
void ref;
|
|
130
|
+
return path.join(toolchainRoot(ref), 'src');
|
|
131
|
+
}
|
|
132
|
+
function addressesFilePath(ref) {
|
|
133
|
+
// fce-sign repo has network configs under config/<network>/...
|
|
134
|
+
return path.join(repoDir(ref), 'config', 'coston2', 'deployed-addresses.json');
|
|
135
|
+
}
|
|
136
|
+
function siblingRepoDir(ref, name) {
|
|
137
|
+
void ref;
|
|
138
|
+
// replace directives in fce-sign/go/tools/go.mod go up 4 levels from `src/go/tools`
|
|
139
|
+
// to reach `GLOBAL_ROOT`, so sibling repos must live directly under `GLOBAL_ROOT`.
|
|
140
|
+
return path.join(GLOBAL_ROOT, name);
|
|
141
|
+
}
|
|
142
|
+
async function ensureRepo(ref) {
|
|
143
|
+
const repoPath = repoDir(ref);
|
|
144
|
+
if (fs.existsSync(path.join(repoPath, '.git')))
|
|
145
|
+
return repoPath;
|
|
146
|
+
await fs.ensureDir(path.dirname(repoPath));
|
|
147
|
+
process.stdout.write('Installing Flare toolchain (one-time)…\n');
|
|
148
|
+
// Shallow clone of the default branch; we can fetch/checkout refs later if needed.
|
|
149
|
+
await run('git', ['clone', '--depth', '1', REPO_URL, repoPath], { cwd: path.dirname(repoPath), capture: true });
|
|
150
|
+
return repoPath;
|
|
151
|
+
}
|
|
152
|
+
async function ensureSiblingRepo(name, repoUrl, ref) {
|
|
153
|
+
const repoPath = siblingRepoDir(ref, name);
|
|
154
|
+
if (fs.existsSync(path.join(repoPath, '.git')))
|
|
155
|
+
return repoPath;
|
|
156
|
+
await fs.ensureDir(path.dirname(repoPath));
|
|
157
|
+
await run('git', ['clone', '--depth', '1', repoUrl, repoPath], { cwd: path.dirname(repoPath), capture: true });
|
|
158
|
+
return repoPath;
|
|
159
|
+
}
|
|
160
|
+
async function ensureRepoRef(repoPath, ref) {
|
|
161
|
+
// If ref is "main" we can skip extra work (already cloned depth=1).
|
|
162
|
+
if (!ref || ref === 'main')
|
|
163
|
+
return;
|
|
164
|
+
// Fetch ref (tag/commit/branch) with minimal history then checkout.
|
|
165
|
+
await run('git', ['fetch', '--depth', '1', 'origin', ref], { cwd: repoPath, capture: true });
|
|
166
|
+
await run('git', ['checkout', '--force', 'FETCH_HEAD'], { cwd: repoPath, capture: true });
|
|
167
|
+
}
|
|
168
|
+
function bindingsDir(repoPath) {
|
|
169
|
+
return path.join(repoPath, 'go', 'tools', 'pkg', 'contracts', 'sign');
|
|
170
|
+
}
|
|
171
|
+
function bindingsReady(repoPath) {
|
|
172
|
+
const dir = bindingsDir(repoPath);
|
|
173
|
+
return (fs.existsSync(path.join(dir, 'InstructionSender.abi')) &&
|
|
174
|
+
fs.existsSync(path.join(dir, 'InstructionSender.bin')));
|
|
175
|
+
}
|
|
176
|
+
async function ensureGoToolBuilt(command) {
|
|
177
|
+
const ref = DEFAULT_FCE_SIGN_REF;
|
|
178
|
+
const binDir = goBinDir(ref);
|
|
179
|
+
fs.ensureDirSync(binDir);
|
|
180
|
+
const exePath = path.join(binDir, toolExeName(command));
|
|
181
|
+
if (fs.existsSync(exePath))
|
|
182
|
+
return exePath;
|
|
183
|
+
const repoPath = await ensureRepo(ref);
|
|
184
|
+
await ensureRepoRef(repoPath, ref);
|
|
185
|
+
// fce-sign uses local replace directives pointing to sibling repositories.
|
|
186
|
+
// Provide those repos in the expected relative locations so `go build` works.
|
|
187
|
+
const teeNodePath = await ensureSiblingRepo('tee-node', TEE_NODE_REPO_URL, ref);
|
|
188
|
+
const teeProxyPath = await ensureSiblingRepo('tee-proxy', TEE_PROXY_REPO_URL, ref);
|
|
189
|
+
// Prefer explicit pinning for sibling repos. Auto-detecting versions from go.mod can be noisy
|
|
190
|
+
// (and refs may not exist as tags), so only try to checkout when the user provided a ref.
|
|
191
|
+
if (DEFAULT_TEE_NODE_REF) {
|
|
192
|
+
await ensureRepoRef(teeNodePath, DEFAULT_TEE_NODE_REF);
|
|
193
|
+
}
|
|
194
|
+
if (DEFAULT_TEE_PROXY_REF) {
|
|
195
|
+
await ensureRepoRef(teeProxyPath, DEFAULT_TEE_PROXY_REF);
|
|
196
|
+
}
|
|
197
|
+
const toolsCwd = path.join(repoPath, 'go', 'tools');
|
|
198
|
+
try {
|
|
199
|
+
// Some tools rely on generated contract bindings (abigen). Ensure the ABI/BIN exist first.
|
|
200
|
+
// `fce-sign` provides a helper script that compiles Solidity via Foundry and extracts ABI/BIN.
|
|
201
|
+
if (!bindingsReady(repoPath)) {
|
|
202
|
+
const scriptPath = path.join(repoPath, 'scripts', 'generate-bindings.sh');
|
|
203
|
+
if (fs.existsSync(scriptPath)) {
|
|
204
|
+
// The bindings script needs jq + forge.
|
|
205
|
+
await assertE2EPrereqs();
|
|
206
|
+
await run('bash', [scriptPath], { cwd: repoPath, capture: true });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Now run go:generate for abigen to produce autogen.go (idempotent when already generated).
|
|
210
|
+
await run('go', ['generate', './...'], { cwd: toolsCwd, capture: true });
|
|
211
|
+
// Build inside the repo's main module context so any replace directives work as intended.
|
|
212
|
+
await run('go', ['build', '-o', exePath, `./cmd/${command}`], { cwd: toolsCwd, capture: true });
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
const detail = !bindingsReady(repoPath) && command === 'run-test'
|
|
216
|
+
? '\n\nNote: Building run-test requires Foundry (forge) and jq to generate InstructionSender ABI/BIN.\n' +
|
|
217
|
+
'Install prerequisites (forge + jq), or set FLARE_FCC_FCE_SIGN_REF to a ref that vendors bindings.'
|
|
218
|
+
: '';
|
|
219
|
+
throw new Error(`Failed to build Flare tool "${command}" from ${REPO_URL}@${ref}.\n` +
|
|
220
|
+
`Ensure Go is installed and you can reach GitHub.\n` +
|
|
221
|
+
`You can pin a specific version by setting FLARE_FCC_FCE_SIGN_REF.\n` +
|
|
222
|
+
`Original error: ${err?.message ?? String(err)}${detail}`);
|
|
223
|
+
}
|
|
224
|
+
if (!fs.existsSync(exePath)) {
|
|
225
|
+
throw new Error(`Tool "${command}" build finished but binary not found at ${exePath}.`);
|
|
226
|
+
}
|
|
227
|
+
return exePath;
|
|
228
|
+
}
|
|
229
|
+
export async function runGoTool(command, env, args = [], capture = false) {
|
|
230
|
+
const exe = await ensureGoToolBuilt(command);
|
|
231
|
+
const ref = DEFAULT_FCE_SIGN_REF;
|
|
232
|
+
const rpc = env.RPC_URL || 'https://coston2-api.flare.network/ext/C/rpc';
|
|
233
|
+
const hasAddresses = args.includes('-a') || args.some((a) => a.startsWith('-a='));
|
|
234
|
+
const addresses = addressesFilePath(ref);
|
|
235
|
+
const finalArgs = [
|
|
236
|
+
'-c',
|
|
237
|
+
rpc,
|
|
238
|
+
...(hasAddresses ? [] : ['-a', addresses]),
|
|
239
|
+
...args,
|
|
240
|
+
];
|
|
241
|
+
return run(exe, finalArgs, { cwd: process.cwd(), env: toolEnv(env), capture });
|
|
242
|
+
}
|
|
243
|
+
export async function toolHelp(command) {
|
|
244
|
+
const exe = await ensureGoToolBuilt(command);
|
|
245
|
+
try {
|
|
246
|
+
// Go `flag` package uses `-help` (not `-h`) for help output, and some tools already use `-h` for other flags.
|
|
247
|
+
return await run(exe, ['-help'], { cwd: process.cwd(), capture: true });
|
|
248
|
+
}
|
|
249
|
+
catch (err) {
|
|
250
|
+
// Many cobra/pflag CLIs exit 0 or 2 for help; we still want the output.
|
|
251
|
+
// Our run() throws on non-zero codes, so fall back to executing and capturing anyway via shell.
|
|
252
|
+
try {
|
|
253
|
+
return await run('bash', ['-lc', `"${exe}" -help || true`], { cwd: process.cwd(), capture: true });
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return err?.message ?? '';
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
export async function toolSupportsFlag(command, flag) {
|
|
261
|
+
const help = await toolHelp(command);
|
|
262
|
+
return help.includes(` ${flag}`) || help.includes(`\n ${flag}`);
|
|
263
|
+
}
|
|
264
|
+
export function parseExtensionId(output) {
|
|
265
|
+
const matches = output.match(/0x[a-fA-F0-9]{64}/g);
|
|
266
|
+
if (!matches?.length) {
|
|
267
|
+
throw new Error('Official register-extension completed but no 32-byte extension ID was found in its output.');
|
|
268
|
+
}
|
|
269
|
+
return matches[matches.length - 1];
|
|
270
|
+
}
|
|
271
|
+
export function parseLastAddress(output) {
|
|
272
|
+
const matches = output.match(/0x[a-fA-F0-9]{40}/g);
|
|
273
|
+
if (!matches?.length) {
|
|
274
|
+
throw new Error('Expected an EVM address in tool output, but none was found.');
|
|
275
|
+
}
|
|
276
|
+
return matches[matches.length - 1];
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=officialTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"officialTools.js","sourceRoot":"","sources":["../../src/modules/officialTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as stateStore from './state.js';
|
|
2
|
+
export type Profile = 'coston2' | 'mainnet';
|
|
3
|
+
export interface Step {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
requiresDoctorOk?: boolean;
|
|
7
|
+
run: (ctx: {
|
|
8
|
+
profile: Profile;
|
|
9
|
+
state: stateStore.RunState;
|
|
10
|
+
}) => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare function parseProfile(value: string): Profile;
|
|
13
|
+
export declare function onboard(opts: {
|
|
14
|
+
profile: Profile;
|
|
15
|
+
dryRun: boolean;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
export declare function resume(opts: {
|
|
18
|
+
dryRun: boolean;
|
|
19
|
+
}): Promise<void>;
|