@pasosdejesus/contract-test 0.2.3 → 0.3.0
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/clean.d.ts +7 -0
- package/dist/clean.d.ts.map +1 -0
- package/dist/clean.js +55 -0
- package/dist/clean.js.map +1 -0
- package/dist/compile.d.ts +3 -0
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +21 -3
- package/dist/compile.js.map +1 -1
- package/dist/deploy.d.ts +32 -0
- package/dist/deploy.d.ts.map +1 -0
- package/dist/deploy.js +193 -0
- package/dist/deploy.js.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +15 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +111 -0
- package/dist/node.js.map +1 -0
- package/dist/typechain.d.ts +18 -0
- package/dist/typechain.d.ts.map +1 -0
- package/dist/typechain.js +110 -0
- package/dist/typechain.js.map +1 -0
- package/dist/verify.d.ts +27 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +192 -0
- package/dist/verify.js.map +1 -0
- package/package.json +3 -3
package/dist/clean.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAsB,GAAG,WAAW,CAWtE;AAWD,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,IAAI,CAY7E"}
|
package/dist/clean.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contract:clean — remove generated contract outputs without Hardhat.
|
|
3
|
+
*
|
|
4
|
+
* Deletes `artifacts/`, `cache/`, `typechain-types/` and `dist/` from the
|
|
5
|
+
* contracts app. Deployments and sources are never touched.
|
|
6
|
+
*
|
|
7
|
+
* https://gitlab.com/pasosdeJesus/m/-/work_items/58
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from 'fs';
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import { findContractsApp } from './compile.js';
|
|
12
|
+
import { info, success, problem } from '@pasosdejesus/m/dist/util/colors.js';
|
|
13
|
+
const TARGETS = ['artifacts', 'cache', 'typechain-types', 'dist'];
|
|
14
|
+
export function cleanProject(root = process.cwd()) {
|
|
15
|
+
const app = findContractsApp(path.resolve(root));
|
|
16
|
+
if (!app)
|
|
17
|
+
throw new Error('no contracts app found (apps/contracts, apps/hardhat or hardhat/)');
|
|
18
|
+
const removed = [];
|
|
19
|
+
for (const target of TARGETS) {
|
|
20
|
+
const dir = path.join(app, target);
|
|
21
|
+
if (!fs.existsSync(dir))
|
|
22
|
+
continue;
|
|
23
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
24
|
+
removed.push(target);
|
|
25
|
+
}
|
|
26
|
+
return { app: path.relative(path.resolve(root), app) || '.', removed };
|
|
27
|
+
}
|
|
28
|
+
function parseArgs(args) {
|
|
29
|
+
const options = {};
|
|
30
|
+
for (let index = 0; index < args.length; index++) {
|
|
31
|
+
if (args[index] === '--root')
|
|
32
|
+
options.root = args[++index];
|
|
33
|
+
else if (args[index] === '--json')
|
|
34
|
+
options.json = true;
|
|
35
|
+
}
|
|
36
|
+
return options;
|
|
37
|
+
}
|
|
38
|
+
export function runContractClean(args = process.argv.slice(3)) {
|
|
39
|
+
const options = parseArgs(args);
|
|
40
|
+
try {
|
|
41
|
+
const result = cleanProject(options.root);
|
|
42
|
+
if (options.json)
|
|
43
|
+
console.log(JSON.stringify(result, null, 2));
|
|
44
|
+
else if (result.removed.length === 0)
|
|
45
|
+
info(`[OK] ${result.app}: nada que limpiar`);
|
|
46
|
+
else
|
|
47
|
+
success(`[OK] ${result.app}: eliminado ${result.removed.join(', ')}`);
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
problem(error instanceof Error ? error.message : String(error));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"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"}
|
package/dist/compile.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export interface ProjectCompileConfig extends CompileSettings {
|
|
|
5
5
|
export interface CompilerChoice {
|
|
6
6
|
kind: 'native' | 'solc-js';
|
|
7
7
|
version: string;
|
|
8
|
+
/** Version with the commit hash, as explorers require it. */
|
|
9
|
+
fullVersion?: string;
|
|
8
10
|
label: string;
|
|
9
11
|
compile(input: string): string;
|
|
10
12
|
}
|
|
@@ -12,6 +14,7 @@ export interface CompileResult {
|
|
|
12
14
|
app: string;
|
|
13
15
|
compiler: string;
|
|
14
16
|
version: string;
|
|
17
|
+
compilerVersion?: string;
|
|
15
18
|
contracts: number;
|
|
16
19
|
artifacts: string[];
|
|
17
20
|
warnings: string[];
|
package/dist/compile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGtE,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5D;AAUD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAkCtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,OAAO,IAAI,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjE;
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGtE,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5D;AAUD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAkCtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,OAAO,IAAI,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjE;AAsBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,cAAc,CAoFjB;AAuBD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAmDnG;AAMD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,GAAG,aAAa,CAkEhB;AAoBD,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,IAAI,CAiB/E"}
|
package/dist/compile.js
CHANGED
|
@@ -85,11 +85,15 @@ export function solcJsVersion(solc) {
|
|
|
85
85
|
return solc.version().split('+')[0].split('.Emscripten')[0];
|
|
86
86
|
}
|
|
87
87
|
function nativeSolcVersion(binary) {
|
|
88
|
+
const full = nativeSolcFullVersion(binary);
|
|
89
|
+
return full ? full.split('+')[0].split('.Emscripten')[0].trim() : null;
|
|
90
|
+
}
|
|
91
|
+
function nativeSolcFullVersion(binary) {
|
|
88
92
|
const run = spawnSync(binary, ['--version'], { encoding: 'utf-8' });
|
|
89
93
|
if (run.status !== 0 || !run.stdout)
|
|
90
94
|
return null;
|
|
91
95
|
const line = run.stdout.split('\n').find((entry) => entry.includes('Version:'));
|
|
92
|
-
return line ? line.replace(/.*Version:\s*/, '').
|
|
96
|
+
return line ? line.replace(/.*Version:\s*/, '').trim() : null;
|
|
93
97
|
}
|
|
94
98
|
function loadSolcJs(pathOrModule) {
|
|
95
99
|
if (pathOrModule.includes('/') || pathOrModule.endsWith('.js')) {
|
|
@@ -119,6 +123,7 @@ export function selectCompiler(options) {
|
|
|
119
123
|
return {
|
|
120
124
|
kind: 'native',
|
|
121
125
|
version,
|
|
126
|
+
fullVersion: nativeSolcFullVersion(binary) ?? undefined,
|
|
122
127
|
label: `${binary} (native)`,
|
|
123
128
|
compile: (input) => {
|
|
124
129
|
const run = spawnSync(binary, ['--standard-json', '--base-path', options.appDir ?? process.cwd()], {
|
|
@@ -138,7 +143,13 @@ export function selectCompiler(options) {
|
|
|
138
143
|
if (pin && version !== pin) {
|
|
139
144
|
throw new Error(`solc-js at ${options.solcJs} is ${version}, but the project pins ${pin}`);
|
|
140
145
|
}
|
|
141
|
-
return {
|
|
146
|
+
return {
|
|
147
|
+
kind: 'solc-js',
|
|
148
|
+
version,
|
|
149
|
+
fullVersion: module.version(),
|
|
150
|
+
label: `${options.solcJs} (solc-js)`,
|
|
151
|
+
compile: (input) => module.compile(input),
|
|
152
|
+
};
|
|
142
153
|
}
|
|
143
154
|
// The project's own `solc` wins (it declares the pin); contract-test ships
|
|
144
155
|
// one too so the template compiles out of the box.
|
|
@@ -161,7 +172,13 @@ export function selectCompiler(options) {
|
|
|
161
172
|
for (const { label, module } of modules) {
|
|
162
173
|
const version = solcJsVersion(module);
|
|
163
174
|
if (!pin || version === pin) {
|
|
164
|
-
return {
|
|
175
|
+
return {
|
|
176
|
+
kind: 'solc-js',
|
|
177
|
+
version,
|
|
178
|
+
fullVersion: module.version(),
|
|
179
|
+
label: `${label} ${version}`,
|
|
180
|
+
compile: (input) => module.compile(input),
|
|
181
|
+
};
|
|
165
182
|
}
|
|
166
183
|
}
|
|
167
184
|
if (modules.length > 0) {
|
|
@@ -298,6 +315,7 @@ export function compileProject(options) {
|
|
|
298
315
|
app: app === root ? '.' : path.relative(root, app),
|
|
299
316
|
compiler: compiler.label,
|
|
300
317
|
version: compiler.version,
|
|
318
|
+
compilerVersion: compiler.fullVersion,
|
|
301
319
|
contracts: Object.values((output.contracts ?? {}))
|
|
302
320
|
.reduce((total, names) => total + Object.keys(names).length, 0),
|
|
303
321
|
artifacts,
|
package/dist/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEtC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAA;AAsBlF,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;AAEpE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QACjC,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAC1C,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IACD,+DAA+D;IAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAA;IACrE,IAAI,QAAQ,IAAI,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC5F,OAAO;YACL,OAAO,EAAE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO;YAC7E,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,IAAI;SAC/B,CAAA;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAQ;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QACtC,IAAI,EAAE,GAAG,CAAC;YAAE,SAAQ;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;QAEvC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACjF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;QACrG,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACrF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE1D,OAAO;YACL,OAAO;YACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAA;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA2B;IACvD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACnE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/E,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrG,CAAC;AAED,SAAS,UAAU,CAAC,YAAoB;IACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;QACvC,OAAO,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAK9B;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAA;IAC3B,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IAAI,OAAO,CAAC,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEvB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,IAAI,GAAG,IAAI,OAAO,KAAK,GAAG;YAAE,SAAQ;QACpC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,KAAK,EAAE,GAAG,MAAM,WAAW;YAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;oBACjG,KAAK;oBACL,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;iBAC7B,CAAC,CAAA;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;gBAChF,OAAO,GAAG,CAAC,MAAM,CAAA;YACnB,CAAC;SACF,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,CAAC,MAAM,OAAO,OAAO,0BAA0B,GAAG,EAAE,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;IACtH,CAAC;IAED,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,OAAO,GAAoE,EAAE,CAAA;IACnF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;YAC/E,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;IAED,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;QAC9G,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,yBAAyB,GAAG,iCAAiC;YAC3D,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACrE,gBAAgB,GAAG,mCAAmC,CACzD,CAAA;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,IAAI,YAAY,6BAA6B;QACtE,sEAAsE,CACzE,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAQ;QAClC,OAAO,EAAE;aACN,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;aAC3B,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACvE,MAAM,KAAK,GAAwC,EAAE,CAAA;IAErD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAA;IAEhF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QAEtB,MAAM,QAAQ,GAAG,oDAAoD,CAAA;QACrE,IAAI,KAA6B,CAAA;QACjC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACxC,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACxB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC7C,MAAK;gBACP,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,CAAC;gBAAE,SAAQ;YAEhC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;gBACpG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;gBACnF,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,WAAW,GAAkB,IAAI,CAAA;YACrC,IAAI,CAAC;gBACH,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;gBAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,WAAW,GAAG,QAAQ,CAAA;YACrD,CAAC;YACD,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,4BAA4B,SAAS,GAAG,CAAC,CAAA;YACjF,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,UAAkB;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAS9B;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACxD,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;IAE9F,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;IACjD,MAAM,QAAQ,GAAoB;QAChC,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK;YAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,IAAI,GAAG;SACpD;QACD,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAA;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IACrG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,MAAM,MAAM,GAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAA2D;SAC5F,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE5E,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAwC,CAAC,EAAE,CAAC;QAClH,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YACxC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,CAAA;YAC3C,EAAE,CAAC,aAAa,CACd,IAAI,EACJ,IAAI,CAAC,SAAS,CACZ;gBACE,OAAO,EAAE,mBAAmB;gBAC5B,YAAY,EAAE,IAAI;gBAClB,UAAU;gBACV,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;gBACnB,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE;gBACjD,gBAAgB,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAAE,EAAE;gBACjE,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,IAAI,EAAE;gBACxD,sBAAsB,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,cAAc,IAAI,EAAE;aACzE,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAA;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAA2D;SAC9F,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;SAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAEzC,OAAO;QACL,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;QAClD,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAwC,CAAC;aACtF,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,SAAS;QACT,QAAQ;KACT,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAQ,EAAE,CAAA;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;aAC7C,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;aAClD,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;aACvD,IAAI,GAAG,KAAK,gBAAgB;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;aAC7D,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAA;aACjD,IAAI,GAAG,KAAK,eAAe;YAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAA;aACrD,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;aAC1D,IAAI,GAAG,KAAK,eAAe;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;aAC/D,IAAI,GAAG,KAAK,UAAU;YAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;aAC5C,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;IAChD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YAC1D,OAAO,CAAC,UAAU,MAAM,CAAC,SAAS,mBAAmB,MAAM,CAAC,SAAS,CAAC,MAAM,eAAe,CAAC,CAAA;YAC5F,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACtF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,CAAA;QACxF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/deploy.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface DeployOptions {
|
|
2
|
+
root?: string;
|
|
3
|
+
contract?: string;
|
|
4
|
+
network?: string;
|
|
5
|
+
rpc?: string;
|
|
6
|
+
privateKey?: string;
|
|
7
|
+
args?: unknown[];
|
|
8
|
+
deploymentsDir?: string;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface DeployResult {
|
|
12
|
+
contract: string;
|
|
13
|
+
address: string;
|
|
14
|
+
chainId: number;
|
|
15
|
+
network: string;
|
|
16
|
+
transactionHash: string;
|
|
17
|
+
file: string;
|
|
18
|
+
}
|
|
19
|
+
interface Artifact {
|
|
20
|
+
contractName: string;
|
|
21
|
+
abi: unknown[];
|
|
22
|
+
bytecode: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function findArtifact(appDir: string, contract: string): Artifact;
|
|
25
|
+
export declare function readProjectNetwork(appDir: string, network: string): {
|
|
26
|
+
url?: string;
|
|
27
|
+
chainId?: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function deployProject(options: DeployOptions): Promise<DeployResult>;
|
|
30
|
+
export declare function runContractDeploy(args?: string[]): Promise<void>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,OAAO,EAAE,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAUD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAMvE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBtG;AAiBD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA4EjF;AAkBD,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAe7F"}
|
package/dist/deploy.js
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contract:deploy — deploy an artifact with viem (no Hardhat).
|
|
3
|
+
*
|
|
4
|
+
* Reads the artifact written by `contract:compile`, the RPC URL from
|
|
5
|
+
* `contracts.config.json`/`hardhat.config.ts` (or `--rpc`), and the signer from
|
|
6
|
+
* `--private-key`/`PRIVATE_KEY`. Writes a deployment JSON compatible with
|
|
7
|
+
* `@pasosdejesus/m/blockchain/deployments`.
|
|
8
|
+
*
|
|
9
|
+
* Real-value deployments must be authorized by the operator; the agent only
|
|
10
|
+
* runs this on local nodes or testnets.
|
|
11
|
+
*
|
|
12
|
+
* https://gitlab.com/pasosdeJesus/m/-/work_items/58
|
|
13
|
+
*/
|
|
14
|
+
import * as fs from 'fs';
|
|
15
|
+
import * as path from 'path';
|
|
16
|
+
import { findContractsApp } from './compile.js';
|
|
17
|
+
import { listArtifacts } from './typechain.js';
|
|
18
|
+
import { info, success, problem, warn } from '@pasosdejesus/m/dist/util/colors.js';
|
|
19
|
+
function readJson(file) {
|
|
20
|
+
try {
|
|
21
|
+
return JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function findArtifact(appDir, contract) {
|
|
28
|
+
for (const file of listArtifacts(appDir)) {
|
|
29
|
+
const data = readJson(file);
|
|
30
|
+
if (data?.contractName === contract)
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
throw new Error(`artifact for ${contract} not found; run contract:compile first`);
|
|
34
|
+
}
|
|
35
|
+
export function readProjectNetwork(appDir, network) {
|
|
36
|
+
const config = readJson(path.join(appDir, 'contracts.config.json'));
|
|
37
|
+
const entry = config?.networks?.[network];
|
|
38
|
+
if (entry && typeof entry === 'object') {
|
|
39
|
+
return {
|
|
40
|
+
url: typeof entry.url === 'string' ? entry.url : undefined,
|
|
41
|
+
chainId: typeof entry.chainId === 'number' ? entry.chainId : undefined,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
for (const name of ['hardhat.config.ts', 'hardhat.config.js']) {
|
|
45
|
+
const file = path.join(appDir, name);
|
|
46
|
+
if (!fs.existsSync(file))
|
|
47
|
+
continue;
|
|
48
|
+
const text = fs.readFileSync(file, 'utf-8');
|
|
49
|
+
const block = text.match(new RegExp(`['"]?${network}['"]?\\s*:\\s*\\{([\\s\\S]*?)\\n\\s*\\}`, 'm'));
|
|
50
|
+
if (!block)
|
|
51
|
+
continue;
|
|
52
|
+
const url = block[1].match(/url\s*:\s*['"]([^'"]+)['"]/)?.[1];
|
|
53
|
+
const chainId = block[1].match(/chainId\s*:\s*(\d+)/)?.[1];
|
|
54
|
+
return { url, ...(chainId ? { chainId: Number(chainId) } : {}) };
|
|
55
|
+
}
|
|
56
|
+
return {};
|
|
57
|
+
}
|
|
58
|
+
function resolveRpc(appDir, options) {
|
|
59
|
+
if (options.rpc)
|
|
60
|
+
return options.rpc;
|
|
61
|
+
const configured = options.network ? readProjectNetwork(appDir, options.network).url : undefined;
|
|
62
|
+
return configured ?? process.env.RPC_URL ?? process.env.NEXT_PUBLIC_RPC_URL ?? '';
|
|
63
|
+
}
|
|
64
|
+
function resolveKey(options) {
|
|
65
|
+
if (options.privateKey)
|
|
66
|
+
return options.privateKey;
|
|
67
|
+
if (process.env.PRIVATE_KEY) {
|
|
68
|
+
warn('[WARN] usando PRIVATE_KEY del entorno; para producción usa `eng:opwallet:*`.');
|
|
69
|
+
return process.env.PRIVATE_KEY;
|
|
70
|
+
}
|
|
71
|
+
throw new Error('missing signer: pass --private-key 0x… or set PRIVATE_KEY');
|
|
72
|
+
}
|
|
73
|
+
export async function deployProject(options) {
|
|
74
|
+
const root = path.resolve(options.root ?? process.cwd());
|
|
75
|
+
const app = findContractsApp(root);
|
|
76
|
+
if (!app)
|
|
77
|
+
throw new Error('no contracts app found (apps/contracts, apps/hardhat or hardhat/)');
|
|
78
|
+
if (!options.contract)
|
|
79
|
+
throw new Error('missing contract name (--contract <Name>)');
|
|
80
|
+
if (!options.network)
|
|
81
|
+
throw new Error('missing network name (--network <name>)');
|
|
82
|
+
const artifact = findArtifact(app, options.contract);
|
|
83
|
+
if (!artifact.bytecode || artifact.bytecode === '0x')
|
|
84
|
+
throw new Error(`${options.contract} has no bytecode`);
|
|
85
|
+
const rpc = resolveRpc(app, options);
|
|
86
|
+
if (!rpc)
|
|
87
|
+
throw new Error(`no RPC URL for ${options.network}; pass --rpc or define it in contracts.config.json`);
|
|
88
|
+
const { createPublicClient, createWalletClient, http } = await import('viem');
|
|
89
|
+
const { privateKeyToAccount } = await import('viem/accounts');
|
|
90
|
+
const transport = http(rpc);
|
|
91
|
+
const publicClient = createPublicClient({ transport });
|
|
92
|
+
const chainId = options.network ? readProjectNetwork(app, options.network).chainId : undefined;
|
|
93
|
+
const resolvedChainId = chainId ?? await publicClient.getChainId();
|
|
94
|
+
const chain = {
|
|
95
|
+
id: resolvedChainId,
|
|
96
|
+
name: options.network,
|
|
97
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
98
|
+
rpcUrls: { default: { http: [rpc] } },
|
|
99
|
+
};
|
|
100
|
+
// Local nodes expose unlocked accounts (eth_sendTransaction); remote networks
|
|
101
|
+
// need a locally signed transaction (eth_sendRawTransaction).
|
|
102
|
+
const local = /^(https?:\/\/)?(127\.0\.0\.1|localhost|\[::1\])(:|\/|$)/.test(rpc);
|
|
103
|
+
let account;
|
|
104
|
+
let address;
|
|
105
|
+
if (local) {
|
|
106
|
+
const accounts = await publicClient.request({ method: 'eth_accounts' });
|
|
107
|
+
if (accounts.length === 0)
|
|
108
|
+
throw new Error('the local node exposes no unlocked accounts');
|
|
109
|
+
account = accounts[0];
|
|
110
|
+
address = account;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const signer = privateKeyToAccount(resolveKey(options));
|
|
114
|
+
account = signer;
|
|
115
|
+
address = signer.address;
|
|
116
|
+
}
|
|
117
|
+
const walletClient = createWalletClient({ account, chain, transport });
|
|
118
|
+
info(`[INFO] ${options.contract} → ${options.network} (chain ${resolvedChainId}) desde ${address}`);
|
|
119
|
+
const hash = await walletClient.deployContract({
|
|
120
|
+
abi: artifact.abi,
|
|
121
|
+
bytecode: artifact.bytecode,
|
|
122
|
+
args: options.args ?? [],
|
|
123
|
+
account,
|
|
124
|
+
chain,
|
|
125
|
+
});
|
|
126
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
127
|
+
if (!receipt.contractAddress)
|
|
128
|
+
throw new Error(`deployment ${hash} produced no contract address`);
|
|
129
|
+
const deploymentsDir = options.deploymentsDir
|
|
130
|
+
? path.resolve(root, options.deploymentsDir)
|
|
131
|
+
: path.join(app, 'deployments');
|
|
132
|
+
const file = path.join(deploymentsDir, options.contract, `${options.network}.json`);
|
|
133
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
134
|
+
const deployment = {
|
|
135
|
+
contract: options.contract,
|
|
136
|
+
address: receipt.contractAddress,
|
|
137
|
+
chainId: resolvedChainId,
|
|
138
|
+
network: options.network,
|
|
139
|
+
transactionHash: hash,
|
|
140
|
+
deployedAt: new Date().toISOString(),
|
|
141
|
+
};
|
|
142
|
+
fs.writeFileSync(file, `${JSON.stringify(deployment, null, 2)}\n`);
|
|
143
|
+
return {
|
|
144
|
+
contract: options.contract,
|
|
145
|
+
address: receipt.contractAddress,
|
|
146
|
+
chainId: resolvedChainId,
|
|
147
|
+
network: options.network,
|
|
148
|
+
transactionHash: hash,
|
|
149
|
+
file,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function parseArgs(args) {
|
|
153
|
+
const options = {};
|
|
154
|
+
for (let index = 0; index < args.length; index++) {
|
|
155
|
+
const arg = args[index];
|
|
156
|
+
if (arg === '--root')
|
|
157
|
+
options.root = args[++index];
|
|
158
|
+
else if (arg === '--contract')
|
|
159
|
+
options.contract = args[++index];
|
|
160
|
+
else if (arg === '--network')
|
|
161
|
+
options.network = args[++index];
|
|
162
|
+
else if (arg === '--rpc')
|
|
163
|
+
options.rpc = args[++index];
|
|
164
|
+
else if (arg === '--private-key')
|
|
165
|
+
options.privateKey = args[++index];
|
|
166
|
+
else if (arg === '--deployments-dir')
|
|
167
|
+
options.deploymentsDir = args[++index];
|
|
168
|
+
else if (arg === '--args')
|
|
169
|
+
options.args = JSON.parse(args[++index] ?? '[]');
|
|
170
|
+
else if (arg === '--json')
|
|
171
|
+
options.json = true;
|
|
172
|
+
}
|
|
173
|
+
return options;
|
|
174
|
+
}
|
|
175
|
+
export async function runContractDeploy(args = process.argv.slice(3)) {
|
|
176
|
+
const options = parseArgs(args);
|
|
177
|
+
try {
|
|
178
|
+
const result = await deployProject(options);
|
|
179
|
+
if (options.json)
|
|
180
|
+
console.log(JSON.stringify(result, null, 2));
|
|
181
|
+
else {
|
|
182
|
+
success(`[OK] ${result.contract} en ${result.address} (${result.network})`);
|
|
183
|
+
info(` tx ${result.transactionHash}`);
|
|
184
|
+
info(` ${path.relative(process.cwd(), result.file)}`);
|
|
185
|
+
}
|
|
186
|
+
process.exit(0);
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
problem(error instanceof Error ? error.message : String(error));
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27,5 +27,40 @@ registerCommands({
|
|
|
27
27
|
},
|
|
28
28
|
description: 'Compile Solidity with native solc or solc-js (no Hardhat), writing Hardhat artifacts',
|
|
29
29
|
},
|
|
30
|
+
'contract:typechain': {
|
|
31
|
+
handler: async () => {
|
|
32
|
+
const { runContractTypechain } = await import('./typechain.js');
|
|
33
|
+
runContractTypechain();
|
|
34
|
+
},
|
|
35
|
+
description: 'Generate TypeScript bindings from Hardhat artifacts (no Hardhat)',
|
|
36
|
+
},
|
|
37
|
+
'contract:node': {
|
|
38
|
+
handler: async () => {
|
|
39
|
+
const { runContractNode } = await import('./node.js');
|
|
40
|
+
await runContractNode();
|
|
41
|
+
},
|
|
42
|
+
description: 'Run a local JSON-RPC node backed by @pasosdejesus/edr',
|
|
43
|
+
},
|
|
44
|
+
'contract:clean': {
|
|
45
|
+
handler: async () => {
|
|
46
|
+
const { runContractClean } = await import('./clean.js');
|
|
47
|
+
runContractClean();
|
|
48
|
+
},
|
|
49
|
+
description: 'Remove artifacts, cache, typechain-types and dist from the contracts app',
|
|
50
|
+
},
|
|
51
|
+
'contract:deploy': {
|
|
52
|
+
handler: async () => {
|
|
53
|
+
const { runContractDeploy } = await import('./deploy.js');
|
|
54
|
+
await runContractDeploy();
|
|
55
|
+
},
|
|
56
|
+
description: 'Deploy an artifact with viem and write a deployments/<Contract>/<network>.json',
|
|
57
|
+
},
|
|
58
|
+
'contract:verify': {
|
|
59
|
+
handler: async () => {
|
|
60
|
+
const { runContractVerify } = await import('./verify.js');
|
|
61
|
+
await runContractVerify();
|
|
62
|
+
},
|
|
63
|
+
description: 'Verify a deployment on Blockscout/Basescan (use --dry-run to inspect the request)',
|
|
64
|
+
},
|
|
30
65
|
});
|
|
31
66
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,gBAAgB,CAAC;IACf,eAAe,EAAE;QACf,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;YACvD,MAAM,eAAe,EAAE,CAAA;QACzB,CAAC;QACD,WAAW,EAAE,8EAA8E;KAC5F;IACD,sBAAsB,EAAE;QACtB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC5D,cAAc,EAAE,CAAA;QAClB,CAAC;QACD,WAAW,EAAE,mFAAmF;KACjG;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;YAC3D,kBAAkB,EAAE,CAAA;QACtB,CAAC;QACD,WAAW,EAAE,sFAAsF;KACpG;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,gBAAgB,CAAC;IACf,eAAe,EAAE;QACf,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;YACvD,MAAM,eAAe,EAAE,CAAA;QACzB,CAAC;QACD,WAAW,EAAE,8EAA8E;KAC5F;IACD,sBAAsB,EAAE;QACtB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC5D,cAAc,EAAE,CAAA;QAClB,CAAC;QACD,WAAW,EAAE,mFAAmF;KACjG;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;YAC3D,kBAAkB,EAAE,CAAA;QACtB,CAAC;QACD,WAAW,EAAE,sFAAsF;KACpG;IACD,oBAAoB,EAAE;QACpB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;YAC/D,oBAAoB,EAAE,CAAA;QACxB,CAAC;QACD,WAAW,EAAE,kEAAkE;KAChF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;YACrD,MAAM,eAAe,EAAE,CAAA;QACzB,CAAC;QACD,WAAW,EAAE,uDAAuD;KACrE;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YACvD,gBAAgB,EAAE,CAAA;QACpB,CAAC;QACD,WAAW,EAAE,0EAA0E;KACxF;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;YACzD,MAAM,iBAAiB,EAAE,CAAA;QAC3B,CAAC;QACD,WAAW,EAAE,gFAAgF;KAC9F;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;YACzD,MAAM,iBAAiB,EAAE,CAAA;QAC3B,CAAC;QACD,WAAW,EAAE,mFAAmF;KACjG;CACF,CAAC,CAAA"}
|
package/dist/node.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EdrProvider } from '@pasosdejesus/edr';
|
|
2
|
+
export interface NodeOptions {
|
|
3
|
+
host?: string;
|
|
4
|
+
port?: number;
|
|
5
|
+
chainId?: number;
|
|
6
|
+
json?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface RunningNode {
|
|
9
|
+
url: string;
|
|
10
|
+
provider: EdrProvider;
|
|
11
|
+
close(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare function startNode(options?: NodeOptions): Promise<RunningNode>;
|
|
14
|
+
export declare function runContractNode(args?: string[]): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAA;AAGxE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAuBD,wBAAsB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD/E;AAcD,wBAAsB,eAAe,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB3F"}
|
package/dist/node.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contract:node — local JSON-RPC node backed by @pasosdejesus/edr.
|
|
3
|
+
*
|
|
4
|
+
* Replaces `hardhat node` on OpenBSD/adJ. Exposes the methods EdrProvider
|
|
5
|
+
* implements (eth_*, evm_*, net_version, web3_clientVersion) over HTTP.
|
|
6
|
+
*
|
|
7
|
+
* https://gitlab.com/pasosdeJesus/m/-/work_items/58
|
|
8
|
+
*/
|
|
9
|
+
import * as http from 'http';
|
|
10
|
+
import { EdrProvider } from '@pasosdejesus/edr';
|
|
11
|
+
import { info, success, problem } from '@pasosdejesus/m/dist/util/colors.js';
|
|
12
|
+
async function dispatch(provider, request) {
|
|
13
|
+
const id = request.id ?? null;
|
|
14
|
+
if (!request.method) {
|
|
15
|
+
return { jsonrpc: '2.0', id, error: { code: -32600, message: 'Invalid Request' } };
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const result = await provider.send(request.method, request.params ?? []);
|
|
19
|
+
return { jsonrpc: '2.0', id, result };
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
23
|
+
return { jsonrpc: '2.0', id, error: { code: -32000, message } };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export async function startNode(options = {}) {
|
|
27
|
+
const host = options.host ?? '127.0.0.1';
|
|
28
|
+
const port = options.port ?? 8545;
|
|
29
|
+
const providerOptions = options.chainId ? { chainId: options.chainId } : {};
|
|
30
|
+
const provider = new EdrProvider(providerOptions);
|
|
31
|
+
await provider.init();
|
|
32
|
+
const server = http.createServer((req, res) => {
|
|
33
|
+
if (req.method !== 'POST') {
|
|
34
|
+
res.writeHead(405, { 'content-type': 'application/json' });
|
|
35
|
+
res.end(JSON.stringify({ jsonrpc: '2.0', id: null, error: { code: -32600, message: 'Use POST' } }));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const chunks = [];
|
|
39
|
+
req.on('data', (chunk) => chunks.push(chunk));
|
|
40
|
+
req.on('end', () => {
|
|
41
|
+
void (async () => {
|
|
42
|
+
try {
|
|
43
|
+
const body = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
|
|
44
|
+
const response = Array.isArray(body)
|
|
45
|
+
? await Promise.all(body.map((entry) => dispatch(provider, entry)))
|
|
46
|
+
: await dispatch(provider, body);
|
|
47
|
+
res.writeHead(200, { 'content-type': 'application/json' });
|
|
48
|
+
res.end(JSON.stringify(response));
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
52
|
+
res.writeHead(400, { 'content-type': 'application/json' });
|
|
53
|
+
res.end(JSON.stringify({ jsonrpc: '2.0', id: null, error: { code: -32700, message } }));
|
|
54
|
+
}
|
|
55
|
+
})();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
await new Promise((resolve, reject) => {
|
|
59
|
+
server.once('error', reject);
|
|
60
|
+
server.listen(port, host, resolve);
|
|
61
|
+
});
|
|
62
|
+
const address = server.address();
|
|
63
|
+
const actualPort = typeof address === 'object' && address ? address.port : port;
|
|
64
|
+
const url = `http://${host}:${actualPort}`;
|
|
65
|
+
return {
|
|
66
|
+
url,
|
|
67
|
+
provider,
|
|
68
|
+
async close() {
|
|
69
|
+
await new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())));
|
|
70
|
+
await provider.shutdown();
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function parseArgs(args) {
|
|
75
|
+
const options = {};
|
|
76
|
+
for (let index = 0; index < args.length; index++) {
|
|
77
|
+
const arg = args[index];
|
|
78
|
+
if (arg === '--host')
|
|
79
|
+
options.host = args[++index];
|
|
80
|
+
else if (arg === '--port')
|
|
81
|
+
options.port = Number(args[++index]);
|
|
82
|
+
else if (arg === '--chain-id')
|
|
83
|
+
options.chainId = Number(args[++index]);
|
|
84
|
+
else if (arg === '--json')
|
|
85
|
+
options.json = true;
|
|
86
|
+
}
|
|
87
|
+
return options;
|
|
88
|
+
}
|
|
89
|
+
export async function runContractNode(args = process.argv.slice(3)) {
|
|
90
|
+
const options = parseArgs(args);
|
|
91
|
+
try {
|
|
92
|
+
const node = await startNode(options);
|
|
93
|
+
if (options.json)
|
|
94
|
+
console.log(JSON.stringify({ url: node.url }));
|
|
95
|
+
else {
|
|
96
|
+
success(`[OK] JSON-RPC node en ${node.url}`);
|
|
97
|
+
info(' Ctrl+C para detener');
|
|
98
|
+
}
|
|
99
|
+
const stop = async () => {
|
|
100
|
+
await node.close();
|
|
101
|
+
process.exit(0);
|
|
102
|
+
};
|
|
103
|
+
process.once('SIGINT', () => void stop());
|
|
104
|
+
process.once('SIGTERM', () => void stop());
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
problem(error instanceof Error ? error.message : String(error));
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=node.js.map
|
package/dist/node.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface TypechainOptions {
|
|
2
|
+
root?: string;
|
|
3
|
+
target?: string;
|
|
4
|
+
outDir?: string;
|
|
5
|
+
compile?: boolean;
|
|
6
|
+
json?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface TypechainResult {
|
|
9
|
+
app: string;
|
|
10
|
+
outDir: string;
|
|
11
|
+
artifacts: number;
|
|
12
|
+
command: string;
|
|
13
|
+
}
|
|
14
|
+
/** Hardhat artifacts only: skips `.dbg.json`, build-info and unrelated JSON. */
|
|
15
|
+
export declare function listArtifacts(appDir: string): string[];
|
|
16
|
+
export declare function runTypechain(options?: TypechainOptions): TypechainResult;
|
|
17
|
+
export declare function runContractTypechain(args?: string[]): void;
|
|
18
|
+
//# sourceMappingURL=typechain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typechain.d.ts","sourceRoot":"","sources":["../src/typechain.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAQD,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBtD;AAWD,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA4B5E;AAeD,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,IAAI,CAWjF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contract:typechain — generate TypeScript bindings from Hardhat-shaped artifacts.
|
|
3
|
+
*
|
|
4
|
+
* Uses the project's own `typechain` binary (declared in the template) and the
|
|
5
|
+
* artifacts written by `contract:compile`. It never downloads a compiler.
|
|
6
|
+
*
|
|
7
|
+
* https://gitlab.com/pasosdeJesus/m/-/work_items/58
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from 'fs';
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import { spawnSync } from 'child_process';
|
|
12
|
+
import { compileProject, findContractsApp } from './compile.js';
|
|
13
|
+
import { info, success, problem, warn } from '@pasosdejesus/m/dist/util/colors.js';
|
|
14
|
+
/** Hardhat artifacts only: skips `.dbg.json`, build-info and unrelated JSON. */
|
|
15
|
+
export function listArtifacts(appDir) {
|
|
16
|
+
const root = path.join(appDir, 'artifacts');
|
|
17
|
+
const files = [];
|
|
18
|
+
const walk = (dir) => {
|
|
19
|
+
if (!fs.existsSync(dir))
|
|
20
|
+
return;
|
|
21
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
22
|
+
const abs = path.join(dir, entry.name);
|
|
23
|
+
if (entry.isDirectory()) {
|
|
24
|
+
walk(abs);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (!entry.name.endsWith('.json') || entry.name.endsWith('.dbg.json'))
|
|
28
|
+
continue;
|
|
29
|
+
try {
|
|
30
|
+
const data = JSON.parse(fs.readFileSync(abs, 'utf-8'));
|
|
31
|
+
if (data.contractName && Array.isArray(data.abi) && typeof data.bytecode === 'string')
|
|
32
|
+
files.push(abs);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Not an artifact; ignore.
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
walk(root);
|
|
40
|
+
return files.sort();
|
|
41
|
+
}
|
|
42
|
+
function typechainBinary(appDir) {
|
|
43
|
+
for (const base of [appDir, process.cwd()]) {
|
|
44
|
+
const bin = path.join(base, 'node_modules', '.bin', process.platform === 'win32' ? 'typechain.cmd' : 'typechain');
|
|
45
|
+
if (fs.existsSync(bin))
|
|
46
|
+
return { command: bin, prefix: [] };
|
|
47
|
+
}
|
|
48
|
+
warn('typechain is not installed in the contracts app; using npx (it may download an unpinned version).');
|
|
49
|
+
return { command: 'npx', prefix: ['typechain'] };
|
|
50
|
+
}
|
|
51
|
+
export function runTypechain(options = {}) {
|
|
52
|
+
const root = path.resolve(options.root ?? process.cwd());
|
|
53
|
+
const app = findContractsApp(root);
|
|
54
|
+
if (!app)
|
|
55
|
+
throw new Error('no contracts app found (apps/contracts, apps/hardhat or hardhat/)');
|
|
56
|
+
if (options.compile !== false) {
|
|
57
|
+
const result = compileProject({ root: app });
|
|
58
|
+
info(` using: ${result.compiler} ${result.version}`);
|
|
59
|
+
}
|
|
60
|
+
const artifacts = listArtifacts(app);
|
|
61
|
+
if (artifacts.length === 0) {
|
|
62
|
+
throw new Error(`no Hardhat artifacts under ${path.join(app, 'artifacts')}; run contract:compile first`);
|
|
63
|
+
}
|
|
64
|
+
const target = options.target ?? 'ethers-v6';
|
|
65
|
+
const outDir = options.outDir ?? 'typechain-types';
|
|
66
|
+
const bin = typechainBinary(app);
|
|
67
|
+
const args = [...bin.prefix, '--target', target, '--out-dir', outDir, ...artifacts];
|
|
68
|
+
const run = spawnSync(bin.command, args, { cwd: app, stdio: 'inherit' });
|
|
69
|
+
if (run.status !== 0)
|
|
70
|
+
throw new Error(`typechain failed with exit code ${run.status}`);
|
|
71
|
+
return {
|
|
72
|
+
app: path.relative(root, app) || '.',
|
|
73
|
+
outDir: path.join(app, outDir),
|
|
74
|
+
artifacts: artifacts.length,
|
|
75
|
+
command: `${bin.command} --target ${target} --out-dir ${outDir}`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function parseArgs(args) {
|
|
79
|
+
const options = {};
|
|
80
|
+
for (let index = 0; index < args.length; index++) {
|
|
81
|
+
const arg = args[index];
|
|
82
|
+
if (arg === '--root')
|
|
83
|
+
options.root = args[++index];
|
|
84
|
+
else if (arg === '--target')
|
|
85
|
+
options.target = args[++index];
|
|
86
|
+
else if (arg === '--out-dir')
|
|
87
|
+
options.outDir = args[++index];
|
|
88
|
+
else if (arg === '--no-compile')
|
|
89
|
+
options.compile = false;
|
|
90
|
+
else if (arg === '--json')
|
|
91
|
+
options.json = true;
|
|
92
|
+
}
|
|
93
|
+
return options;
|
|
94
|
+
}
|
|
95
|
+
export function runContractTypechain(args = process.argv.slice(3)) {
|
|
96
|
+
const options = parseArgs(args);
|
|
97
|
+
try {
|
|
98
|
+
const result = runTypechain(options);
|
|
99
|
+
if (options.json)
|
|
100
|
+
console.log(JSON.stringify(result, null, 2));
|
|
101
|
+
else
|
|
102
|
+
success(`[OK] ${result.artifacts} artefacto(s) → ${path.relative(process.cwd(), result.outDir)}`);
|
|
103
|
+
process.exit(0);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
problem(error instanceof Error ? error.message : String(error));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=typechain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typechain.js","sourceRoot":"","sources":["../src/typechain.ts"],"names":[],"mappings":"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"}
|
package/dist/verify.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface VerifyOptions {
|
|
2
|
+
root?: string;
|
|
3
|
+
contract?: string;
|
|
4
|
+
network?: string;
|
|
5
|
+
address?: string;
|
|
6
|
+
deploymentsDir?: string;
|
|
7
|
+
apiUrl?: string;
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
compilerVersion?: string;
|
|
10
|
+
constructorArgs?: unknown[];
|
|
11
|
+
dryRun?: boolean;
|
|
12
|
+
json?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface VerifyRequest {
|
|
15
|
+
url: string;
|
|
16
|
+
form: Record<string, string>;
|
|
17
|
+
}
|
|
18
|
+
/** Explorer API URL from `contracts.config.json` or `etherscan.customChains`. */
|
|
19
|
+
export declare function readExplorerUrl(appDir: string, network: string): string | undefined;
|
|
20
|
+
export declare function buildVerifyRequest(options?: VerifyOptions): VerifyRequest;
|
|
21
|
+
export declare function verifyProject(options?: VerifyOptions): Promise<{
|
|
22
|
+
ok: boolean;
|
|
23
|
+
message: string;
|
|
24
|
+
request: VerifyRequest;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function runContractVerify(args?: string[]): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAUD,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYnF;AAuBD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,aAAkB,GAAG,aAAa,CAuC7E;AAkBD,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAelI;AAqBD,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAc7F"}
|
package/dist/verify.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contract:verify — verify a deployed artifact on Blockscout/Basescan (no Hardhat).
|
|
3
|
+
*
|
|
4
|
+
* Builds a `solidity-standard-json-input` request from the sources compiled by
|
|
5
|
+
* `contract:compile`, the deployment JSON and the artifact, then posts it to the
|
|
6
|
+
* explorer API. `--dry-run` prints the request without touching the network.
|
|
7
|
+
*
|
|
8
|
+
* Real verifications need the operator's API key and a testnet/mainnet
|
|
9
|
+
* deployment already authorized; the agent never authorizes them.
|
|
10
|
+
*
|
|
11
|
+
* https://gitlab.com/pasosdeJesus/m/-/work_items/58
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from 'fs';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { createRequire } from 'module';
|
|
16
|
+
import { findContractsApp, collectSources, compileProject, readProjectConfig } from './compile.js';
|
|
17
|
+
import { standardInput } from './solc-parity.js';
|
|
18
|
+
import { findArtifact } from './deploy.js';
|
|
19
|
+
import { readDeployment } from '@pasosdejesus/m/blockchain/deployments';
|
|
20
|
+
import { info, success, problem } from '@pasosdejesus/m/dist/util/colors.js';
|
|
21
|
+
function readJson(file) {
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Explorer API URL from `contracts.config.json` or `etherscan.customChains`. */
|
|
30
|
+
export function readExplorerUrl(appDir, network) {
|
|
31
|
+
const config = readJson(path.join(appDir, 'contracts.config.json'));
|
|
32
|
+
const configured = config?.explorer?.[network]?.apiUrl ?? config?.etherscan?.customChains;
|
|
33
|
+
if (typeof configured === 'string')
|
|
34
|
+
return configured;
|
|
35
|
+
for (const name of ['hardhat.config.ts', 'hardhat.config.js']) {
|
|
36
|
+
const file = path.join(appDir, name);
|
|
37
|
+
if (!fs.existsSync(file))
|
|
38
|
+
continue;
|
|
39
|
+
const text = fs.readFileSync(file, 'utf-8');
|
|
40
|
+
const blocks = text.matchAll(/network:\s*['"]([^'"]+)['"][\s\S]*?apiURL:\s*['"]([^'"]+)['"]/g);
|
|
41
|
+
for (const match of blocks)
|
|
42
|
+
if (match[1] === network)
|
|
43
|
+
return match[2];
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
function readAddress(root, appDir, options) {
|
|
48
|
+
if (options.address)
|
|
49
|
+
return options.address;
|
|
50
|
+
const dir = options.deploymentsDir
|
|
51
|
+
? path.resolve(root, options.deploymentsDir)
|
|
52
|
+
: path.join(appDir, 'deployments');
|
|
53
|
+
const deployment = readDeployment(options.network, dir, { contract: options.contract });
|
|
54
|
+
if (!deployment)
|
|
55
|
+
throw new Error(`no deployment for ${options.contract} on ${options.network}`);
|
|
56
|
+
return deployment.address;
|
|
57
|
+
}
|
|
58
|
+
const require = createRequire(import.meta.url);
|
|
59
|
+
function encodeConstructorArgs(abi, args) {
|
|
60
|
+
if (!args || args.length === 0)
|
|
61
|
+
return '';
|
|
62
|
+
const constructor = abi.find((entry) => entry?.type === 'constructor');
|
|
63
|
+
if (!constructor?.inputs?.length)
|
|
64
|
+
return '';
|
|
65
|
+
// Keeps viem optional for compile/test-only users.
|
|
66
|
+
const { encodeAbiParameters } = require('viem');
|
|
67
|
+
return encodeAbiParameters(constructor.inputs, args).slice(2);
|
|
68
|
+
}
|
|
69
|
+
export function buildVerifyRequest(options = {}) {
|
|
70
|
+
const root = path.resolve(options.root ?? process.cwd());
|
|
71
|
+
const app = findContractsApp(root);
|
|
72
|
+
if (!app)
|
|
73
|
+
throw new Error('no contracts app found (apps/contracts, apps/hardhat or hardhat/)');
|
|
74
|
+
if (!options.contract)
|
|
75
|
+
throw new Error('missing contract name (--contract <Name>)');
|
|
76
|
+
if (!options.network)
|
|
77
|
+
throw new Error('missing network name (--network <name>)');
|
|
78
|
+
const artifact = findArtifact(app, options.contract);
|
|
79
|
+
const address = readAddress(root, app, options);
|
|
80
|
+
const apiUrl = options.apiUrl ?? readExplorerUrl(app, options.network);
|
|
81
|
+
if (!apiUrl)
|
|
82
|
+
throw new Error(`no explorer API URL for ${options.network}; pass --api-url`);
|
|
83
|
+
const apiKey = options.apiKey ?? process.env.BLOCKSCOUT_API_KEY ?? process.env.ETHERSCAN_API_KEY ?? '';
|
|
84
|
+
const settings = readProjectConfig(app);
|
|
85
|
+
let compilerVersion = options.compilerVersion;
|
|
86
|
+
if (!compilerVersion) {
|
|
87
|
+
const compiled = compileProject({ root: app });
|
|
88
|
+
compilerVersion = compiled.compilerVersion;
|
|
89
|
+
}
|
|
90
|
+
if (!compilerVersion) {
|
|
91
|
+
throw new Error('missing full compiler version (vX.Y.Z+commit.<hash>); pass --compiler-version');
|
|
92
|
+
}
|
|
93
|
+
const { sources } = collectSources(app);
|
|
94
|
+
const sourceCode = standardInput(sources, settings);
|
|
95
|
+
const sourceName = artifact.sourceName ?? Object.keys(sources)[0];
|
|
96
|
+
return {
|
|
97
|
+
url: apiUrl,
|
|
98
|
+
form: {
|
|
99
|
+
module: 'contract',
|
|
100
|
+
action: 'verifysourcecode',
|
|
101
|
+
apikey: apiKey,
|
|
102
|
+
contractaddress: address,
|
|
103
|
+
sourceCode,
|
|
104
|
+
codeformat: 'solidity-standard-json-input',
|
|
105
|
+
contractname: `${sourceName}:${artifact.contractName}`,
|
|
106
|
+
compilerversion: compilerVersion,
|
|
107
|
+
constructorArguements: encodeConstructorArgs(artifact.abi, options.constructorArgs),
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
async function pollStatus(url, apiKey, guid) {
|
|
112
|
+
for (let attempt = 0; attempt < 20; attempt++) {
|
|
113
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
114
|
+
const body = new URLSearchParams({ module: 'contract', action: 'checkverifystatus', apikey: apiKey, guid });
|
|
115
|
+
const response = await fetch(url, {
|
|
116
|
+
method: 'POST',
|
|
117
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
118
|
+
body,
|
|
119
|
+
});
|
|
120
|
+
const data = await response.json();
|
|
121
|
+
if (data.result && /pass|success/i.test(data.result))
|
|
122
|
+
return data.result;
|
|
123
|
+
if (data.result && /fail/i.test(data.result))
|
|
124
|
+
throw new Error(`verification failed: ${data.result}`);
|
|
125
|
+
}
|
|
126
|
+
throw new Error('verification still pending after 60s; check the explorer');
|
|
127
|
+
}
|
|
128
|
+
export async function verifyProject(options = {}) {
|
|
129
|
+
const request = buildVerifyRequest(options);
|
|
130
|
+
if (options.dryRun)
|
|
131
|
+
return { ok: true, message: 'dry-run: request built', request };
|
|
132
|
+
const response = await fetch(request.url, {
|
|
133
|
+
method: 'POST',
|
|
134
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
135
|
+
body: new URLSearchParams(request.form),
|
|
136
|
+
});
|
|
137
|
+
const data = await response.json();
|
|
138
|
+
if (data.status !== '1' || !data.result) {
|
|
139
|
+
throw new Error(`explorer rejected the request: ${data.message ?? data.result ?? 'unknown error'}`);
|
|
140
|
+
}
|
|
141
|
+
const message = await pollStatus(request.url, request.form.apikey, data.result);
|
|
142
|
+
return { ok: true, message, request };
|
|
143
|
+
}
|
|
144
|
+
function parseArgs(args) {
|
|
145
|
+
const options = {};
|
|
146
|
+
for (let index = 0; index < args.length; index++) {
|
|
147
|
+
const arg = args[index];
|
|
148
|
+
if (arg === '--root')
|
|
149
|
+
options.root = args[++index];
|
|
150
|
+
else if (arg === '--contract')
|
|
151
|
+
options.contract = args[++index];
|
|
152
|
+
else if (arg === '--network')
|
|
153
|
+
options.network = args[++index];
|
|
154
|
+
else if (arg === '--address')
|
|
155
|
+
options.address = args[++index];
|
|
156
|
+
else if (arg === '--deployments-dir')
|
|
157
|
+
options.deploymentsDir = args[++index];
|
|
158
|
+
else if (arg === '--api-url')
|
|
159
|
+
options.apiUrl = args[++index];
|
|
160
|
+
else if (arg === '--api-key')
|
|
161
|
+
options.apiKey = args[++index];
|
|
162
|
+
else if (arg === '--compiler-version')
|
|
163
|
+
options.compilerVersion = args[++index];
|
|
164
|
+
else if (arg === '--args')
|
|
165
|
+
options.constructorArgs = JSON.parse(args[++index] ?? '[]');
|
|
166
|
+
else if (arg === '--dry-run')
|
|
167
|
+
options.dryRun = true;
|
|
168
|
+
else if (arg === '--json')
|
|
169
|
+
options.json = true;
|
|
170
|
+
}
|
|
171
|
+
return options;
|
|
172
|
+
}
|
|
173
|
+
export async function runContractVerify(args = process.argv.slice(3)) {
|
|
174
|
+
const options = parseArgs(args);
|
|
175
|
+
try {
|
|
176
|
+
const result = await verifyProject(options);
|
|
177
|
+
if (options.json)
|
|
178
|
+
console.log(JSON.stringify(result, null, 2));
|
|
179
|
+
else if (options.dryRun) {
|
|
180
|
+
info(`[OK] dry-run para ${result.request.form.contractname} en ${result.request.url}`);
|
|
181
|
+
info(` compilerversion ${result.request.form.compilerversion}`);
|
|
182
|
+
}
|
|
183
|
+
else
|
|
184
|
+
success(`[OK] ${result.message}`);
|
|
185
|
+
process.exit(0);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
problem(error instanceof Error ? error.message : String(error));
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pasosdejesus/contract-test",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Hardhat test runner for OpenBSD — Mocha + @ethereumjs/vm EDR fallback",
|
|
5
5
|
"mEngine": true,
|
|
6
6
|
"author": "",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"m-engine.json"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@pasosdejesus/edr": "0.2.
|
|
25
|
+
"@pasosdejesus/edr": "^0.2.1",
|
|
26
26
|
"glob": "^13.0.6",
|
|
27
27
|
"mocha": "^11.7.6",
|
|
28
28
|
"solc": "0.8.26"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"@pasosdejesus/m": "^0.37.
|
|
31
|
+
"@pasosdejesus/m": "^0.37.3",
|
|
32
32
|
"ethers": "^6",
|
|
33
33
|
"viem": "^2"
|
|
34
34
|
},
|