create-fhevm-example 1.2.2 → 1.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/README.md +74 -148
- package/dist/scripts/add-mode.d.ts +8 -0
- package/dist/scripts/add-mode.d.ts.map +1 -0
- package/dist/{add-mode.js → scripts/add-mode.js} +81 -58
- package/dist/scripts/builders.d.ts +20 -0
- package/dist/scripts/builders.d.ts.map +1 -0
- package/dist/scripts/builders.js +160 -0
- package/dist/{config.d.ts → scripts/config.d.ts} +24 -3
- package/dist/scripts/config.d.ts.map +1 -0
- package/dist/scripts/config.js +465 -0
- package/dist/scripts/doctor.d.ts +3 -0
- package/dist/scripts/doctor.d.ts.map +1 -0
- package/dist/scripts/doctor.js +157 -0
- package/dist/scripts/generate-config.d.ts +9 -0
- package/dist/scripts/generate-config.d.ts.map +1 -0
- package/dist/scripts/generate-config.js +315 -0
- package/dist/scripts/generate-docs.d.ts +9 -0
- package/dist/scripts/generate-docs.d.ts.map +1 -0
- package/dist/scripts/generate-docs.js +189 -0
- package/dist/scripts/index.d.ts +12 -0
- package/dist/scripts/index.d.ts.map +1 -0
- package/dist/scripts/index.js +360 -0
- package/dist/scripts/maintenance.d.ts +12 -0
- package/dist/scripts/maintenance.d.ts.map +1 -0
- package/dist/scripts/maintenance.js +320 -0
- package/dist/{ui.d.ts → scripts/ui.d.ts} +0 -1
- package/dist/scripts/ui.d.ts.map +1 -0
- package/dist/scripts/ui.js +197 -0
- package/dist/scripts/utils.d.ts +79 -0
- package/dist/scripts/utils.d.ts.map +1 -0
- package/dist/scripts/utils.js +504 -0
- package/package.json +24 -12
- package/dist/add-mode.d.ts +0 -21
- package/dist/add-mode.d.ts.map +0 -1
- package/dist/add-mode.js.map +0 -1
- package/dist/builders.d.ts +0 -30
- package/dist/builders.d.ts.map +0 -1
- package/dist/builders.js +0 -195
- package/dist/builders.js.map +0 -1
- package/dist/commands.d.ts +0 -19
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js +0 -91
- package/dist/commands.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -403
- package/dist/config.js.map +0 -1
- package/dist/constants.d.ts +0 -16
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -40
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -20
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -337
- package/dist/index.js.map +0 -1
- package/dist/prompts.d.ts +0 -26
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js +0 -79
- package/dist/prompts.js.map +0 -1
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js +0 -155
- package/dist/ui.js.map +0 -1
- package/dist/utils.d.ts +0 -99
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -285
- package/dist/utils.js.map +0 -1
package/dist/utils.d.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility functions for creating FHEVM example projects
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Prompt result type (value or cancellation symbol)
|
|
6
|
-
*/
|
|
7
|
-
export type PromptResult<T> = T | symbol;
|
|
8
|
-
/**
|
|
9
|
-
* Example name type
|
|
10
|
-
*/
|
|
11
|
-
export type ExampleName = string;
|
|
12
|
-
/**
|
|
13
|
-
* Category name type
|
|
14
|
-
*/
|
|
15
|
-
export type CategoryName = string;
|
|
16
|
-
/**
|
|
17
|
-
* Project mode type
|
|
18
|
-
*/
|
|
19
|
-
export type ProjectMode = "single" | "category";
|
|
20
|
-
/**
|
|
21
|
-
* Simple folder icon for all categories
|
|
22
|
-
*/
|
|
23
|
-
export declare const CATEGORY_ICON = "\uD83D\uDCC1";
|
|
24
|
-
/**
|
|
25
|
-
* Display order for example categories in the interactive prompt
|
|
26
|
-
*/
|
|
27
|
-
export declare const CATEGORY_ORDER: string[];
|
|
28
|
-
/**
|
|
29
|
-
* Content for test/types.ts file
|
|
30
|
-
*/
|
|
31
|
-
export declare const TEST_TYPES_CONTENT = "import type { HardhatEthersSigner } from \"@nomicfoundation/hardhat-ethers/signers\";\n\n/**\n * Common signers interface used across test files\n */\nexport interface Signers {\n owner: HardhatEthersSigner;\n alice: HardhatEthersSigner;\n}\n";
|
|
32
|
-
/**
|
|
33
|
-
* Centralized error messages
|
|
34
|
-
*/
|
|
35
|
-
export declare const ERROR_MESSAGES: {
|
|
36
|
-
EXAMPLE_REQUIRED: string;
|
|
37
|
-
BOTH_SPECIFIED: string;
|
|
38
|
-
UNKNOWN_EXAMPLE: (name: string) => string;
|
|
39
|
-
UNKNOWN_CATEGORY: (name: string) => string;
|
|
40
|
-
DIR_EXISTS: (path: string) => string;
|
|
41
|
-
NOT_HARDHAT: string;
|
|
42
|
-
CONFIG_NOT_FOUND: string;
|
|
43
|
-
CONTRACT_NAME_FAILED: string;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Standardized logging functions
|
|
47
|
-
*/
|
|
48
|
-
export declare const log: {
|
|
49
|
-
success: (msg: string) => void;
|
|
50
|
-
error: (msg: string) => void;
|
|
51
|
-
info: (msg: string) => void;
|
|
52
|
-
dim: (msg: string) => void;
|
|
53
|
-
message: (msg: string) => void;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Validates that an example exists
|
|
57
|
-
*/
|
|
58
|
-
export declare function validateExample(name: string): void;
|
|
59
|
-
/**
|
|
60
|
-
* Validates that a category exists
|
|
61
|
-
*/
|
|
62
|
-
export declare function validateCategory(name: string): void;
|
|
63
|
-
/**
|
|
64
|
-
* Validates that a directory doesn't exist
|
|
65
|
-
*/
|
|
66
|
-
export declare function validateDirectoryNotExists(dirPath: string): void;
|
|
67
|
-
/**
|
|
68
|
-
* Get contract name from file path
|
|
69
|
-
*/
|
|
70
|
-
export declare function getContractName(contractPath: string): string | null;
|
|
71
|
-
/**
|
|
72
|
-
* Recursively copy directory
|
|
73
|
-
*/
|
|
74
|
-
export declare function copyDirectoryRecursive(src: string, dest: string): void;
|
|
75
|
-
/**
|
|
76
|
-
* Download file from GitHub repository
|
|
77
|
-
*/
|
|
78
|
-
export declare function downloadFileFromGitHub(filePath: string, outputPath: string): Promise<void>;
|
|
79
|
-
/**
|
|
80
|
-
* Clone template repository to temporary directory
|
|
81
|
-
*/
|
|
82
|
-
export declare function cloneTemplate(tempDir: string): Promise<string>;
|
|
83
|
-
/**
|
|
84
|
-
* Initialize git submodule for template
|
|
85
|
-
*/
|
|
86
|
-
export declare function initSubmodule(repoPath: string): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* Run a shell command
|
|
89
|
-
*/
|
|
90
|
-
export declare function runCommand(cmd: string, args: string[], cwd: string): Promise<string>;
|
|
91
|
-
/**
|
|
92
|
-
* Extract test results from npm test output
|
|
93
|
-
*/
|
|
94
|
-
export declare function extractTestResults(output: string): string | null;
|
|
95
|
-
/**
|
|
96
|
-
* Generate deploy script
|
|
97
|
-
*/
|
|
98
|
-
export declare function generateDeployScript(contractName: string): string;
|
|
99
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAMhD;;GAEG;AACH,eAAO,MAAM,aAAa,iBAAO,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,cAAc,UAS1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,yPAS9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;4BAGD,MAAM;6BACL,MAAM;uBACZ,MAAM;;;;CAI1B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,GAAG;mBACC,MAAM;iBACR,MAAM;gBACP,MAAM;eACP,MAAM;mBACF,MAAM;CACtB,CAAC;AAMF;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIhE;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAqBtE;AAMD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCpE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BnE;AAMD;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAchE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAqBjE"}
|
package/dist/utils.js
DELETED
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility functions for creating FHEVM example projects
|
|
3
|
-
*/
|
|
4
|
-
import * as fs from "fs";
|
|
5
|
-
import * as path from "path";
|
|
6
|
-
import { spawn } from "child_process";
|
|
7
|
-
import pc from "picocolors";
|
|
8
|
-
import { REPO_URL, REPO_BRANCH, TEMPLATE_SUBMODULE_PATH, EXAMPLES, CATEGORIES, } from "./config.js";
|
|
9
|
-
// =============================================================================
|
|
10
|
-
// Constants
|
|
11
|
-
// =============================================================================
|
|
12
|
-
/**
|
|
13
|
-
* Simple folder icon for all categories
|
|
14
|
-
*/
|
|
15
|
-
export const CATEGORY_ICON = "📁";
|
|
16
|
-
/**
|
|
17
|
-
* Display order for example categories in the interactive prompt
|
|
18
|
-
*/
|
|
19
|
-
export const CATEGORY_ORDER = [
|
|
20
|
-
"Basic",
|
|
21
|
-
"Basic - Encryption",
|
|
22
|
-
"Basic - Decryption",
|
|
23
|
-
"Basic - FHE Operations",
|
|
24
|
-
"Concepts",
|
|
25
|
-
"Gaming",
|
|
26
|
-
"Openzeppelin",
|
|
27
|
-
"Advanced",
|
|
28
|
-
];
|
|
29
|
-
/**
|
|
30
|
-
* Content for test/types.ts file
|
|
31
|
-
*/
|
|
32
|
-
export const TEST_TYPES_CONTENT = `import type { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Common signers interface used across test files
|
|
36
|
-
*/
|
|
37
|
-
export interface Signers {
|
|
38
|
-
owner: HardhatEthersSigner;
|
|
39
|
-
alice: HardhatEthersSigner;
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
/**
|
|
43
|
-
* Centralized error messages
|
|
44
|
-
*/
|
|
45
|
-
export const ERROR_MESSAGES = {
|
|
46
|
-
EXAMPLE_REQUIRED: "Error: Either --example or --category is required",
|
|
47
|
-
BOTH_SPECIFIED: "Error: Cannot use both --example and --category",
|
|
48
|
-
UNKNOWN_EXAMPLE: (name) => `Error: Unknown example "${name}"`,
|
|
49
|
-
UNKNOWN_CATEGORY: (name) => `Error: Unknown category "${name}"`,
|
|
50
|
-
DIR_EXISTS: (path) => `Error: Directory already exists: ${path}`,
|
|
51
|
-
NOT_HARDHAT: "This directory does not contain a valid Hardhat project.",
|
|
52
|
-
CONFIG_NOT_FOUND: "hardhat.config.ts or hardhat.config.js not found",
|
|
53
|
-
CONTRACT_NAME_FAILED: "Could not extract contract name",
|
|
54
|
-
};
|
|
55
|
-
// =============================================================================
|
|
56
|
-
// Logging Utility
|
|
57
|
-
// =============================================================================
|
|
58
|
-
/**
|
|
59
|
-
* Standardized logging functions
|
|
60
|
-
*/
|
|
61
|
-
export const log = {
|
|
62
|
-
success: (msg) => console.log(pc.green(msg)),
|
|
63
|
-
error: (msg) => console.error(pc.red(msg)),
|
|
64
|
-
info: (msg) => console.log(pc.cyan(msg)),
|
|
65
|
-
dim: (msg) => console.log(pc.dim(msg)),
|
|
66
|
-
message: (msg) => console.log(msg),
|
|
67
|
-
};
|
|
68
|
-
// =============================================================================
|
|
69
|
-
// Validation Functions
|
|
70
|
-
// =============================================================================
|
|
71
|
-
/**
|
|
72
|
-
* Validates that an example exists
|
|
73
|
-
*/
|
|
74
|
-
export function validateExample(name) {
|
|
75
|
-
if (!EXAMPLES[name]) {
|
|
76
|
-
throw new Error(ERROR_MESSAGES.UNKNOWN_EXAMPLE(name));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Validates that a category exists
|
|
81
|
-
*/
|
|
82
|
-
export function validateCategory(name) {
|
|
83
|
-
if (!CATEGORIES[name]) {
|
|
84
|
-
throw new Error(ERROR_MESSAGES.UNKNOWN_CATEGORY(name));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Validates that a directory doesn't exist
|
|
89
|
-
*/
|
|
90
|
-
export function validateDirectoryNotExists(dirPath) {
|
|
91
|
-
if (fs.existsSync(dirPath)) {
|
|
92
|
-
throw new Error(ERROR_MESSAGES.DIR_EXISTS(dirPath));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// =============================================================================
|
|
96
|
-
// File System Utilities
|
|
97
|
-
// =============================================================================
|
|
98
|
-
/**
|
|
99
|
-
* Get contract name from file path
|
|
100
|
-
*/
|
|
101
|
-
export function getContractName(contractPath) {
|
|
102
|
-
const match = contractPath.match(/([^/]+)\.sol$/);
|
|
103
|
-
return match ? match[1] : null;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Recursively copy directory
|
|
107
|
-
*/
|
|
108
|
-
export function copyDirectoryRecursive(src, dest) {
|
|
109
|
-
if (!fs.existsSync(dest)) {
|
|
110
|
-
fs.mkdirSync(dest, { recursive: true });
|
|
111
|
-
}
|
|
112
|
-
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
113
|
-
for (const entry of entries) {
|
|
114
|
-
const srcPath = path.join(src, entry.name);
|
|
115
|
-
const destPath = path.join(dest, entry.name);
|
|
116
|
-
if (entry.isDirectory()) {
|
|
117
|
-
// Skip node_modules and .git
|
|
118
|
-
if (entry.name === "node_modules" || entry.name === ".git") {
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
copyDirectoryRecursive(srcPath, destPath);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
fs.copyFileSync(srcPath, destPath);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
// =============================================================================
|
|
129
|
-
// GitHub Repository Utilities
|
|
130
|
-
// =============================================================================
|
|
131
|
-
/**
|
|
132
|
-
* Download file from GitHub repository
|
|
133
|
-
*/
|
|
134
|
-
export async function downloadFileFromGitHub(filePath, outputPath) {
|
|
135
|
-
// Extract owner and repo from REPO_URL
|
|
136
|
-
const urlParts = REPO_URL.replace("https://github.com/", "").split("/");
|
|
137
|
-
const owner = urlParts[0];
|
|
138
|
-
const repo = urlParts[1];
|
|
139
|
-
const url = `https://raw.githubusercontent.com/${owner}/${repo}/${REPO_BRANCH}/${filePath}`;
|
|
140
|
-
const response = await fetch(url);
|
|
141
|
-
if (!response.ok) {
|
|
142
|
-
throw new Error(`Failed to download ${filePath}: ${response.statusText}`);
|
|
143
|
-
}
|
|
144
|
-
const content = await response.text();
|
|
145
|
-
// Ensure directory exists
|
|
146
|
-
const dir = path.dirname(outputPath);
|
|
147
|
-
if (!fs.existsSync(dir)) {
|
|
148
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
149
|
-
}
|
|
150
|
-
fs.writeFileSync(outputPath, content);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Clone template repository to temporary directory
|
|
154
|
-
*/
|
|
155
|
-
export async function cloneTemplate(tempDir) {
|
|
156
|
-
const templatePath = path.join(tempDir, "template");
|
|
157
|
-
return new Promise((resolve, reject) => {
|
|
158
|
-
const cloneUrl = `${REPO_URL}.git`;
|
|
159
|
-
const args = [
|
|
160
|
-
"clone",
|
|
161
|
-
"--depth=1",
|
|
162
|
-
"--branch",
|
|
163
|
-
REPO_BRANCH,
|
|
164
|
-
"--single-branch",
|
|
165
|
-
cloneUrl,
|
|
166
|
-
templatePath,
|
|
167
|
-
];
|
|
168
|
-
const child = spawn("git", args, {
|
|
169
|
-
stdio: "pipe",
|
|
170
|
-
});
|
|
171
|
-
let stderr = "";
|
|
172
|
-
child.stderr?.on("data", (data) => {
|
|
173
|
-
stderr += data.toString();
|
|
174
|
-
});
|
|
175
|
-
child.on("close", (code) => {
|
|
176
|
-
if (code === 0) {
|
|
177
|
-
resolve(templatePath);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
reject(new Error(`Git clone failed: ${stderr}`));
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
child.on("error", reject);
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Initialize git submodule for template
|
|
188
|
-
*/
|
|
189
|
-
export async function initSubmodule(repoPath) {
|
|
190
|
-
return new Promise((resolve, reject) => {
|
|
191
|
-
const child = spawn("git", ["submodule", "update", "--init", "--recursive", TEMPLATE_SUBMODULE_PATH], {
|
|
192
|
-
cwd: repoPath,
|
|
193
|
-
stdio: "pipe",
|
|
194
|
-
});
|
|
195
|
-
let stderr = "";
|
|
196
|
-
child.stderr?.on("data", (data) => {
|
|
197
|
-
stderr += data.toString();
|
|
198
|
-
});
|
|
199
|
-
child.on("close", (code) => {
|
|
200
|
-
if (code === 0) {
|
|
201
|
-
resolve();
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
reject(new Error(`Submodule init failed: ${stderr}`));
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
child.on("error", reject);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
// =============================================================================
|
|
211
|
-
// Command Execution Utilities
|
|
212
|
-
// =============================================================================
|
|
213
|
-
/**
|
|
214
|
-
* Run a shell command
|
|
215
|
-
*/
|
|
216
|
-
export function runCommand(cmd, args, cwd) {
|
|
217
|
-
return new Promise((resolve, reject) => {
|
|
218
|
-
const child = spawn(cmd, args, {
|
|
219
|
-
cwd,
|
|
220
|
-
shell: true,
|
|
221
|
-
stdio: "pipe",
|
|
222
|
-
});
|
|
223
|
-
let stdout = "";
|
|
224
|
-
let stderr = "";
|
|
225
|
-
child.stdout?.on("data", (data) => {
|
|
226
|
-
stdout += data.toString();
|
|
227
|
-
});
|
|
228
|
-
child.stderr?.on("data", (data) => {
|
|
229
|
-
stderr += data.toString();
|
|
230
|
-
});
|
|
231
|
-
child.on("close", (code) => {
|
|
232
|
-
if (code === 0) {
|
|
233
|
-
resolve(stdout);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
reject(new Error(stderr || stdout || `Command failed with code ${code}`));
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
|
-
child.on("error", reject);
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Extract test results from npm test output
|
|
244
|
-
*/
|
|
245
|
-
export function extractTestResults(output) {
|
|
246
|
-
const passingMatch = output.match(/(\d+)\s+passing/);
|
|
247
|
-
const failingMatch = output.match(/(\d+)\s+failing/);
|
|
248
|
-
if (passingMatch) {
|
|
249
|
-
const passing = passingMatch[1];
|
|
250
|
-
const failing = failingMatch ? failingMatch[1] : "0";
|
|
251
|
-
if (failing === "0") {
|
|
252
|
-
return `${passing} tests passing ✓`;
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
return `${passing} passing, ${failing} failing`;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
return null;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Generate deploy script
|
|
262
|
-
*/
|
|
263
|
-
export function generateDeployScript(contractName) {
|
|
264
|
-
return `import { DeployFunction } from "hardhat-deploy/types";
|
|
265
|
-
import { HardhatRuntimeEnvironment } from "hardhat/types";
|
|
266
|
-
|
|
267
|
-
const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
|
268
|
-
const { deployer } = await hre.getNamedAccounts();
|
|
269
|
-
const { deploy } = hre.deployments;
|
|
270
|
-
|
|
271
|
-
const deployed = await deploy("${contractName}", {
|
|
272
|
-
from: deployer,
|
|
273
|
-
args: [],
|
|
274
|
-
log: true,
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
console.log(\`${contractName} contract deployed at: \${deployed.address}\`);
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
export default func;
|
|
281
|
-
func.id = "deploy_${contractName.toLowerCase()}";
|
|
282
|
-
func.tags = ["${contractName}"];
|
|
283
|
-
`;
|
|
284
|
-
}
|
|
285
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|