create-fhevm-example 1.0.4 → 1.0.7
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 +85 -249
- package/dist/config.d.ts +5 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +221 -214
- package/dist/config.js.map +1 -1
- package/dist/index.js +4 -24
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -2,317 +2,153 @@
|
|
|
2
2
|
|
|
3
3
|
Create FHEVM example projects with a single command.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
### Interactive Mode
|
|
5
|
+
## Quick Start
|
|
8
6
|
|
|
9
7
|
```bash
|
|
10
8
|
npx create-fhevm-example
|
|
11
9
|
```
|
|
12
10
|
|
|
13
|
-
This
|
|
14
|
-
|
|
15
|
-
1. Choosing between a single example or category project
|
|
16
|
-
2. **For single examples**: First selecting a category, then choosing an example from that category
|
|
17
|
-
3. **For category projects**: Selecting the category directly
|
|
18
|
-
4. Setting the project name and output directory
|
|
19
|
-
5. Optionally installing dependencies and running tests
|
|
20
|
-
|
|
21
|
-
### Direct Mode
|
|
11
|
+
This launches an interactive CLI that guides you through creating a project.
|
|
22
12
|
|
|
23
|
-
|
|
13
|
+
## Direct Mode
|
|
24
14
|
|
|
25
15
|
```bash
|
|
16
|
+
# Create single example
|
|
26
17
|
npx create-fhevm-example --example fhe-counter
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Create a category project:
|
|
30
18
|
|
|
31
|
-
|
|
19
|
+
# Create category project
|
|
32
20
|
npx create-fhevm-example --category basic
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
With custom output directory:
|
|
36
21
|
|
|
37
|
-
|
|
38
|
-
npx create-fhevm-example --example fhe-counter --output ./my-project
|
|
22
|
+
# With options
|
|
23
|
+
npx create-fhevm-example --example fhe-counter --output ./my-project --install
|
|
39
24
|
```
|
|
40
25
|
|
|
41
|
-
|
|
26
|
+
## CLI Options
|
|
42
27
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
28
|
+
| Option | Description |
|
|
29
|
+
|--------|-------------|
|
|
30
|
+
| `--example <name>` | Create a single example project |
|
|
31
|
+
| `--category <name>` | Create a category project |
|
|
32
|
+
| `--output <dir>` | Output directory |
|
|
33
|
+
| `--install` | Auto-install dependencies |
|
|
34
|
+
| `--test` | Auto-run tests |
|
|
35
|
+
| `--help` | Show help |
|
|
46
36
|
|
|
47
37
|
## Available Examples
|
|
48
38
|
|
|
49
|
-
|
|
50
|
-
- `encrypt-single-value` - FHE encryption mechanism
|
|
51
|
-
- `encrypt-multiple-values` - Multiple value encryption
|
|
52
|
-
- `user-decrypt-single-value` - User decryption mechanism
|
|
53
|
-
- `user-decrypt-multiple-values` - Multiple value decryption
|
|
54
|
-
- `public-decrypt-single-value` - Public decryption
|
|
55
|
-
- `public-decrypt-multiple-values` - Multiple public decryption
|
|
56
|
-
- `fhe-add` - Addition operations on encrypted values
|
|
57
|
-
- `fhe-if-then-else` - Conditional operations with FHE
|
|
58
|
-
- `fhe-arithmetic` - All arithmetic operations
|
|
59
|
-
- `fhe-comparison` - All comparison operations
|
|
60
|
-
- `fhe-access-control` - Access control patterns
|
|
61
|
-
- `fhe-input-proof` - Input proof validation
|
|
62
|
-
- `fhe-handles` - FHE handle lifecycle
|
|
63
|
-
- `fhe-anti-patterns` - Common mistakes and solutions
|
|
64
|
-
- `erc7984` - Confidential token standard
|
|
65
|
-
- `erc7984-erc20-wrapper` - ERC20 to ERC7984 wrapper
|
|
66
|
-
- `swap-erc7984-to-erc20` - Token swap example
|
|
67
|
-
- `swap-erc7984-to-erc7984` - Confidential token swap
|
|
68
|
-
- `vesting-wallet` - Token vesting example
|
|
69
|
-
- `blind-auction` - Encrypted blind auction
|
|
70
|
-
- `hidden-voting` - Encrypted voting system
|
|
39
|
+
**Basic**: `fhe-counter`, `encrypt-single-value`, `encrypt-multiple-values`, `user-decrypt-single-value`, `user-decrypt-multiple-values`, `public-decrypt-single-value`, `public-decrypt-multiple-values`
|
|
71
40
|
|
|
72
|
-
|
|
41
|
+
**FHE Operations**: `fhe-add`, `fhe-if-then-else`, `fhe-arithmetic`, `fhe-comparison`
|
|
73
42
|
|
|
74
|
-
- `
|
|
75
|
-
- `concepts` - Critical Concepts (4 contracts)
|
|
76
|
-
- `operations` - FHE Operations (4 contracts)
|
|
77
|
-
- `openzeppelin` - OpenZeppelin Confidential Contracts (5 contracts)
|
|
78
|
-
- `advanced` - Advanced Examples (2 contracts)
|
|
43
|
+
**Concepts**: `fhe-access-control`, `fhe-input-proof`, `fhe-handles`, `fhe-anti-patterns`
|
|
79
44
|
|
|
80
|
-
|
|
45
|
+
**OpenZeppelin**: `erc7984`, `erc7984-erc20-wrapper`, `swap-erc7984-to-erc20`, `swap-erc7984-to-erc7984`, `vesting-wallet`
|
|
81
46
|
|
|
82
|
-
-
|
|
83
|
-
- `--category <name>` - Create a category project
|
|
84
|
-
- `--output <dir>` - Output directory (default: `./<project-name>`)
|
|
85
|
-
- `--install` - Auto-install dependencies
|
|
86
|
-
- `--test` - Auto-run tests (requires `--install`)
|
|
87
|
-
- `--help`, `-h` - Show help message
|
|
47
|
+
**Advanced**: `blind-auction`, `hidden-voting`
|
|
88
48
|
|
|
89
|
-
##
|
|
49
|
+
## Available Categories
|
|
90
50
|
|
|
91
|
-
|
|
51
|
+
| Category | Description |
|
|
52
|
+
|----------|-------------|
|
|
53
|
+
| `basic` | Encryption, decryption, basic operations (9 contracts) |
|
|
54
|
+
| `concepts` | Access control, proofs, handles (4 contracts) |
|
|
55
|
+
| `operations` | Arithmetic, comparison operations (4 contracts) |
|
|
56
|
+
| `openzeppelin` | ERC7984, wrappers, swaps (5 contracts) |
|
|
57
|
+
| `advanced` | Blind auction, voting (2 contracts) |
|
|
58
|
+
|
|
59
|
+
## What Gets Created
|
|
92
60
|
|
|
93
61
|
- ✅ Hardhat configuration for FHEVM
|
|
94
|
-
- ✅ Smart contracts
|
|
95
|
-
- ✅ Comprehensive test files
|
|
62
|
+
- ✅ Smart contracts and test files
|
|
96
63
|
- ✅ Deployment scripts
|
|
97
|
-
- ✅
|
|
98
|
-
- ✅ All necessary dependencies configured
|
|
64
|
+
- ✅ All dependencies configured
|
|
99
65
|
|
|
100
66
|
## Requirements
|
|
101
67
|
|
|
102
68
|
- Node.js >= 20
|
|
103
|
-
- Git
|
|
104
|
-
|
|
105
|
-
## Configuration
|
|
106
|
-
|
|
107
|
-
### Repository Settings
|
|
108
|
-
|
|
109
|
-
The CLI is configured to use a specific GitHub repository for templates and examples. You can customize this in [`src/config.ts`](./src/config.ts):
|
|
69
|
+
- Git
|
|
110
70
|
|
|
111
|
-
|
|
112
|
-
export const REPO_URL = "https://github.com/NecipAkgz/fhevm-example-factory";
|
|
113
|
-
export const REPO_BRANCH = "main";
|
|
114
|
-
export const TEMPLATE_SUBMODULE_PATH = "fhevm-hardhat-template";
|
|
115
|
-
```
|
|
71
|
+
---
|
|
116
72
|
|
|
117
|
-
|
|
73
|
+
## Developer Only
|
|
118
74
|
|
|
119
|
-
|
|
120
|
-
2. Ensure the repository has the same structure (contracts, test, fhevm-hardhat-template submodule)
|
|
121
|
-
3. Rebuild the package: `npm run build`
|
|
75
|
+
>This section is for contributors and maintainers of the package.
|
|
122
76
|
|
|
123
|
-
|
|
77
|
+
### Configuration
|
|
124
78
|
|
|
125
|
-
|
|
79
|
+
The CLI uses a configuration file that defines all available examples and categories. This file is **auto-generated** from the main repository.
|
|
126
80
|
|
|
127
|
-
|
|
81
|
+
**Source of Truth**: [`scripts/shared/config.ts`](https://github.com/NecipAkgz/fhevm-example-factory/blob/main/scripts/shared/config.ts)
|
|
82
|
+
**Generated File**: `src/config.ts` (do not edit manually)
|
|
128
83
|
|
|
129
|
-
|
|
84
|
+
To customize the repository URL or branch:
|
|
130
85
|
|
|
131
86
|
```typescript
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
contract: "contracts/path/to/MyContract.sol",
|
|
136
|
-
test: "test/path/to/MyContract.ts",
|
|
137
|
-
description: "Description of what this example demonstrates",
|
|
138
|
-
category: "Basic", // or "Concepts", "Operations", "OpenZeppelin", "Advanced"
|
|
139
|
-
title: "My New Example",
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### 2. Add to Category (Optional)
|
|
145
|
-
|
|
146
|
-
If you want the example to appear in a category project, add it to the relevant category in `CATEGORIES`:
|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
export const CATEGORIES: Record<string, CategoryConfig> = {
|
|
150
|
-
basic: {
|
|
151
|
-
name: "Basic FHEVM Examples",
|
|
152
|
-
description: "...",
|
|
153
|
-
contracts: [
|
|
154
|
-
// ... existing contracts
|
|
155
|
-
{
|
|
156
|
-
sol: "contracts/path/to/MyContract.sol",
|
|
157
|
-
test: "test/path/to/MyContract.ts",
|
|
158
|
-
},
|
|
159
|
-
],
|
|
160
|
-
},
|
|
161
|
-
};
|
|
87
|
+
// In src/config.ts (after sync)
|
|
88
|
+
export const REPO_URL = "https://github.com/YourUsername/your-repo";
|
|
89
|
+
export const REPO_BRANCH = "main";
|
|
162
90
|
```
|
|
163
91
|
|
|
164
|
-
###
|
|
165
|
-
|
|
166
|
-
Make sure the contract and test files exist in your repository at the specified paths:
|
|
92
|
+
### Adding New Examples
|
|
167
93
|
|
|
168
|
-
|
|
169
|
-
- `test/path/to/MyContract.ts`
|
|
170
|
-
|
|
171
|
-
### 4. Rebuild and Test
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
npm run build
|
|
175
|
-
create-fhevm-example --example my-new-example --output /tmp/test-my-example
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Development
|
|
94
|
+
To add a new example to the CLI:
|
|
179
95
|
|
|
180
|
-
|
|
96
|
+
1. **Create contract with `@notice` tag** in the main repository:
|
|
97
|
+
```solidity
|
|
98
|
+
/**
|
|
99
|
+
* @notice Your example description - auto-discovered!
|
|
100
|
+
*/
|
|
101
|
+
contract YourExample { }
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
2. **Generate config** (auto-discovery):
|
|
105
|
+
```bash
|
|
106
|
+
npm run generate:config # Scans contracts, extracts @notice
|
|
107
|
+
npm run sync:config # Syncs to this package
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
3. **Publish**:
|
|
111
|
+
```bash
|
|
112
|
+
npm version patch # Increments version
|
|
113
|
+
npm publish # Auto-runs: sync:config → build → publish
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The `prepublishOnly` hook automatically:
|
|
117
|
+
- Syncs config from `scripts/shared/config.ts` to `src/config.ts`
|
|
118
|
+
- Builds TypeScript to `dist/`
|
|
119
|
+
- Publishes to NPM
|
|
120
|
+
|
|
121
|
+
### Local Development
|
|
181
122
|
|
|
182
123
|
```bash
|
|
183
|
-
# Clone
|
|
124
|
+
# Clone and setup
|
|
184
125
|
git clone https://github.com/NecipAkgz/fhevm-example-factory.git
|
|
185
126
|
cd fhevm-example-factory/packages/create-fhevm-example
|
|
186
|
-
|
|
187
|
-
# Install dependencies
|
|
188
127
|
npm install
|
|
189
128
|
|
|
190
|
-
# Build
|
|
129
|
+
# Build
|
|
191
130
|
npm run build
|
|
192
131
|
|
|
193
|
-
#
|
|
132
|
+
# Test locally
|
|
194
133
|
npm link
|
|
195
|
-
|
|
196
|
-
# Now you can use it globally
|
|
197
134
|
create-fhevm-example --help
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Making Changes
|
|
201
|
-
|
|
202
|
-
1. **Edit source files** in `src/`
|
|
203
|
-
2. **Rebuild**: `npm run build`
|
|
204
|
-
3. **Test locally**: `create-fhevm-example --example fhe-counter --output /tmp/test`
|
|
205
|
-
|
|
206
|
-
### File Structure
|
|
207
135
|
|
|
136
|
+
# Unlink when done
|
|
137
|
+
npm unlink -g create-fhevm-example
|
|
208
138
|
```
|
|
209
|
-
src/
|
|
210
|
-
├── index.ts # Main CLI entry point (interactive + direct modes)
|
|
211
|
-
├── config.ts # Examples and categories configuration
|
|
212
|
-
└── utils.ts # Helper functions (GitHub download, file ops, README generation)
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## Publishing to NPM
|
|
216
|
-
|
|
217
|
-
### Pre-publish Checklist
|
|
218
|
-
|
|
219
|
-
- [ ] Update version in `package.json`
|
|
220
|
-
- [ ] Test locally with `npm link`
|
|
221
|
-
- [ ] Verify all examples work
|
|
222
|
-
- [ ] Update README if needed
|
|
223
|
-
- [ ] Commit all changes
|
|
224
|
-
|
|
225
|
-
### Publish Steps
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
# Dry run to see what will be published
|
|
229
|
-
npm publish --dry-run
|
|
230
|
-
|
|
231
|
-
# Check package contents
|
|
232
|
-
npm pack
|
|
233
|
-
tar -xvzf create-fhevm-example-*.tgz
|
|
234
|
-
rm -rf package create-fhevm-example-*.tgz
|
|
235
|
-
|
|
236
|
-
# Publish to NPM
|
|
237
|
-
npm publish
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
### Post-publish Verification
|
|
241
|
-
|
|
242
|
-
```bash
|
|
243
|
-
# Test from NPM in a clean directory
|
|
244
|
-
cd /tmp
|
|
245
|
-
npx create-fhevm-example@latest --example fhe-counter
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
## Troubleshooting
|
|
249
|
-
|
|
250
|
-
### "Repository not found" Error
|
|
251
|
-
|
|
252
|
-
**Problem**: Git clone fails with repository not found.
|
|
253
|
-
|
|
254
|
-
**Solution**: Check `REPO_URL` in `src/config.ts`. Make sure:
|
|
255
|
-
|
|
256
|
-
- The repository exists and is public
|
|
257
|
-
- The URL is correct (without trailing slash)
|
|
258
|
-
- You have internet connection
|
|
259
|
-
|
|
260
|
-
### "Failed to download" Error
|
|
261
|
-
|
|
262
|
-
**Problem**: File download from GitHub fails.
|
|
263
|
-
|
|
264
|
-
**Solution**:
|
|
265
|
-
|
|
266
|
-
- Verify the file paths in `config.ts` match actual files in the repository
|
|
267
|
-
- Check that `REPO_BRANCH` is correct (usually "main" or "master")
|
|
268
|
-
- Ensure the repository is public or you have access
|
|
269
|
-
|
|
270
|
-
### Build Errors
|
|
271
|
-
|
|
272
|
-
**Problem**: TypeScript compilation fails.
|
|
273
|
-
|
|
274
|
-
**Solution**:
|
|
275
|
-
|
|
276
|
-
```bash
|
|
277
|
-
# Clean and rebuild
|
|
278
|
-
rm -rf dist
|
|
279
|
-
npm run build
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### Examples Not Showing Up
|
|
283
|
-
|
|
284
|
-
**Problem**: New example doesn't appear in the CLI.
|
|
285
|
-
|
|
286
|
-
**Solution**:
|
|
287
|
-
|
|
288
|
-
- Make sure you added it to `EXAMPLES` in `config.ts`
|
|
289
|
-
- Rebuild: `npm run build`
|
|
290
|
-
- If using `npm link`, unlink and relink:
|
|
291
|
-
```bash
|
|
292
|
-
npm unlink -g create-fhevm-example
|
|
293
|
-
npm link
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
## Maintenance
|
|
297
|
-
|
|
298
|
-
### Updating Template Repository
|
|
299
|
-
|
|
300
|
-
When the `fhevm-hardhat-template` submodule is updated:
|
|
301
|
-
|
|
302
|
-
1. No changes needed in this package - it clones fresh each time
|
|
303
|
-
2. Users will automatically get the latest template
|
|
304
139
|
|
|
305
|
-
###
|
|
140
|
+
### Scripts
|
|
306
141
|
|
|
307
|
-
|
|
142
|
+
- `npm run build` - Compile TypeScript
|
|
143
|
+
- `npm run dev` - Watch mode
|
|
144
|
+
- `npm run sync:config` - Sync config from main repo
|
|
145
|
+
- `npm run prepublishOnly` - Auto-runs sync + build before publish
|
|
308
146
|
|
|
309
|
-
|
|
310
|
-
2. Increment version in `package.json`
|
|
311
|
-
3. Rebuild and publish: `npm run build && npm publish`
|
|
147
|
+
---
|
|
312
148
|
|
|
313
149
|
## Learn More
|
|
314
150
|
|
|
315
|
-
- [FHEVM Documentation](https://docs.zama.
|
|
151
|
+
- [FHEVM Documentation](https://docs.zama.org/protocol)
|
|
316
152
|
- [Example Repository](https://github.com/NecipAkgz/fhevm-example-factory)
|
|
317
153
|
- [Zama](https://www.zama.ai/)
|
|
318
154
|
|
package/dist/config.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY ⚠️
|
|
3
3
|
*
|
|
4
|
-
* This
|
|
4
|
+
* This file is auto-generated from scripts/shared/config.ts
|
|
5
|
+
* Run 'npm run sync:config' to update it.
|
|
6
|
+
*
|
|
7
|
+
* Source: scripts/shared/config.ts
|
|
5
8
|
*/
|
|
6
9
|
export interface ExampleConfig {
|
|
7
10
|
/** Path to the Solidity contract file */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAMD,eAAO,MAAM,QAAQ,uDAAuD,CAAC;AAC7E,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAMhE,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA2JlD,CAAC;AAMF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmIrD,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY ⚠️
|
|
3
3
|
*
|
|
4
|
-
* This
|
|
4
|
+
* This file is auto-generated from scripts/shared/config.ts
|
|
5
|
+
* Run 'npm run sync:config' to update it.
|
|
6
|
+
*
|
|
7
|
+
* Source: scripts/shared/config.ts
|
|
5
8
|
*/
|
|
6
9
|
// =============================================================================
|
|
7
10
|
// GitHub Repository Configuration
|
|
@@ -13,290 +16,294 @@ export const TEMPLATE_SUBMODULE_PATH = "fhevm-hardhat-template";
|
|
|
13
16
|
// Example Configurations
|
|
14
17
|
// =============================================================================
|
|
15
18
|
export const EXAMPLES = {
|
|
16
|
-
"
|
|
17
|
-
contract: "contracts/
|
|
18
|
-
test: "test/
|
|
19
|
-
description: "
|
|
20
|
-
category: "
|
|
21
|
-
title: "
|
|
19
|
+
"blind-auction": {
|
|
20
|
+
"contract": "contracts/advanced/BlindAuction.sol",
|
|
21
|
+
"test": "test/advanced/BlindAuction.ts",
|
|
22
|
+
"description": "Blind Auction with encrypted bids - only the winning price is revealed",
|
|
23
|
+
"category": "Advanced",
|
|
24
|
+
"title": "Blind Auction"
|
|
22
25
|
},
|
|
23
|
-
"
|
|
24
|
-
contract: "contracts/
|
|
25
|
-
test: "test/
|
|
26
|
-
description: "
|
|
27
|
-
category: "
|
|
28
|
-
title: "
|
|
26
|
+
"hidden-voting": {
|
|
27
|
+
"contract": "contracts/advanced/HiddenVoting.sol",
|
|
28
|
+
"test": "test/advanced/HiddenVoting.ts",
|
|
29
|
+
"description": "Hidden Voting with encrypted ballots and homomorphic tallying",
|
|
30
|
+
"category": "Advanced",
|
|
31
|
+
"title": "Hidden Voting"
|
|
29
32
|
},
|
|
30
|
-
"
|
|
31
|
-
contract: "contracts/basic/
|
|
32
|
-
test: "test/basic/
|
|
33
|
-
description: "
|
|
34
|
-
category: "Basic
|
|
35
|
-
title: "
|
|
33
|
+
"fhe-counter": {
|
|
34
|
+
"contract": "contracts/basic/FHECounter.sol",
|
|
35
|
+
"test": "test/basic/FHECounter.ts",
|
|
36
|
+
"description": "Confidential counter implementation using FHEVM, compared with a standard counter to highlight encryption benefits.",
|
|
37
|
+
"category": "Basic",
|
|
38
|
+
"title": "FHE Counter"
|
|
36
39
|
},
|
|
37
|
-
"
|
|
38
|
-
contract: "contracts/basic/
|
|
39
|
-
test: "test/basic/
|
|
40
|
-
description: "
|
|
41
|
-
category: "Basic - Decryption",
|
|
42
|
-
title: "
|
|
40
|
+
"public-decrypt-multiple-values": {
|
|
41
|
+
"contract": "contracts/basic/decryption/PublicDecryptMultipleValues.sol",
|
|
42
|
+
"test": "test/basic/decryption/PublicDecryptMultipleValues.ts",
|
|
43
|
+
"description": "Implements a simple 8-sided Die Roll game demonstrating public, permissionless decryption",
|
|
44
|
+
"category": "Basic - Decryption",
|
|
45
|
+
"title": "Public Decrypt Multiple Values"
|
|
46
|
+
},
|
|
47
|
+
"public-decrypt-single-value": {
|
|
48
|
+
"contract": "contracts/basic/decryption/PublicDecryptSingleValue.sol",
|
|
49
|
+
"test": "test/basic/decryption/PublicDecryptSingleValue.ts",
|
|
50
|
+
"description": "Implements a simple Heads or Tails game demonstrating public, permissionless decryption",
|
|
51
|
+
"category": "Basic - Decryption",
|
|
52
|
+
"title": "Public Decrypt Single Value"
|
|
43
53
|
},
|
|
44
54
|
"user-decrypt-multiple-values": {
|
|
45
|
-
contract: "contracts/basic/
|
|
46
|
-
test: "test/basic/
|
|
47
|
-
description: "
|
|
48
|
-
category: "Basic - Decryption",
|
|
49
|
-
title: "User Decrypt Multiple Values"
|
|
55
|
+
"contract": "contracts/basic/decryption/UserDecryptMultipleValues.sol",
|
|
56
|
+
"test": "test/basic/decryption/UserDecryptMultipleValues.ts",
|
|
57
|
+
"description": "Demonstrates user decryption of multiple encrypted values",
|
|
58
|
+
"category": "Basic - Decryption",
|
|
59
|
+
"title": "User Decrypt Multiple Values"
|
|
50
60
|
},
|
|
51
|
-
"
|
|
52
|
-
contract: "contracts/basic/
|
|
53
|
-
test: "test/basic/
|
|
54
|
-
description: "
|
|
55
|
-
category: "Basic - Decryption",
|
|
56
|
-
title: "
|
|
61
|
+
"user-decrypt-single-value": {
|
|
62
|
+
"contract": "contracts/basic/decryption/UserDecryptSingleValue.sol",
|
|
63
|
+
"test": "test/basic/decryption/UserDecryptSingleValue.ts",
|
|
64
|
+
"description": "Demonstrates the FHE decryption mechanism and highlights common pitfalls",
|
|
65
|
+
"category": "Basic - Decryption",
|
|
66
|
+
"title": "User Decrypt Single Value"
|
|
57
67
|
},
|
|
58
|
-
"
|
|
59
|
-
contract: "contracts/basic/
|
|
60
|
-
test: "test/basic/
|
|
61
|
-
description: "
|
|
62
|
-
category: "Basic -
|
|
63
|
-
title: "
|
|
68
|
+
"encrypt-multiple-values": {
|
|
69
|
+
"contract": "contracts/basic/encryption/EncryptMultipleValues.sol",
|
|
70
|
+
"test": "test/basic/encryption/EncryptMultipleValues.ts",
|
|
71
|
+
"description": "Encrypting and handling multiple values in a single transaction efficiently.",
|
|
72
|
+
"category": "Basic - Encryption",
|
|
73
|
+
"title": "Encrypt Multiple Values"
|
|
64
74
|
},
|
|
65
|
-
"
|
|
66
|
-
contract: "contracts/basic/
|
|
67
|
-
test: "test/basic/
|
|
68
|
-
description: "
|
|
69
|
-
category: "
|
|
70
|
-
title: "
|
|
75
|
+
"encrypt-single-value": {
|
|
76
|
+
"contract": "contracts/basic/encryption/EncryptSingleValue.sol",
|
|
77
|
+
"test": "test/basic/encryption/EncryptSingleValue.ts",
|
|
78
|
+
"description": "FHE encryption mechanism with single values, including common pitfalls and best practices for developers.",
|
|
79
|
+
"category": "Basic - Encryption",
|
|
80
|
+
"title": "Encrypt Single Value"
|
|
71
81
|
},
|
|
72
|
-
"fhe-
|
|
73
|
-
contract: "contracts/basic/fhe-operations/
|
|
74
|
-
test: "test/basic/fhe-operations/
|
|
75
|
-
description: "
|
|
76
|
-
category: "FHE Operations",
|
|
77
|
-
title: "FHE
|
|
82
|
+
"fhe-add": {
|
|
83
|
+
"contract": "contracts/basic/fhe-operations/FHEAdd.sol",
|
|
84
|
+
"test": "test/basic/fhe-operations/FHEAdd.ts",
|
|
85
|
+
"description": "Simple example: adding two encrypted values (a + b)",
|
|
86
|
+
"category": "Basic - FHE Operations",
|
|
87
|
+
"title": "FHE Add"
|
|
78
88
|
},
|
|
79
89
|
"fhe-arithmetic": {
|
|
80
|
-
contract: "contracts/basic/fhe-operations/FHEArithmetic.sol",
|
|
81
|
-
test: "test/basic/fhe-operations/FHEArithmetic.ts",
|
|
82
|
-
description: "
|
|
83
|
-
category: "FHE Operations",
|
|
84
|
-
title: "FHE Arithmetic
|
|
90
|
+
"contract": "contracts/basic/fhe-operations/FHEArithmetic.sol",
|
|
91
|
+
"test": "test/basic/fhe-operations/FHEArithmetic.ts",
|
|
92
|
+
"description": "Demonstrates all FHE arithmetic operations on encrypted integers",
|
|
93
|
+
"category": "Basic - FHE Operations",
|
|
94
|
+
"title": "FHE Arithmetic"
|
|
85
95
|
},
|
|
86
96
|
"fhe-comparison": {
|
|
87
|
-
contract: "contracts/basic/fhe-operations/FHEComparison.sol",
|
|
88
|
-
test: "test/basic/fhe-operations/FHEComparison.ts",
|
|
89
|
-
description: "Demonstrates all FHE comparison operations
|
|
90
|
-
category: "FHE Operations",
|
|
91
|
-
title: "FHE Comparison
|
|
97
|
+
"contract": "contracts/basic/fhe-operations/FHEComparison.sol",
|
|
98
|
+
"test": "test/basic/fhe-operations/FHEComparison.ts",
|
|
99
|
+
"description": "Demonstrates all FHE comparison operations on encrypted integers",
|
|
100
|
+
"category": "Basic - FHE Operations",
|
|
101
|
+
"title": "FHE Comparison"
|
|
102
|
+
},
|
|
103
|
+
"fhe-if-then-else": {
|
|
104
|
+
"contract": "contracts/basic/fhe-operations/FHEIfThenElse.sol",
|
|
105
|
+
"test": "test/basic/fhe-operations/FHEIfThenElse.ts",
|
|
106
|
+
"description": "Demonstrates conditional logic: max(a, b) using encrypted comparison",
|
|
107
|
+
"category": "Basic - FHE Operations",
|
|
108
|
+
"title": "FHE If Then Else"
|
|
92
109
|
},
|
|
93
110
|
"fhe-access-control": {
|
|
94
|
-
contract: "contracts/concepts/FHEAccessControl.sol",
|
|
95
|
-
test: "test/concepts/FHEAccessControl.ts",
|
|
96
|
-
description: "Critical access control patterns in FHEVM: FHE.allow, FHE.allowThis, FHE.allowTransient. Includes common mistakes and correct implementations.",
|
|
97
|
-
category: "Concepts",
|
|
98
|
-
title: "FHE Access Control"
|
|
111
|
+
"contract": "contracts/concepts/FHEAccessControl.sol",
|
|
112
|
+
"test": "test/concepts/FHEAccessControl.ts",
|
|
113
|
+
"description": "Critical access control patterns in FHEVM: FHE.allow, FHE.allowThis, FHE.allowTransient. Includes common mistakes and correct implementations.",
|
|
114
|
+
"category": "Concepts",
|
|
115
|
+
"title": "FHE Access Control"
|
|
99
116
|
},
|
|
100
|
-
"fhe-
|
|
101
|
-
contract: "contracts/concepts/
|
|
102
|
-
test: "test/concepts/
|
|
103
|
-
description: "
|
|
104
|
-
category: "Concepts",
|
|
105
|
-
title: "FHE
|
|
117
|
+
"fhe-anti-patterns": {
|
|
118
|
+
"contract": "contracts/concepts/FHEAntiPatterns.sol",
|
|
119
|
+
"test": "test/concepts/FHEAntiPatterns.ts",
|
|
120
|
+
"description": "Common FHE mistakes and their correct alternatives. Covers: branching, permissions, require/revert, re-encryption, loops, noise, and deprecated APIs.",
|
|
121
|
+
"category": "Concepts",
|
|
122
|
+
"title": "FHE Anti Patterns"
|
|
106
123
|
},
|
|
107
124
|
"fhe-handles": {
|
|
108
|
-
contract: "contracts/concepts/FHEHandles.sol",
|
|
109
|
-
test: "test/concepts/FHEHandles.ts",
|
|
110
|
-
description: "Understanding FHE handles: creation, computation, immutability, and symbolic execution in mock mode.",
|
|
111
|
-
category: "Concepts",
|
|
112
|
-
title: "FHE Handles
|
|
125
|
+
"contract": "contracts/concepts/FHEHandles.sol",
|
|
126
|
+
"test": "test/concepts/FHEHandles.ts",
|
|
127
|
+
"description": "Understanding FHE handles: creation, computation, immutability, and symbolic execution in mock mode.",
|
|
128
|
+
"category": "Concepts",
|
|
129
|
+
"title": "FHE Handles"
|
|
113
130
|
},
|
|
114
|
-
"fhe-
|
|
115
|
-
contract: "contracts/concepts/
|
|
116
|
-
test: "test/concepts/
|
|
117
|
-
description: "
|
|
118
|
-
category: "Concepts",
|
|
119
|
-
title: "FHE
|
|
131
|
+
"fhe-input-proof": {
|
|
132
|
+
"contract": "contracts/concepts/FHEInputProof.sol",
|
|
133
|
+
"test": "test/concepts/FHEInputProof.ts",
|
|
134
|
+
"description": "Explains input proof validation in FHEVM: what proofs are, why they are needed, and how to use them correctly with single and batched inputs.",
|
|
135
|
+
"category": "Concepts",
|
|
136
|
+
"title": "FHE Input Proof"
|
|
120
137
|
},
|
|
121
|
-
erc7984: {
|
|
122
|
-
contract: "contracts/openzeppelin/ERC7984.sol",
|
|
123
|
-
test: "test/openzeppelin/ERC7984.ts",
|
|
124
|
-
description: "Confidential token
|
|
125
|
-
category: "
|
|
126
|
-
title: "ERC7984
|
|
138
|
+
"erc7984": {
|
|
139
|
+
"contract": "contracts/openzeppelin/ERC7984.sol",
|
|
140
|
+
"test": "test/openzeppelin/ERC7984.ts",
|
|
141
|
+
"description": "Confidential token using OpenZeppelin's ERC7984 standard",
|
|
142
|
+
"category": "Openzeppelin",
|
|
143
|
+
"title": "ERC7984"
|
|
127
144
|
},
|
|
128
145
|
"erc7984-erc20-wrapper": {
|
|
129
|
-
contract: "contracts/openzeppelin/ERC7984ERC20Wrapper.sol",
|
|
130
|
-
test: "test/openzeppelin/ERC7984ERC20Wrapper.ts",
|
|
131
|
-
description: "
|
|
132
|
-
category: "
|
|
133
|
-
title: "ERC7984
|
|
146
|
+
"contract": "contracts/openzeppelin/ERC7984ERC20Wrapper.sol",
|
|
147
|
+
"test": "test/openzeppelin/ERC7984ERC20Wrapper.ts",
|
|
148
|
+
"description": "Wraps ERC20 tokens into confidential ERC7984 tokens",
|
|
149
|
+
"category": "Openzeppelin",
|
|
150
|
+
"title": "ERC7984 ERC20 Wrapper"
|
|
134
151
|
},
|
|
135
152
|
"swap-erc7984-to-erc20": {
|
|
136
|
-
contract: "contracts/openzeppelin/SwapERC7984ToERC20.sol",
|
|
137
|
-
test: "test/openzeppelin/SwapERC7984ToERC20.ts",
|
|
138
|
-
description: "
|
|
139
|
-
category: "
|
|
140
|
-
title: "Swap ERC7984
|
|
153
|
+
"contract": "contracts/openzeppelin/SwapERC7984ToERC20.sol",
|
|
154
|
+
"test": "test/openzeppelin/SwapERC7984ToERC20.ts",
|
|
155
|
+
"description": "Swap confidential ERC7984 tokens to regular ERC20 tokens",
|
|
156
|
+
"category": "Openzeppelin",
|
|
157
|
+
"title": "Swap ERC7984 To ERC20"
|
|
141
158
|
},
|
|
142
159
|
"swap-erc7984-to-erc7984": {
|
|
143
|
-
contract: "contracts/openzeppelin/SwapERC7984ToERC7984.sol",
|
|
144
|
-
test: "test/openzeppelin/SwapERC7984ToERC7984.ts",
|
|
145
|
-
description: "Fully confidential
|
|
146
|
-
category: "
|
|
147
|
-
title: "Swap ERC7984
|
|
160
|
+
"contract": "contracts/openzeppelin/SwapERC7984ToERC7984.sol",
|
|
161
|
+
"test": "test/openzeppelin/SwapERC7984ToERC7984.ts",
|
|
162
|
+
"description": "Fully confidential swap between two ERC7984 tokens",
|
|
163
|
+
"category": "Openzeppelin",
|
|
164
|
+
"title": "Swap ERC7984 To ERC7984"
|
|
148
165
|
},
|
|
149
166
|
"vesting-wallet": {
|
|
150
|
-
contract: "contracts/openzeppelin/VestingWallet.sol",
|
|
151
|
-
test: "test/openzeppelin/VestingWallet.ts",
|
|
152
|
-
description: "Linear vesting wallet for ERC7984 tokens
|
|
153
|
-
category: "
|
|
154
|
-
title: "Vesting Wallet"
|
|
155
|
-
}
|
|
156
|
-
"blind-auction": {
|
|
157
|
-
contract: "contracts/advanced/BlindAuction.sol",
|
|
158
|
-
test: "test/advanced/BlindAuction.ts",
|
|
159
|
-
description: "Encrypted blind auction where bids remain confidential. Uses FHE.gt() and FHE.select() to find the winner without revealing losing bids.",
|
|
160
|
-
category: "Advanced",
|
|
161
|
-
title: "Blind Auction",
|
|
162
|
-
},
|
|
163
|
-
"hidden-voting": {
|
|
164
|
-
contract: "contracts/advanced/HiddenVoting.sol",
|
|
165
|
-
test: "test/advanced/HiddenVoting.ts",
|
|
166
|
-
description: "Encrypted voting mechanism with homomorphic tallying. Individual votes remain private forever while final counts are revealed.",
|
|
167
|
-
category: "Advanced",
|
|
168
|
-
title: "Hidden Voting",
|
|
169
|
-
},
|
|
167
|
+
"contract": "contracts/openzeppelin/VestingWallet.sol",
|
|
168
|
+
"test": "test/openzeppelin/VestingWallet.ts",
|
|
169
|
+
"description": "Linear vesting wallet for ERC7984 tokens - amounts stay encrypted!",
|
|
170
|
+
"category": "Openzeppelin",
|
|
171
|
+
"title": "Vesting Wallet"
|
|
172
|
+
}
|
|
170
173
|
};
|
|
171
174
|
// =============================================================================
|
|
172
175
|
// Category Configurations
|
|
173
176
|
// =============================================================================
|
|
174
177
|
export const CATEGORIES = {
|
|
175
|
-
|
|
176
|
-
name: "
|
|
177
|
-
description: "
|
|
178
|
-
contracts: [
|
|
178
|
+
"advanced": {
|
|
179
|
+
"name": "Advanced Examples",
|
|
180
|
+
"description": "Complex FHE applications: blind auctions, encrypted voting systems",
|
|
181
|
+
"contracts": [
|
|
179
182
|
{
|
|
180
|
-
sol: "contracts/
|
|
181
|
-
test: "test/
|
|
183
|
+
"sol": "contracts/advanced/BlindAuction.sol",
|
|
184
|
+
"test": "test/advanced/BlindAuction.ts"
|
|
182
185
|
},
|
|
183
186
|
{
|
|
184
|
-
sol: "contracts/
|
|
185
|
-
test: "test/
|
|
186
|
-
}
|
|
187
|
+
"sol": "contracts/advanced/HiddenVoting.sol",
|
|
188
|
+
"test": "test/advanced/HiddenVoting.ts"
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
"basic": {
|
|
193
|
+
"name": "Basic Examples",
|
|
194
|
+
"description": "Fundamental FHEVM operations including encryption, decryption, and basic FHE operations",
|
|
195
|
+
"contracts": [
|
|
187
196
|
{
|
|
188
|
-
sol: "contracts/basic/
|
|
189
|
-
test: "test/basic/
|
|
190
|
-
}
|
|
197
|
+
"sol": "contracts/basic/FHECounter.sol",
|
|
198
|
+
"test": "test/basic/FHECounter.ts"
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
"basicdecryption": {
|
|
203
|
+
"name": "Basic - Decryption Examples",
|
|
204
|
+
"description": "User and public decryption patterns for encrypted values",
|
|
205
|
+
"contracts": [
|
|
191
206
|
{
|
|
192
|
-
sol: "contracts/basic/
|
|
193
|
-
test: "test/basic/
|
|
207
|
+
"sol": "contracts/basic/decryption/PublicDecryptMultipleValues.sol",
|
|
208
|
+
"test": "test/basic/decryption/PublicDecryptMultipleValues.ts"
|
|
194
209
|
},
|
|
195
210
|
{
|
|
196
|
-
sol: "contracts/basic/
|
|
197
|
-
test: "test/basic/
|
|
211
|
+
"sol": "contracts/basic/decryption/PublicDecryptSingleValue.sol",
|
|
212
|
+
"test": "test/basic/decryption/PublicDecryptSingleValue.ts"
|
|
198
213
|
},
|
|
199
214
|
{
|
|
200
|
-
sol: "contracts/basic/
|
|
201
|
-
test: "test/basic/
|
|
215
|
+
"sol": "contracts/basic/decryption/UserDecryptMultipleValues.sol",
|
|
216
|
+
"test": "test/basic/decryption/UserDecryptMultipleValues.ts"
|
|
202
217
|
},
|
|
203
218
|
{
|
|
204
|
-
sol: "contracts/basic/
|
|
205
|
-
test: "test/basic/
|
|
206
|
-
}
|
|
219
|
+
"sol": "contracts/basic/decryption/UserDecryptSingleValue.sol",
|
|
220
|
+
"test": "test/basic/decryption/UserDecryptSingleValue.ts"
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
"basicencryption": {
|
|
225
|
+
"name": "Basic - Encryption Examples",
|
|
226
|
+
"description": "Encrypting values and handling encrypted inputs",
|
|
227
|
+
"contracts": [
|
|
207
228
|
{
|
|
208
|
-
sol: "contracts/basic/
|
|
209
|
-
test: "test/basic/
|
|
229
|
+
"sol": "contracts/basic/encryption/EncryptMultipleValues.sol",
|
|
230
|
+
"test": "test/basic/encryption/EncryptMultipleValues.ts"
|
|
210
231
|
},
|
|
211
232
|
{
|
|
212
|
-
sol: "contracts/basic/
|
|
213
|
-
test: "test/basic/
|
|
214
|
-
}
|
|
215
|
-
]
|
|
233
|
+
"sol": "contracts/basic/encryption/EncryptSingleValue.sol",
|
|
234
|
+
"test": "test/basic/encryption/EncryptSingleValue.ts"
|
|
235
|
+
}
|
|
236
|
+
]
|
|
216
237
|
},
|
|
217
|
-
|
|
218
|
-
name: "
|
|
219
|
-
description: "
|
|
220
|
-
contracts: [
|
|
238
|
+
"basicfheoperations": {
|
|
239
|
+
"name": "Basic - FHE Operations Examples",
|
|
240
|
+
"description": "Basic - FHE Operations examples and implementations",
|
|
241
|
+
"contracts": [
|
|
221
242
|
{
|
|
222
|
-
sol: "contracts/
|
|
223
|
-
test: "test/
|
|
243
|
+
"sol": "contracts/basic/fhe-operations/FHEAdd.sol",
|
|
244
|
+
"test": "test/basic/fhe-operations/FHEAdd.ts"
|
|
224
245
|
},
|
|
225
246
|
{
|
|
226
|
-
sol: "contracts/
|
|
227
|
-
test: "test/
|
|
247
|
+
"sol": "contracts/basic/fhe-operations/FHEArithmetic.sol",
|
|
248
|
+
"test": "test/basic/fhe-operations/FHEArithmetic.ts"
|
|
228
249
|
},
|
|
229
250
|
{
|
|
230
|
-
sol: "contracts/
|
|
231
|
-
test: "test/
|
|
251
|
+
"sol": "contracts/basic/fhe-operations/FHEComparison.sol",
|
|
252
|
+
"test": "test/basic/fhe-operations/FHEComparison.ts"
|
|
232
253
|
},
|
|
233
254
|
{
|
|
234
|
-
sol: "contracts/
|
|
235
|
-
test: "test/
|
|
236
|
-
}
|
|
237
|
-
]
|
|
255
|
+
"sol": "contracts/basic/fhe-operations/FHEIfThenElse.sol",
|
|
256
|
+
"test": "test/basic/fhe-operations/FHEIfThenElse.ts"
|
|
257
|
+
}
|
|
258
|
+
]
|
|
238
259
|
},
|
|
239
|
-
|
|
240
|
-
name: "
|
|
241
|
-
description: "
|
|
242
|
-
contracts: [
|
|
260
|
+
"concepts": {
|
|
261
|
+
"name": "Concepts Examples",
|
|
262
|
+
"description": "Access control, input proofs, handles, and anti-patterns",
|
|
263
|
+
"contracts": [
|
|
243
264
|
{
|
|
244
|
-
sol: "contracts/
|
|
245
|
-
test: "test/
|
|
265
|
+
"sol": "contracts/concepts/FHEAccessControl.sol",
|
|
266
|
+
"test": "test/concepts/FHEAccessControl.ts"
|
|
246
267
|
},
|
|
247
268
|
{
|
|
248
|
-
sol: "contracts/
|
|
249
|
-
test: "test/
|
|
269
|
+
"sol": "contracts/concepts/FHEAntiPatterns.sol",
|
|
270
|
+
"test": "test/concepts/FHEAntiPatterns.ts"
|
|
250
271
|
},
|
|
251
272
|
{
|
|
252
|
-
sol: "contracts/
|
|
253
|
-
test: "test/
|
|
273
|
+
"sol": "contracts/concepts/FHEHandles.sol",
|
|
274
|
+
"test": "test/concepts/FHEHandles.ts"
|
|
254
275
|
},
|
|
255
276
|
{
|
|
256
|
-
sol: "contracts/
|
|
257
|
-
test: "test/
|
|
258
|
-
}
|
|
259
|
-
]
|
|
277
|
+
"sol": "contracts/concepts/FHEInputProof.sol",
|
|
278
|
+
"test": "test/concepts/FHEInputProof.ts"
|
|
279
|
+
}
|
|
280
|
+
]
|
|
260
281
|
},
|
|
261
|
-
openzeppelin: {
|
|
262
|
-
name: "
|
|
263
|
-
description: "ERC7984 confidential token standard, wrappers, swaps, and vesting",
|
|
264
|
-
contracts: [
|
|
282
|
+
"openzeppelin": {
|
|
283
|
+
"name": "Openzeppelin Examples",
|
|
284
|
+
"description": "ERC7984 confidential token standard, wrappers, swaps, and vesting",
|
|
285
|
+
"contracts": [
|
|
265
286
|
{
|
|
266
|
-
sol: "contracts/openzeppelin/ERC7984.sol",
|
|
267
|
-
test: "test/openzeppelin/ERC7984.ts"
|
|
287
|
+
"sol": "contracts/openzeppelin/ERC7984.sol",
|
|
288
|
+
"test": "test/openzeppelin/ERC7984.ts"
|
|
268
289
|
},
|
|
269
290
|
{
|
|
270
|
-
sol: "contracts/openzeppelin/ERC7984ERC20Wrapper.sol",
|
|
271
|
-
test: "test/openzeppelin/ERC7984ERC20Wrapper.ts"
|
|
291
|
+
"sol": "contracts/openzeppelin/ERC7984ERC20Wrapper.sol",
|
|
292
|
+
"test": "test/openzeppelin/ERC7984ERC20Wrapper.ts"
|
|
272
293
|
},
|
|
273
294
|
{
|
|
274
|
-
sol: "contracts/openzeppelin/SwapERC7984ToERC20.sol",
|
|
275
|
-
test: "test/openzeppelin/SwapERC7984ToERC20.ts"
|
|
295
|
+
"sol": "contracts/openzeppelin/SwapERC7984ToERC20.sol",
|
|
296
|
+
"test": "test/openzeppelin/SwapERC7984ToERC20.ts"
|
|
276
297
|
},
|
|
277
298
|
{
|
|
278
|
-
sol: "contracts/openzeppelin/SwapERC7984ToERC7984.sol",
|
|
279
|
-
test: "test/openzeppelin/SwapERC7984ToERC7984.ts"
|
|
299
|
+
"sol": "contracts/openzeppelin/SwapERC7984ToERC7984.sol",
|
|
300
|
+
"test": "test/openzeppelin/SwapERC7984ToERC7984.ts"
|
|
280
301
|
},
|
|
281
302
|
{
|
|
282
|
-
sol: "contracts/openzeppelin/VestingWallet.sol",
|
|
283
|
-
test: "test/openzeppelin/VestingWallet.ts"
|
|
284
|
-
}
|
|
285
|
-
]
|
|
286
|
-
}
|
|
287
|
-
advanced: {
|
|
288
|
-
name: "Advanced Examples",
|
|
289
|
-
description: "Complex FHE applications: blind auctions, encrypted voting systems",
|
|
290
|
-
contracts: [
|
|
291
|
-
{
|
|
292
|
-
sol: "contracts/advanced/BlindAuction.sol",
|
|
293
|
-
test: "test/advanced/BlindAuction.ts",
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
sol: "contracts/advanced/HiddenVoting.sol",
|
|
297
|
-
test: "test/advanced/HiddenVoting.ts",
|
|
298
|
-
},
|
|
299
|
-
],
|
|
300
|
-
},
|
|
303
|
+
"sol": "contracts/openzeppelin/VestingWallet.sol",
|
|
304
|
+
"test": "test/openzeppelin/VestingWallet.ts"
|
|
305
|
+
}
|
|
306
|
+
]
|
|
307
|
+
}
|
|
301
308
|
};
|
|
302
309
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -29,29 +29,9 @@ import { cloneTemplate, initSubmodule, copyDirectoryRecursive, getContractName,
|
|
|
29
29
|
// CONSTANTS
|
|
30
30
|
// =============================================================================
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
* Keys match the "category" field in EXAMPLES config
|
|
32
|
+
* Simple folder icon for all categories
|
|
34
33
|
*/
|
|
35
|
-
const
|
|
36
|
-
Basic: "📚",
|
|
37
|
-
"Basic - Encryption": "🔐",
|
|
38
|
-
"Basic - Decryption": "🔓",
|
|
39
|
-
"FHE Operations": "🔢",
|
|
40
|
-
Concepts: "💡",
|
|
41
|
-
OpenZeppelin: "🛡️",
|
|
42
|
-
Advanced: "🚀",
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Icons for each category project (used in category selection)
|
|
46
|
-
* Keys match the keys in CATEGORIES config
|
|
47
|
-
*/
|
|
48
|
-
const CATEGORY_PROJECT_ICONS = {
|
|
49
|
-
basic: "📚",
|
|
50
|
-
concepts: "💡",
|
|
51
|
-
operations: "🔢",
|
|
52
|
-
openzeppelin: "🛡️",
|
|
53
|
-
advanced: "🚀",
|
|
54
|
-
};
|
|
34
|
+
const CATEGORY_ICON = "📁";
|
|
55
35
|
/**
|
|
56
36
|
* Display order for example categories in the interactive prompt
|
|
57
37
|
*/
|
|
@@ -201,7 +181,7 @@ async function promptSelectCategory() {
|
|
|
201
181
|
message: "Select a category:",
|
|
202
182
|
options: CATEGORY_ORDER.map((category) => ({
|
|
203
183
|
value: category,
|
|
204
|
-
label: `${
|
|
184
|
+
label: `${CATEGORY_ICON} ${category}`,
|
|
205
185
|
hint: `${categoryCounts[category] || 0} example${categoryCounts[category] !== 1 ? "s" : ""}`,
|
|
206
186
|
})),
|
|
207
187
|
});
|
|
@@ -233,7 +213,7 @@ async function promptSelectCategoryProject() {
|
|
|
233
213
|
message: "Select a category:",
|
|
234
214
|
options: Object.entries(CATEGORIES).map(([key, config]) => ({
|
|
235
215
|
value: key,
|
|
236
|
-
label: `${
|
|
216
|
+
label: `${CATEGORY_ICON} ${config.name}`,
|
|
237
217
|
hint: `${config.contracts.length} contracts`,
|
|
238
218
|
})),
|
|
239
219
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;GAEG;AACH,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;GAEG;AACH,MAAM,cAAc,GAAG;IACrB,OAAO;IACP,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,UAAU;IACV,cAAc;IACd,UAAU;CACX,CAAC;AAEF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,KAAK,UAAU,mBAAmB,CAChC,WAAmB,EACnB,SAAiB,EACjB,YAAoB;IAEpB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,wBAAwB;IACxB,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE/C,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,sBAAsB,CAC1B,OAAO,CAAC,QAAQ,EAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,YAAY,MAAM,CAAC,CACzD,CAAC;IAEF,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAChD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,CAC1B,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;IAEF,qCAAqC;IACrC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAC3C,oBAAoB,CAAC,YAAY,CAAC,CACnC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,WAAW,CAAC,IAAI,GAAG,iBAAiB,WAAW,EAAE,CAAC;IAClD,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC9C,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAExE,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC7D,IAAI,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,qCAAqC,EACrC,EAAE,CACH,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,qBAAqB,CAClC,YAAoB,EACpB,SAAiB,EACjB,YAAoB;IAEpB,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;IAEtE,wBAAwB;IACxB,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE/C,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAErE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAChD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,sBAAsB,CAC1B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,YAAY,MAAM,CAAC,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,sBAAsB,CAC1B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC7D,IAAI,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,qCAAqC,EACrC,EAAE,CACH,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,WAAW,CAAC,IAAI,GAAG,kBAAkB,YAAY,EAAE,CAAC;IACpD,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC/C,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,wBAAwB;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB;IACjC,MAAM,cAAc,GAAG,wBAAwB,EAAE,CAAC;IAElD,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzC,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,aAAa,IAAI,QAAQ,EAAE;YACrC,IAAI,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WACpC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACzC,EAAE;SACH,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,+BAA+B,CAC5C,QAAgB;IAEhB,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,IAAI,EACF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/B,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,0BAA0B,QAAQ,GAAG;QAC9C,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,2BAA2B;IACxC,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,GAAG,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE;YACxC,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,YAAY;SAC7C,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IAClD,MAAM,KAAK,GAAG;QACZ;YACE,IAAI,EAAE,yBAAyB;YAC/B,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,CAAC,SAAS,CAAC;YACjB,UAAU,EAAE,KAAK;SAClB;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YACxB,UAAU,EAAE,KAAK;SAClB;QACD;YACE,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,IAAI;SACjB;KACF,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAElE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC,CAAC,IAAI,CACJ,WAAW;oBACT,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,WAAW,EAAE,CAAC;oBAC7C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,CACzC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;YACxC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,YAAoB;IAC1C,CAAC,CAAC,IAAI,CACJ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,YAAY,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,CACtE,GAAG,CACJ,qBAAqB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAChD,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,cAAsB,EACtB,YAAoB;IAEpB,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,qCAAqC;QAC9C,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;GAGG;AACH,KAAK,UAAU,kBAAkB;IAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAE1D,mDAAmD;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,gCAAgC;QACzC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,iCAAiC;aACxC;YACD;gBACE,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,+BAA+B;aACtC;SACF;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,GAAoB,EAAE,CAAC;IACtC,IAAI,YAAY,GAAoB,EAAE,CAAC;IACvC,IAAI,WAAW,GAAoB,EAAE,CAAC;IAEtC,+BAA+B;IAC/B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,sDAAsD;QACtD,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACtD,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,WAAW,GAAG,MAAM,+BAA+B,CACjD,gBAA0B,CAC3B,CAAC;QACF,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,WAAW,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;YACzB,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,MAAM,WAAW,UAAU;YACxC,YAAY,EAAE,MAAM,WAAW,UAAU;SAC1C,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,6CAA6C;QAC7C,YAAY,GAAG,MAAM,2BAA2B,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,WAAW,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;YACzB,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,MAAM,YAAY,UAAU;YACzC,YAAY,EAAE,MAAM,YAAY,UAAU;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QAC7B,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,KAAK,WAAW,EAAE;QAC/B,YAAY,EAAE,KAAK,WAAW,EAAE;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAmB,CAAC,CAAC;IAExE,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAElD,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QAElC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,mBAAmB,CACvB,WAAqB,EACrB,cAAc,EACd,YAAY,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,qBAAqB,CACzB,YAAsB,EACtB,cAAc,EACd,YAAY,CACb,CAAC;QACJ,CAAC;QAED,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAExC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAqB,CAAC,CAAC;YACtD,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,eAAe,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,IAAI,WAAW,CAAC,EAAE,CAChE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,UAAU,CAAC,YAAsB,CAAC,CAAC;YAC1D,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,gBAAgB,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,IAAI,YAAY,CAAC,EAAE,CAClE,CAAC;YACF,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,iBAAiB,EAAE,CAAC,KAAK,CACvB,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAC9C,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;GAEG;AACH,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;EACZ,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC;;EAE/B,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;iDAC4B,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC;iDAC5B,EAAE,CAAC,GAAG,CACnD,yBAAyB,CAC1B;iDAC8C,EAAE,CAAC,GAAG,CACnD,2BAA2B,CAC5B;;EAED,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;;;;;;;;EAQrB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;IACpB,EAAE,CAAC,KAAK,CAAC,gDAAgD,CAAC;IAC1D,EAAE,CAAC,KAAK,CAAC,iEAAiE,CAAC;IAC3E,EAAE,CAAC,KAAK,CAAC,iEAAiE,CAAC;;EAE7E,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;EAElC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,MAAM,GAAqC,EAAE,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACtB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,IAAc;IACzC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAW,CAAC;IACpD,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAW,CAAC;IACtD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAW,CAAC;IACjD,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAErD,aAAa;IACb,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC3E,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,YAAY,CAAW,CAAC;IAErD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GACjB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;IACxE,MAAM,MAAM,GAAG,SAAS,IAAI,aAAa,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAErD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjE,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAClD,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;QAE9C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACpD,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,GAAG,CACJ,cAAc,MAAM,oDAAoD,CACzE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-fhevm-example",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Create FHEVM example projects with a single command",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"scripts": {
|
|
13
13
|
"build": "tsc",
|
|
14
14
|
"dev": "tsc --watch",
|
|
15
|
-
"
|
|
15
|
+
"sync:config": "cd ../.. && npm run sync:config",
|
|
16
|
+
"prepublishOnly": "npm run sync:config && npm run build"
|
|
16
17
|
},
|
|
17
18
|
"keywords": [
|
|
18
19
|
"fhevm",
|