@aztec/builder 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
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/dest/bin/cli.js +2 -3
- package/dest/contract-interface-gen/codegen.js +17 -15
- package/dest/contract-interface-gen/typescript.js +35 -51
- package/dest/index.js +4 -9
- package/package.json +4 -4
- package/dest/bin/cli.d.ts +0 -3
- package/dest/bin/cli.d.ts.map +0 -1
- package/dest/contract-interface-gen/codegen.d.ts +0 -9
- package/dest/contract-interface-gen/codegen.d.ts.map +0 -1
- package/dest/contract-interface-gen/typescript.d.ts +0 -9
- package/dest/contract-interface-gen/typescript.d.ts.map +0 -1
- package/dest/index.d.ts +0 -3
- package/dest/index.d.ts.map +0 -1
package/dest/bin/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createConsoleLogger } from '@aztec/foundation/log';
|
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { injectCommands as injectBuilderCommands } from '../index.js';
|
|
5
5
|
const log = createConsoleLogger('aztec:builder');
|
|
6
|
-
const main = async ()
|
|
6
|
+
const main = async ()=>{
|
|
7
7
|
const program = new Command('aztec-builder');
|
|
8
8
|
injectBuilderCommands(program);
|
|
9
9
|
await program.parseAsync(process.argv);
|
|
@@ -11,9 +11,8 @@ const main = async () => {
|
|
|
11
11
|
// it without success and I think it doesn't make sense to invest more time in this.
|
|
12
12
|
process.exit(0);
|
|
13
13
|
};
|
|
14
|
-
main().catch(err
|
|
14
|
+
main().catch((err)=>{
|
|
15
15
|
log(`Error running command`);
|
|
16
16
|
log(err);
|
|
17
17
|
process.exit(1);
|
|
18
18
|
});
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLGNBQWMsSUFBSSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RSxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVqRCxNQUFNLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtJQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU3QyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLG9IQUFvSDtJQUNwSCxvRkFBb0Y7SUFDcEYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDakIsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { loadContractArtifact } from '@aztec/types/abi';
|
|
1
|
+
/* eslint-disable no-console */ import { loadContractArtifact } from '@aztec/types/abi';
|
|
3
2
|
import crypto from 'crypto';
|
|
4
3
|
import { access, mkdir, readFile, readdir, stat, writeFile } from 'fs/promises';
|
|
5
4
|
import path from 'path';
|
|
@@ -8,19 +7,20 @@ const cacheFilePath = './codegenCache.json';
|
|
|
8
7
|
let cache = {};
|
|
9
8
|
/**
|
|
10
9
|
* Generates Noir interface or Typescript interface for a folder or single file from a Noir compilation artifact.
|
|
11
|
-
*/
|
|
12
|
-
export async function generateCode(outputPath, fileOrDirPath, opts = {}) {
|
|
10
|
+
*/ export async function generateCode(outputPath, fileOrDirPath, opts = {}) {
|
|
13
11
|
await readCache();
|
|
14
12
|
const results = [];
|
|
15
13
|
const stats = await stat(fileOrDirPath);
|
|
16
14
|
if (stats.isDirectory()) {
|
|
17
|
-
const files = (await readdir(fileOrDirPath, {
|
|
18
|
-
|
|
15
|
+
const files = (await readdir(fileOrDirPath, {
|
|
16
|
+
recursive: true,
|
|
17
|
+
encoding: 'utf-8'
|
|
18
|
+
})).filter((file)=>file.endsWith('.json') && !file.startsWith('debug_'));
|
|
19
|
+
for (const file of files){
|
|
19
20
|
const fullPath = path.join(fileOrDirPath, file);
|
|
20
21
|
results.push(await generateFromNoirAbi(outputPath, fullPath, opts));
|
|
21
22
|
}
|
|
22
|
-
}
|
|
23
|
-
else if (stats.isFile()) {
|
|
23
|
+
} else if (stats.isFile()) {
|
|
24
24
|
results.push(await generateFromNoirAbi(outputPath, fileOrDirPath, opts));
|
|
25
25
|
}
|
|
26
26
|
await writeCache();
|
|
@@ -28,8 +28,7 @@ export async function generateCode(outputPath, fileOrDirPath, opts = {}) {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Generates Noir interface or Typescript interface for a single file Noir compilation artifact.
|
|
31
|
-
*/
|
|
32
|
-
async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
31
|
+
*/ async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
33
32
|
const fileName = path.basename(noirAbiPath);
|
|
34
33
|
const currentHash = await generateFileHash(noirAbiPath);
|
|
35
34
|
const cachedInstance = isCacheValid(fileName, currentHash);
|
|
@@ -40,7 +39,9 @@ async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
|
40
39
|
const file = await readFile(noirAbiPath, 'utf8');
|
|
41
40
|
const contract = JSON.parse(file);
|
|
42
41
|
const aztecAbi = loadContractArtifact(contract);
|
|
43
|
-
await mkdir(outputPath, {
|
|
42
|
+
await mkdir(outputPath, {
|
|
43
|
+
recursive: true
|
|
44
|
+
});
|
|
44
45
|
let relativeArtifactPath = path.relative(outputPath, noirAbiPath);
|
|
45
46
|
if (relativeArtifactPath === path.basename(noirAbiPath)) {
|
|
46
47
|
// Prepend ./ for local import if the folder is the same
|
|
@@ -72,15 +73,16 @@ function isCacheValid(contractName, currentHash) {
|
|
|
72
73
|
return cache[contractName]?.hash === currentHash && cache[contractName];
|
|
73
74
|
}
|
|
74
75
|
function updateCache(fileName, contractName, hash) {
|
|
75
|
-
cache[fileName] = {
|
|
76
|
+
cache[fileName] = {
|
|
77
|
+
contractName,
|
|
78
|
+
hash
|
|
79
|
+
};
|
|
76
80
|
}
|
|
77
81
|
async function exists(filePath) {
|
|
78
82
|
try {
|
|
79
83
|
await access(filePath);
|
|
80
84
|
return true;
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
85
|
+
} catch {
|
|
83
86
|
return false;
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL2NvZGVnZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEYsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRFLE1BQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQzVDLElBQUksS0FBSyxHQUEyRCxFQUFFLENBQUM7QUFLdkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxVQUFrQixFQUFFLGFBQXFCLEVBQUUsT0FBNEIsRUFBRTtJQUMxRyxNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV4QyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDekYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDN0QsQ0FB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
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { EventSelector, decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isU128Struct, isWrappedFieldStruct
|
|
1
|
+
import { EventSelector, decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isU128Struct, isWrappedFieldStruct } from '@aztec/foundation/abi';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the corresponding typescript type for a given Noir type.
|
|
4
4
|
* @param type - The input Noir type.
|
|
5
5
|
* @returns An equivalent typescript type.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
switch (type.kind) {
|
|
6
|
+
*/ function abiTypeToTypescript(type) {
|
|
7
|
+
switch(type.kind){
|
|
9
8
|
case 'field':
|
|
10
9
|
return 'FieldLike';
|
|
11
10
|
case 'boolean':
|
|
@@ -32,7 +31,7 @@ function abiTypeToTypescript(type) {
|
|
|
32
31
|
if (isWrappedFieldStruct(type)) {
|
|
33
32
|
return 'WrappedFieldLike';
|
|
34
33
|
}
|
|
35
|
-
return `{ ${type.fields.map(f
|
|
34
|
+
return `{ ${type.fields.map((f)=>`${f.name}: ${abiTypeToTypescript(f.type)}`).join(', ')} }`;
|
|
36
35
|
default:
|
|
37
36
|
throw new Error(`Unknown type ${type}`);
|
|
38
37
|
}
|
|
@@ -41,27 +40,24 @@ function abiTypeToTypescript(type) {
|
|
|
41
40
|
* Generates the typescript code to represent a Noir parameter.
|
|
42
41
|
* @param param - A Noir parameter with name and type.
|
|
43
42
|
* @returns The corresponding ts code.
|
|
44
|
-
*/
|
|
45
|
-
function generateParameter(param) {
|
|
43
|
+
*/ function generateParameter(param) {
|
|
46
44
|
return `${param.name}: ${abiTypeToTypescript(param.type)}`;
|
|
47
45
|
}
|
|
48
46
|
/**
|
|
49
47
|
* Generates the typescript code to represent a Noir function as a type.
|
|
50
48
|
* @param param - A Noir function.
|
|
51
49
|
* @returns The corresponding ts code.
|
|
52
|
-
*/
|
|
53
|
-
function generateMethod(entry) {
|
|
50
|
+
*/ function generateMethod(entry) {
|
|
54
51
|
const args = entry.parameters.map(generateParameter).join(', ');
|
|
55
52
|
return `
|
|
56
|
-
/** ${entry.name}(${entry.parameters.map(p
|
|
53
|
+
/** ${entry.name}(${entry.parameters.map((p)=>`${p.name}: ${p.type.kind}`).join(', ')}) */
|
|
57
54
|
${entry.name}: ((${args}) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;`;
|
|
58
55
|
}
|
|
59
56
|
/**
|
|
60
57
|
* Generates a deploy method for this contract.
|
|
61
58
|
* @param input - Build artifact of the contract.
|
|
62
59
|
* @returns A type-safe deploy method in ts.
|
|
63
|
-
*/
|
|
64
|
-
function generateDeploy(input) {
|
|
60
|
+
*/ function generateDeploy(input) {
|
|
65
61
|
const ctor = getDefaultInitializer(input);
|
|
66
62
|
const args = (ctor?.parameters ?? []).map(generateParameter).join(', ');
|
|
67
63
|
const contractName = `${input.name}Contract`;
|
|
@@ -104,8 +100,7 @@ function generateDeploy(input) {
|
|
|
104
100
|
* @param name - Name of the contract to derive the ABI name from.
|
|
105
101
|
* @returns A constructor method.
|
|
106
102
|
* @remarks The constructor is private because we want to force the user to use the create method.
|
|
107
|
-
*/
|
|
108
|
-
function generateConstructor(name) {
|
|
103
|
+
*/ function generateConstructor(name) {
|
|
109
104
|
return `
|
|
110
105
|
private constructor(
|
|
111
106
|
instance: ContractInstanceWithAddress,
|
|
@@ -120,8 +115,7 @@ function generateConstructor(name) {
|
|
|
120
115
|
* @param name - Name of the contract to derive the ABI name from.
|
|
121
116
|
* @returns An at method.
|
|
122
117
|
* @remarks We don't use constructor directly because of the async `wallet.getContractData` call.
|
|
123
|
-
*/
|
|
124
|
-
function generateAt(name) {
|
|
118
|
+
*/ function generateAt(name) {
|
|
125
119
|
return `
|
|
126
120
|
/**
|
|
127
121
|
* Creates a contract instance.
|
|
@@ -139,8 +133,7 @@ function generateAt(name) {
|
|
|
139
133
|
/**
|
|
140
134
|
* Generates a static getter for the contract's artifact.
|
|
141
135
|
* @param name - Name of the contract used to derive name of the artifact import.
|
|
142
|
-
*/
|
|
143
|
-
function generateArtifactGetter(name) {
|
|
136
|
+
*/ function generateArtifactGetter(name) {
|
|
144
137
|
const artifactName = `${name}ContractArtifact`;
|
|
145
138
|
return `
|
|
146
139
|
/**
|
|
@@ -156,29 +149,25 @@ function generateArtifactGetter(name) {
|
|
|
156
149
|
* @param name - Name of the contract.
|
|
157
150
|
* @param artifactImportPath - Path to load the ABI from.
|
|
158
151
|
* @returns Code.
|
|
159
|
-
*/
|
|
160
|
-
function generateAbiStatement(name, artifactImportPath) {
|
|
152
|
+
*/ function generateAbiStatement(name, artifactImportPath) {
|
|
161
153
|
const stmts = [
|
|
162
154
|
`import ${name}ContractArtifactJson from '${artifactImportPath}' assert { type: 'json' };`,
|
|
163
|
-
`export const ${name}ContractArtifact = loadContractArtifact(${name}ContractArtifactJson as NoirCompiledContract)
|
|
155
|
+
`export const ${name}ContractArtifact = loadContractArtifact(${name}ContractArtifactJson as NoirCompiledContract);`
|
|
164
156
|
];
|
|
165
157
|
return stmts.join('\n');
|
|
166
158
|
}
|
|
167
159
|
/**
|
|
168
160
|
* Generates a getter for the contract's storage layout.
|
|
169
161
|
* @param input - The contract artifact.
|
|
170
|
-
*/
|
|
171
|
-
function generateStorageLayoutGetter(input) {
|
|
162
|
+
*/ function generateStorageLayoutGetter(input) {
|
|
172
163
|
const entries = Object.entries(input.storageLayout);
|
|
173
164
|
if (entries.length === 0) {
|
|
174
165
|
return '';
|
|
175
166
|
}
|
|
176
|
-
const storageFieldsUnionType = entries.map(([name])
|
|
177
|
-
const layout = entries
|
|
178
|
-
.map(([name, { slot }]) => `${name}: {
|
|
167
|
+
const storageFieldsUnionType = entries.map(([name])=>`'${name}'`).join(' | ');
|
|
168
|
+
const layout = entries.map(([name, { slot }])=>`${name}: {
|
|
179
169
|
slot: new Fr(${slot.toBigInt()}n),
|
|
180
|
-
}`)
|
|
181
|
-
.join(',\n');
|
|
170
|
+
}`).join(',\n');
|
|
182
171
|
return `public static get storage(): ContractStorageLayout<${storageFieldsUnionType}> {
|
|
183
172
|
return {
|
|
184
173
|
${layout}
|
|
@@ -189,18 +178,15 @@ function generateStorageLayoutGetter(input) {
|
|
|
189
178
|
/**
|
|
190
179
|
* Generates a getter for the contract notes
|
|
191
180
|
* @param input - The contract artifact.
|
|
192
|
-
*/
|
|
193
|
-
function generateNotesGetter(input) {
|
|
181
|
+
*/ function generateNotesGetter(input) {
|
|
194
182
|
const entries = Object.entries(input.notes);
|
|
195
183
|
if (entries.length === 0) {
|
|
196
184
|
return '';
|
|
197
185
|
}
|
|
198
|
-
const notesUnionType = entries.map(([name])
|
|
199
|
-
const noteMetadata = entries
|
|
200
|
-
.map(([name, { id }]) => `${name}: {
|
|
186
|
+
const notesUnionType = entries.map(([name])=>`'${name}'`).join(' | ');
|
|
187
|
+
const noteMetadata = entries.map(([name, { id }])=>`${name}: {
|
|
201
188
|
id: new NoteSelector(${id.value}),
|
|
202
|
-
}`)
|
|
203
|
-
.join(',\n');
|
|
189
|
+
}`).join(',\n');
|
|
204
190
|
return `public static get notes(): ContractNotes<${notesUnionType}> {
|
|
205
191
|
return {
|
|
206
192
|
${noteMetadata}
|
|
@@ -211,17 +197,20 @@ function generateNotesGetter(input) {
|
|
|
211
197
|
// events is of type AbiType
|
|
212
198
|
async function generateEvents(events) {
|
|
213
199
|
if (events === undefined) {
|
|
214
|
-
return {
|
|
200
|
+
return {
|
|
201
|
+
events: '',
|
|
202
|
+
eventDefs: ''
|
|
203
|
+
};
|
|
215
204
|
}
|
|
216
|
-
const eventsMetadata = await Promise.all(events.map(async (event)
|
|
205
|
+
const eventsMetadata = await Promise.all(events.map(async (event)=>{
|
|
217
206
|
const eventName = event.path.split('::').at(-1);
|
|
218
|
-
const eventDefProps = event.fields.map((field)
|
|
207
|
+
const eventDefProps = event.fields.map((field)=>`${field.name}: ${abiTypeToTypescript(field.type)}`);
|
|
219
208
|
const eventDef = `
|
|
220
209
|
export type ${eventName} = {
|
|
221
210
|
${eventDefProps.join('\n')}
|
|
222
211
|
}
|
|
223
212
|
`;
|
|
224
|
-
const fieldNames = event.fields.map((field)
|
|
213
|
+
const fieldNames = event.fields.map((field)=>`"${field.name}"`);
|
|
225
214
|
const eventType = `${eventName}: {abiType: AbiType, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
226
215
|
// Reusing the decodeFunctionSignature
|
|
227
216
|
const eventSignature = decodeFunctionSignature(eventName, event.fields);
|
|
@@ -234,18 +223,18 @@ async function generateEvents(events) {
|
|
|
234
223
|
return {
|
|
235
224
|
eventDef,
|
|
236
225
|
eventType,
|
|
237
|
-
eventImpl
|
|
226
|
+
eventImpl
|
|
238
227
|
};
|
|
239
228
|
}));
|
|
240
229
|
return {
|
|
241
|
-
eventDefs: eventsMetadata.map(({ eventDef })
|
|
230
|
+
eventDefs: eventsMetadata.map(({ eventDef })=>eventDef).join('\n'),
|
|
242
231
|
events: `
|
|
243
|
-
public static get events(): { ${eventsMetadata.map(({ eventType })
|
|
232
|
+
public static get events(): { ${eventsMetadata.map(({ eventType })=>eventType).join(', ')} } {
|
|
244
233
|
return {
|
|
245
|
-
${eventsMetadata.map(({ eventImpl })
|
|
234
|
+
${eventsMetadata.map(({ eventImpl })=>eventImpl).join(',\n')}
|
|
246
235
|
};
|
|
247
236
|
}
|
|
248
|
-
|
|
237
|
+
`
|
|
249
238
|
};
|
|
250
239
|
}
|
|
251
240
|
/**
|
|
@@ -253,12 +242,8 @@ async function generateEvents(events) {
|
|
|
253
242
|
* @param input - The compiled Noir artifact.
|
|
254
243
|
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
255
244
|
* @returns The corresponding ts code.
|
|
256
|
-
*/
|
|
257
|
-
|
|
258
|
-
const methods = input.functions
|
|
259
|
-
.filter(f => !f.isInternal)
|
|
260
|
-
.sort((a, b) => a.name.localeCompare(b.name))
|
|
261
|
-
.map(generateMethod);
|
|
245
|
+
*/ export async function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
246
|
+
const methods = input.functions.filter((f)=>!f.isInternal).sort((a, b)=>a.name.localeCompare(b.name)).map(generateMethod);
|
|
262
247
|
const deploy = artifactImportPath && generateDeploy(input);
|
|
263
248
|
const ctor = artifactImportPath && generateConstructor(input.name);
|
|
264
249
|
const at = artifactImportPath && generateAt(input.name);
|
|
@@ -333,4 +318,3 @@ export class ${input.name}Contract extends ContractBase {
|
|
|
333
318
|
}
|
|
334
319
|
`;
|
|
335
320
|
}
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGFBQWEsRUFFYix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQjs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxJQUEwQjtJQUNyRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDVixPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFNBQVM7WUFDWixPQUFPLFNBQVMsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixPQUFPLG1CQUFtQixDQUFDO1FBQzdCLEtBQUssUUFBUTtZQUNYLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssT0FBTztZQUNWLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztZQUNELElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLHNCQUFzQixDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxvQkFBb0Is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
|
package/dest/index.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { dirname } from 'path';
|
|
2
2
|
export function injectCommands(program) {
|
|
3
|
-
program
|
|
4
|
-
.command('codegen')
|
|
5
|
-
.argument('<noir-abi-path>', 'Path to the Noir ABI or project dir.')
|
|
6
|
-
.option('-o, --outdir <path>', 'Output folder for the generated code.')
|
|
7
|
-
.option('-f, --force', 'Force code generation even when the contract has not changed.')
|
|
8
|
-
.description('Validates and generates an Aztec Contract ABI from Noir ABI.')
|
|
9
|
-
.action(async (noirAbiPath, { outdir, force }) => {
|
|
3
|
+
program.command('codegen').argument('<noir-abi-path>', 'Path to the Noir ABI or project dir.').option('-o, --outdir <path>', 'Output folder for the generated code.').option('-f, --force', 'Force code generation even when the contract has not changed.').description('Validates and generates an Aztec Contract ABI from Noir ABI.').action(async (noirAbiPath, { outdir, force })=>{
|
|
10
4
|
const { generateCode } = await import('./contract-interface-gen/codegen.js');
|
|
11
|
-
await generateCode(outdir || dirname(noirAbiPath), noirAbiPath, {
|
|
5
|
+
await generateCode(outdir || dirname(noirAbiPath), noirAbiPath, {
|
|
6
|
+
force
|
|
7
|
+
});
|
|
12
8
|
});
|
|
13
9
|
return program;
|
|
14
10
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWdCO0lBQzdDLE9BQU87U0FDSixPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ2xCLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUNuRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsdUNBQXVDLENBQUM7U0FDdEUsTUFBTSxDQUFDLGFBQWEsRUFBRSwrREFBK0QsQ0FBQztTQUN0RixXQUFXLENBQUMsOERBQThELENBQUM7U0FDM0UsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDdkQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDN0UsTUFBTSxZQUFZLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
24
24
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
25
25
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
26
|
-
"test": "
|
|
26
|
+
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
27
27
|
},
|
|
28
28
|
"inherits": [
|
|
29
29
|
"../package.common.json"
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/foundation": "0.
|
|
71
|
-
"@aztec/types": "0.
|
|
70
|
+
"@aztec/foundation": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
71
|
+
"@aztec/types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
72
72
|
"commander": "^12.1.0"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
package/dest/bin/cli.d.ts
DELETED
package/dest/bin/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/** Generate code options */
|
|
2
|
-
export type GenerateCodeOptions = {
|
|
3
|
-
force?: boolean;
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* Generates Noir interface or Typescript interface for a folder or single file from a Noir compilation artifact.
|
|
7
|
-
*/
|
|
8
|
-
export declare function generateCode(outputPath: string, fileOrDirPath: string, opts?: GenerateCodeOptions): Promise<string[]>;
|
|
9
|
-
//# sourceMappingURL=codegen.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/contract-interface-gen/codegen.ts"],"names":[],"mappings":"AAYA,4BAA4B;AAC5B,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,qBAkB3G"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
2
|
-
/**
|
|
3
|
-
* Generates the typescript code to represent a contract.
|
|
4
|
-
* @param input - The compiled Noir artifact.
|
|
5
|
-
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
6
|
-
* @returns The corresponding ts code.
|
|
7
|
-
*/
|
|
8
|
-
export declare function generateTypescriptContractInterface(input: ContractArtifact, artifactImportPath?: string): Promise<string>;
|
|
9
|
-
//# sourceMappingURL=typescript.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/contract-interface-gen/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EAUtB,MAAM,uBAAuB,CAAC;AA4R/B;;;;;GAKG;AACH,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,MAAM,mBA+E7G"}
|
package/dest/index.d.ts
DELETED
package/dest/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,WAY9C"}
|