@aztec/builder 0.46.5 → 0.46.6
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/cli.js +4 -25
- package/package.json +4 -20
- package/src/cli.ts +3 -25
- package/dest/cli/codegen.d.ts +0 -10
- package/dest/cli/codegen.d.ts.map +0 -1
- package/dest/cli/codegen.js +0 -71
- package/dest/cli/update/common.d.ts +0 -17
- package/dest/cli/update/common.d.ts.map +0 -1
- package/dest/cli/update/common.js +0 -2
- package/dest/cli/update/github.d.ts +0 -4
- package/dest/cli/update/github.d.ts.map +0 -1
- package/dest/cli/update/github.js +0 -4
- package/dest/cli/update/noir.d.ts +0 -10
- package/dest/cli/update/noir.d.ts.map +0 -1
- package/dest/cli/update/noir.js +0 -47
- package/dest/cli/update/npm.d.ts +0 -34
- package/dest/cli/update/npm.d.ts.map +0 -1
- package/dest/cli/update/npm.js +0 -125
- package/dest/cli/update/update.d.ts +0 -3
- package/dest/cli/update/update.d.ts.map +0 -1
- package/dest/cli/update/update.js +0 -58
- package/dest/cli/update/utils.d.ts +0 -14
- package/dest/cli/update/utils.d.ts.map +0 -1
- package/dest/cli/update/utils.js +0 -43
- package/dest/contract-interface-gen/typescript.d.ts +0 -9
- package/dest/contract-interface-gen/typescript.d.ts.map +0 -1
- package/dest/contract-interface-gen/typescript.js +0 -349
- package/dest/index.d.ts +0 -2
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -2
- package/dest/mocked_keys.d.ts +0 -2
- package/dest/mocked_keys.d.ts.map +0 -1
- package/dest/mocked_keys.js +0 -2
- package/dest/utils.d.ts +0 -10
- package/dest/utils.d.ts.map +0 -1
- package/dest/utils.js +0 -32
- package/src/cli/codegen.ts +0 -91
- package/src/cli/update/common.ts +0 -16
- package/src/cli/update/github.ts +0 -3
- package/src/cli/update/noir.ts +0 -57
- package/src/cli/update/npm.ts +0 -154
- package/src/cli/update/update.ts +0 -78
- package/src/cli/update/utils.ts +0 -50
- package/src/contract-interface-gen/typescript.ts +0 -389
- package/src/index.ts +0 -1
- package/src/mocked_keys.ts +0 -2
- package/src/utils.ts +0 -33
package/dest/cli/update/utils.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import TOML from '@iarna/toml';
|
|
2
|
-
import { CommanderError } from 'commander';
|
|
3
|
-
import { rename, writeFile } from 'fs/promises';
|
|
4
|
-
/**
|
|
5
|
-
* Updates a file in place atomically.
|
|
6
|
-
* @param filePath - Path to file
|
|
7
|
-
* @param contents - New contents to write
|
|
8
|
-
*/
|
|
9
|
-
export async function atomicUpdateFile(filePath, contents) {
|
|
10
|
-
const tmpFilepath = filePath + '.tmp';
|
|
11
|
-
try {
|
|
12
|
-
await writeFile(tmpFilepath, contents, {
|
|
13
|
-
// let's crash if the tmp file already exists
|
|
14
|
-
flag: 'wx',
|
|
15
|
-
});
|
|
16
|
-
await rename(tmpFilepath, filePath);
|
|
17
|
-
}
|
|
18
|
-
catch (e) {
|
|
19
|
-
if (e instanceof Error && 'code' in e && e.code === 'EEXIST') {
|
|
20
|
-
const commanderError = new CommanderError(1, e.code, `Temporary file already exists: ${tmpFilepath}. Delete this file and try again.`);
|
|
21
|
-
commanderError.nestedError = e.message;
|
|
22
|
-
throw commanderError;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
throw e;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Pretty prints Nargo.toml contents to a string
|
|
31
|
-
* @param config - Nargo.toml contents
|
|
32
|
-
* @returns The Nargo.toml contents as a string
|
|
33
|
-
*/
|
|
34
|
-
export function prettyPrintNargoToml(config) {
|
|
35
|
-
const withoutDependencies = Object.fromEntries(Object.entries(config).filter(([key]) => key !== 'dependencies'));
|
|
36
|
-
const partialToml = TOML.stringify(withoutDependencies);
|
|
37
|
-
const dependenciesToml = Object.entries(config.dependencies).map(([name, dep]) => {
|
|
38
|
-
const depToml = TOML.stringify.value(dep);
|
|
39
|
-
return `${name} = ${depToml}`;
|
|
40
|
-
});
|
|
41
|
-
return partialToml + '\n[dependencies]\n' + dependenciesToml.join('\n') + '\n';
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL3VwZGF0ZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQ3ZFLE1BQU0sV0FBVyxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDdEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRTtZQUNyQyw2Q0FBNkM7WUFDN0MsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdELE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUN2QyxDQUFDLEVBQ0QsQ0FBQyxDQUFDLElBQUksRUFDTixrQ0FBa0MsV0FBVyxtQ0FBbUMsQ0FDakYsQ0FBQztZQUNGLGNBQWMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN2QyxNQUFNLGNBQWMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUF5QjtJQUM1RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztJQUVqSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQy9FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sR0FBRyxJQUFJLE1BQU0sT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFdBQVcsR0FBRyxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ2pGLENBQUMifQ==
|
|
@@ -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): 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,EAEL,KAAK,gBAAgB,EAOtB,MAAM,uBAAuB,CAAC;AA8S/B;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,MAAM,UAuEvG"}
|
|
@@ -1,349 +0,0 @@
|
|
|
1
|
-
import { getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isWrappedFieldStruct, } from '@aztec/foundation/abi';
|
|
2
|
-
/**
|
|
3
|
-
* Returns the corresponding typescript type for a given Noir type.
|
|
4
|
-
* @param type - The input Noir type.
|
|
5
|
-
* @returns An equivalent typescript type.
|
|
6
|
-
*/
|
|
7
|
-
function abiTypeToTypescript(type) {
|
|
8
|
-
switch (type.kind) {
|
|
9
|
-
case 'field':
|
|
10
|
-
return 'FieldLike';
|
|
11
|
-
case 'boolean':
|
|
12
|
-
return 'boolean';
|
|
13
|
-
case 'integer':
|
|
14
|
-
return '(bigint | number)';
|
|
15
|
-
case 'string':
|
|
16
|
-
return 'string';
|
|
17
|
-
case 'array':
|
|
18
|
-
return `${abiTypeToTypescript(type.type)}[]`;
|
|
19
|
-
case 'struct':
|
|
20
|
-
if (isEthAddressStruct(type)) {
|
|
21
|
-
return 'EthAddressLike';
|
|
22
|
-
}
|
|
23
|
-
if (isAztecAddressStruct(type)) {
|
|
24
|
-
return 'AztecAddressLike';
|
|
25
|
-
}
|
|
26
|
-
if (isFunctionSelectorStruct(type)) {
|
|
27
|
-
return 'FunctionSelectorLike';
|
|
28
|
-
}
|
|
29
|
-
if (isWrappedFieldStruct(type)) {
|
|
30
|
-
return 'WrappedFieldLike';
|
|
31
|
-
}
|
|
32
|
-
return `{ ${type.fields.map(f => `${f.name}: ${abiTypeToTypescript(f.type)}`).join(', ')} }`;
|
|
33
|
-
default:
|
|
34
|
-
throw new Error(`Unknown type ${type}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Generates the typescript code to represent a Noir parameter.
|
|
39
|
-
* @param param - A Noir parameter with name and type.
|
|
40
|
-
* @returns The corresponding ts code.
|
|
41
|
-
*/
|
|
42
|
-
function generateParameter(param) {
|
|
43
|
-
return `${param.name}: ${abiTypeToTypescript(param.type)}`;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Generates the typescript code to represent a Noir function as a type.
|
|
47
|
-
* @param param - A Noir function.
|
|
48
|
-
* @returns The corresponding ts code.
|
|
49
|
-
*/
|
|
50
|
-
function generateMethod(entry) {
|
|
51
|
-
const args = entry.parameters.map(generateParameter).join(', ');
|
|
52
|
-
return `
|
|
53
|
-
/** ${entry.name}(${entry.parameters.map(p => `${p.name}: ${p.type.kind}`).join(', ')}) */
|
|
54
|
-
${entry.name}: ((${args}) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;`;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Generates a deploy method for this contract.
|
|
58
|
-
* @param input - Build artifact of the contract.
|
|
59
|
-
* @returns A type-safe deploy method in ts.
|
|
60
|
-
*/
|
|
61
|
-
function generateDeploy(input) {
|
|
62
|
-
const ctor = getDefaultInitializer(input);
|
|
63
|
-
const args = (ctor?.parameters ?? []).map(generateParameter).join(', ');
|
|
64
|
-
const contractName = `${input.name}Contract`;
|
|
65
|
-
const artifactName = `${contractName}Artifact`;
|
|
66
|
-
return `
|
|
67
|
-
/**
|
|
68
|
-
* Creates a tx to deploy a new instance of this contract.
|
|
69
|
-
*/
|
|
70
|
-
public static deploy(wallet: Wallet, ${args}) {
|
|
71
|
-
return new DeployMethod<${contractName}>(Fr.ZERO, wallet, ${artifactName}, ${contractName}.at, Array.from(arguments).slice(1));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Creates a tx to deploy a new instance of this contract using the specified public keys hash to derive the address.
|
|
76
|
-
*/
|
|
77
|
-
public static deployWithPublicKeysHash(publicKeysHash: Fr, wallet: Wallet, ${args}) {
|
|
78
|
-
return new DeployMethod<${contractName}>(publicKeysHash, wallet, ${artifactName}, ${contractName}.at, Array.from(arguments).slice(2));
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Creates a tx to deploy a new instance of this contract using the specified constructor method.
|
|
83
|
-
*/
|
|
84
|
-
public static deployWithOpts<M extends keyof ${contractName}['methods']>(
|
|
85
|
-
opts: { publicKeysHash?: Fr; method?: M; wallet: Wallet },
|
|
86
|
-
...args: Parameters<${contractName}['methods'][M]>
|
|
87
|
-
) {
|
|
88
|
-
return new DeployMethod<${contractName}>(
|
|
89
|
-
opts.publicKeysHash ?? Fr.ZERO,
|
|
90
|
-
opts.wallet,
|
|
91
|
-
${artifactName},
|
|
92
|
-
${contractName}.at,
|
|
93
|
-
Array.from(arguments).slice(1),
|
|
94
|
-
opts.method ?? 'constructor',
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
`;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Generates the constructor by supplying the ABI to the parent class so the user doesn't have to.
|
|
101
|
-
* @param name - Name of the contract to derive the ABI name from.
|
|
102
|
-
* @returns A constructor method.
|
|
103
|
-
* @remarks The constructor is private because we want to force the user to use the create method.
|
|
104
|
-
*/
|
|
105
|
-
function generateConstructor(name) {
|
|
106
|
-
return `
|
|
107
|
-
private constructor(
|
|
108
|
-
instance: ContractInstanceWithAddress,
|
|
109
|
-
wallet: Wallet,
|
|
110
|
-
) {
|
|
111
|
-
super(instance, ${name}ContractArtifact, wallet);
|
|
112
|
-
}
|
|
113
|
-
`;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Generates the at method for this contract.
|
|
117
|
-
* @param name - Name of the contract to derive the ABI name from.
|
|
118
|
-
* @returns An at method.
|
|
119
|
-
* @remarks We don't use constructor directly because of the async `wallet.getContractData` call.
|
|
120
|
-
*/
|
|
121
|
-
function generateAt(name) {
|
|
122
|
-
return `
|
|
123
|
-
/**
|
|
124
|
-
* Creates a contract instance.
|
|
125
|
-
* @param address - The deployed contract's address.
|
|
126
|
-
* @param wallet - The wallet to use when interacting with the contract.
|
|
127
|
-
* @returns A promise that resolves to a new Contract instance.
|
|
128
|
-
*/
|
|
129
|
-
public static async at(
|
|
130
|
-
address: AztecAddress,
|
|
131
|
-
wallet: Wallet,
|
|
132
|
-
) {
|
|
133
|
-
return Contract.at(address, ${name}Contract.artifact, wallet) as Promise<${name}Contract>;
|
|
134
|
-
}`;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Generates a static getter for the contract's artifact.
|
|
138
|
-
* @param name - Name of the contract used to derive name of the artifact import.
|
|
139
|
-
*/
|
|
140
|
-
function generateArtifactGetter(name) {
|
|
141
|
-
const artifactName = `${name}ContractArtifact`;
|
|
142
|
-
return `
|
|
143
|
-
/**
|
|
144
|
-
* Returns this contract's artifact.
|
|
145
|
-
*/
|
|
146
|
-
public static get artifact(): ContractArtifact {
|
|
147
|
-
return ${artifactName};
|
|
148
|
-
}
|
|
149
|
-
`;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Generates statements for importing the artifact from json and re-exporting it.
|
|
153
|
-
* @param name - Name of the contract.
|
|
154
|
-
* @param artifactImportPath - Path to load the ABI from.
|
|
155
|
-
* @returns Code.
|
|
156
|
-
*/
|
|
157
|
-
function generateAbiStatement(name, artifactImportPath) {
|
|
158
|
-
const stmts = [
|
|
159
|
-
`import ${name}ContractArtifactJson from '${artifactImportPath}' assert { type: 'json' };`,
|
|
160
|
-
`export const ${name}ContractArtifact = loadContractArtifact(${name}ContractArtifactJson as NoirCompiledContract);`,
|
|
161
|
-
];
|
|
162
|
-
return stmts.join('\n');
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Generates a getter for the contract's storage layout.
|
|
166
|
-
* @param input - The contract artifact.
|
|
167
|
-
*/
|
|
168
|
-
function generateStorageLayoutGetter(input) {
|
|
169
|
-
const entries = Object.entries(input.storageLayout);
|
|
170
|
-
if (entries.length === 0) {
|
|
171
|
-
return '';
|
|
172
|
-
}
|
|
173
|
-
const storageFieldsUnionType = entries.map(([name]) => `'${name}'`).join(' | ');
|
|
174
|
-
const layout = entries
|
|
175
|
-
.map(([name, { slot }]) => `${name}: {
|
|
176
|
-
slot: new Fr(${slot.toBigInt()}n),
|
|
177
|
-
}`)
|
|
178
|
-
.join(',\n');
|
|
179
|
-
return `public static get storage(): ContractStorageLayout<${storageFieldsUnionType}> {
|
|
180
|
-
return {
|
|
181
|
-
${layout}
|
|
182
|
-
} as ContractStorageLayout<${storageFieldsUnionType}>;
|
|
183
|
-
}
|
|
184
|
-
`;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Generates a getter for the contract notes
|
|
188
|
-
* @param input - The contract artifact.
|
|
189
|
-
*/
|
|
190
|
-
function generateNotesGetter(input) {
|
|
191
|
-
const entries = Object.entries(input.notes);
|
|
192
|
-
if (entries.length === 0) {
|
|
193
|
-
return '';
|
|
194
|
-
}
|
|
195
|
-
const notesUnionType = entries.map(([name]) => `'${name}'`).join(' | ');
|
|
196
|
-
const noteMetadata = entries
|
|
197
|
-
.map(([name, { id }]) => `${name}: {
|
|
198
|
-
id: new NoteSelector(${id.value}),
|
|
199
|
-
}`)
|
|
200
|
-
.join(',\n');
|
|
201
|
-
return `public static get notes(): ContractNotes<${notesUnionType}> {
|
|
202
|
-
return {
|
|
203
|
-
${noteMetadata}
|
|
204
|
-
} as ContractNotes<${notesUnionType}>;
|
|
205
|
-
}
|
|
206
|
-
`;
|
|
207
|
-
}
|
|
208
|
-
// events is of type AbiType
|
|
209
|
-
function generateEvents(events) {
|
|
210
|
-
if (events === undefined) {
|
|
211
|
-
return { events: '', eventDefs: '' };
|
|
212
|
-
}
|
|
213
|
-
const eventsMetadata = events.map(event => {
|
|
214
|
-
const eventName = event.path.split('::').at(-1);
|
|
215
|
-
const eventDefProps = event.fields.map((field) => `${field.name}: Fr`);
|
|
216
|
-
const eventDef = `
|
|
217
|
-
export type ${eventName} = {
|
|
218
|
-
${eventDefProps.join('\n')}
|
|
219
|
-
}
|
|
220
|
-
`;
|
|
221
|
-
const fieldNames = event.fields.map((field) => `"${field.name}"`);
|
|
222
|
-
const eventType = `${eventName}: {decode: (payload: L1EventPayload | undefined) => ${eventName} | undefined, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
223
|
-
const eventImpl = `${eventName}: {
|
|
224
|
-
decode: this.decodeEvent(${event.fields.length}, EventSelector.fromSignature('${eventName}(${event.fields
|
|
225
|
-
.map(() => 'Field')
|
|
226
|
-
.join(',')})'), [${fieldNames}]),
|
|
227
|
-
eventSelector: EventSelector.fromSignature('${eventName}(${event.fields.map(() => 'Field').join(',')})'),
|
|
228
|
-
fieldNames: [${fieldNames}],
|
|
229
|
-
}`;
|
|
230
|
-
return {
|
|
231
|
-
eventDef,
|
|
232
|
-
eventType,
|
|
233
|
-
eventImpl,
|
|
234
|
-
};
|
|
235
|
-
});
|
|
236
|
-
return {
|
|
237
|
-
eventDefs: eventsMetadata.map(({ eventDef }) => eventDef).join('\n'),
|
|
238
|
-
events: `
|
|
239
|
-
// Partial application is chosen is to avoid the duplication of so much codegen.
|
|
240
|
-
private static decodeEvent<T>(fieldsLength: number, eventSelector: EventSelector, fields: string[]): (payload: L1EventPayload | undefined) => T | undefined {
|
|
241
|
-
return (payload: L1EventPayload | undefined): T | undefined => {
|
|
242
|
-
if (payload === undefined) {
|
|
243
|
-
return undefined;
|
|
244
|
-
}
|
|
245
|
-
if (!eventSelector.equals(payload.eventTypeId)) {
|
|
246
|
-
return undefined;
|
|
247
|
-
}
|
|
248
|
-
if (payload.event.items.length !== fieldsLength) {
|
|
249
|
-
throw new Error(
|
|
250
|
-
'Something is weird here, we have matching EventSelectors, but the actual payload has mismatched length',
|
|
251
|
-
);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
return fields.reduce(
|
|
255
|
-
(acc, curr, i) => ({
|
|
256
|
-
...acc,
|
|
257
|
-
[curr]: payload.event.items[i],
|
|
258
|
-
}),
|
|
259
|
-
{} as T,
|
|
260
|
-
);
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
public static get events(): { ${eventsMetadata.map(({ eventType }) => eventType).join(', ')} } {
|
|
265
|
-
return {
|
|
266
|
-
${eventsMetadata.map(({ eventImpl }) => eventImpl).join(',\n')}
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
`,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Generates the typescript code to represent a contract.
|
|
274
|
-
* @param input - The compiled Noir artifact.
|
|
275
|
-
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
276
|
-
* @returns The corresponding ts code.
|
|
277
|
-
*/
|
|
278
|
-
export function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
279
|
-
const methods = input.functions.filter(f => !f.isInternal).map(generateMethod);
|
|
280
|
-
const deploy = artifactImportPath && generateDeploy(input);
|
|
281
|
-
const ctor = artifactImportPath && generateConstructor(input.name);
|
|
282
|
-
const at = artifactImportPath && generateAt(input.name);
|
|
283
|
-
const artifactStatement = artifactImportPath && generateAbiStatement(input.name, artifactImportPath);
|
|
284
|
-
const artifactGetter = artifactImportPath && generateArtifactGetter(input.name);
|
|
285
|
-
const storageLayoutGetter = artifactImportPath && generateStorageLayoutGetter(input);
|
|
286
|
-
const notesGetter = artifactImportPath && generateNotesGetter(input);
|
|
287
|
-
const { eventDefs, events } = generateEvents(input.outputs.structs?.events);
|
|
288
|
-
return `
|
|
289
|
-
/* Autogenerated file, do not edit! */
|
|
290
|
-
|
|
291
|
-
/* eslint-disable */
|
|
292
|
-
import {
|
|
293
|
-
AztecAddress,
|
|
294
|
-
AztecAddressLike,
|
|
295
|
-
CompleteAddress,
|
|
296
|
-
Contract,
|
|
297
|
-
ContractArtifact,
|
|
298
|
-
ContractBase,
|
|
299
|
-
ContractFunctionInteraction,
|
|
300
|
-
ContractInstanceWithAddress,
|
|
301
|
-
ContractMethod,
|
|
302
|
-
ContractStorageLayout,
|
|
303
|
-
ContractNotes,
|
|
304
|
-
DeployMethod,
|
|
305
|
-
EthAddress,
|
|
306
|
-
EthAddressLike,
|
|
307
|
-
EventSelector,
|
|
308
|
-
FieldLike,
|
|
309
|
-
Fr,
|
|
310
|
-
FunctionSelectorLike,
|
|
311
|
-
L1EventPayload,
|
|
312
|
-
loadContractArtifact,
|
|
313
|
-
NoirCompiledContract,
|
|
314
|
-
NoteSelector,
|
|
315
|
-
Point,
|
|
316
|
-
PublicKey,
|
|
317
|
-
Wallet,
|
|
318
|
-
WrappedFieldLike,
|
|
319
|
-
} from '@aztec/aztec.js';
|
|
320
|
-
${artifactStatement}
|
|
321
|
-
|
|
322
|
-
${eventDefs}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Type-safe interface for contract ${input.name};
|
|
326
|
-
*/
|
|
327
|
-
export class ${input.name}Contract extends ContractBase {
|
|
328
|
-
${ctor}
|
|
329
|
-
|
|
330
|
-
${at}
|
|
331
|
-
|
|
332
|
-
${deploy}
|
|
333
|
-
|
|
334
|
-
${artifactGetter}
|
|
335
|
-
|
|
336
|
-
${storageLayoutGetter}
|
|
337
|
-
|
|
338
|
-
${notesGetter}
|
|
339
|
-
|
|
340
|
-
/** Type-safe wrappers for the public methods exposed by the contract. */
|
|
341
|
-
public override methods!: {
|
|
342
|
-
${methods.join('\n')}
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
${events}
|
|
346
|
-
}
|
|
347
|
-
`;
|
|
348
|
-
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQjs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxJQUEwQjtJQUNyRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDVixPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFNBQVM7WUFDWixPQUFPLFNBQVMsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixPQUFPLG1CQUFtQixDQUFDO1FBQzdCLEtBQUssUUFBUTtZQUNYLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssT0FBTztZQUNWLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztZQUNELElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLHNCQUFzQixDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sa0JBQWtCLENBQUM7WUFDNUIsQ0FBQztZQUNELE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxD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
|
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,mCAAmC,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dest/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { generateTypescriptContractInterface } from './contract-interface-gen/typescript.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0NBQXdDLENBQUMifQ==
|
package/dest/mocked_keys.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const mockVerificationKey = "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f";
|
|
2
|
-
//# sourceMappingURL=mocked_keys.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mocked_keys.d.ts","sourceRoot":"","sources":["../src/mocked_keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,q1EACozE,CAAC"}
|
package/dest/mocked_keys.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const mockVerificationKey = '0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja2VkX2tleXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9ja2VkX2tleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQzlCLGsxRUFBazFFLENBQUMifQ==
|
package/dest/utils.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
2
|
-
/**
|
|
3
|
-
* Checks if the given input looks like a valid ContractArtifact. The check is not exhaustive,
|
|
4
|
-
* and it's just meant to differentiate between nargo raw build artifacts and the ones
|
|
5
|
-
* produced by this compiler.
|
|
6
|
-
* @param input - Input object.
|
|
7
|
-
* @returns True if it looks like a ContractArtifact.
|
|
8
|
-
*/
|
|
9
|
-
export declare function isContractArtifact(input: any): input is ContractArtifact;
|
|
10
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dest/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,gBAAgB,CAuBxE"}
|
package/dest/utils.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the given input looks like a valid ContractArtifact. The check is not exhaustive,
|
|
3
|
-
* and it's just meant to differentiate between nargo raw build artifacts and the ones
|
|
4
|
-
* produced by this compiler.
|
|
5
|
-
* @param input - Input object.
|
|
6
|
-
* @returns True if it looks like a ContractArtifact.
|
|
7
|
-
*/
|
|
8
|
-
export function isContractArtifact(input) {
|
|
9
|
-
if (typeof input !== 'object') {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
const maybeContractArtifact = input;
|
|
13
|
-
if (typeof maybeContractArtifact.name !== 'string') {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
if (!Array.isArray(maybeContractArtifact.functions)) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
for (const fn of maybeContractArtifact.functions) {
|
|
20
|
-
if (typeof fn.name !== 'string') {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
if (typeof fn.functionType !== 'string') {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
if (typeof fn.isInternal !== 'boolean') {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQVU7SUFDM0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLHFCQUFxQixHQUFHLEtBQXlCLENBQUM7SUFDeEQsSUFBSSxPQUFPLHFCQUFxQixDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELEtBQUssTUFBTSxFQUFFLElBQUkscUJBQXFCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakQsSUFBSSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyJ9
|
package/src/cli/codegen.ts
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { loadContractArtifact } from '@aztec/types/abi';
|
|
3
|
-
|
|
4
|
-
import crypto from 'crypto';
|
|
5
|
-
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from 'fs';
|
|
6
|
-
import path from 'path';
|
|
7
|
-
|
|
8
|
-
import { generateTypescriptContractInterface } from '../contract-interface-gen/typescript.js';
|
|
9
|
-
|
|
10
|
-
const cacheFilePath = './codegenCache.json';
|
|
11
|
-
let cache: Record<string, string> = {};
|
|
12
|
-
|
|
13
|
-
/** Generate code options */
|
|
14
|
-
type GenerateCodeOptions = { force?: boolean };
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Generates Noir interface or Typescript interface for a folder or single file from a Noir compilation artifact.
|
|
18
|
-
*/
|
|
19
|
-
export function generateCode(outputPath: string, fileOrDirPath: string, opts: GenerateCodeOptions = {}) {
|
|
20
|
-
readCache();
|
|
21
|
-
const stats = statSync(fileOrDirPath);
|
|
22
|
-
|
|
23
|
-
if (stats.isDirectory()) {
|
|
24
|
-
const files = readdirSync(fileOrDirPath, { recursive: true, encoding: 'utf-8' }).filter(
|
|
25
|
-
file => file.endsWith('.json') && !file.startsWith('debug_'),
|
|
26
|
-
);
|
|
27
|
-
for (const file of files) {
|
|
28
|
-
const fullPath = path.join(fileOrDirPath, file);
|
|
29
|
-
generateFromNoirAbi(outputPath, fullPath, opts);
|
|
30
|
-
}
|
|
31
|
-
} else if (stats.isFile()) {
|
|
32
|
-
generateFromNoirAbi(outputPath, fileOrDirPath, opts);
|
|
33
|
-
}
|
|
34
|
-
writeCache();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Generates Noir interface or Typescript interface for a single file Noir compilation artifact.
|
|
39
|
-
*/
|
|
40
|
-
function generateFromNoirAbi(outputPath: string, noirAbiPath: string, opts: GenerateCodeOptions = {}) {
|
|
41
|
-
const contractName = path.basename(noirAbiPath);
|
|
42
|
-
const currentHash = generateFileHash(noirAbiPath);
|
|
43
|
-
|
|
44
|
-
if (isCacheValid(contractName, currentHash) && !opts.force) {
|
|
45
|
-
console.log(`${contractName} has not changed. Skipping generation.`);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const contract = JSON.parse(readFileSync(noirAbiPath, 'utf8'));
|
|
50
|
-
const aztecAbi = loadContractArtifact(contract);
|
|
51
|
-
|
|
52
|
-
mkdirSync(outputPath, { recursive: true });
|
|
53
|
-
|
|
54
|
-
let relativeArtifactPath = path.relative(outputPath, noirAbiPath);
|
|
55
|
-
if (relativeArtifactPath === path.basename(noirAbiPath)) {
|
|
56
|
-
// Prepend ./ for local import if the folder is the same
|
|
57
|
-
relativeArtifactPath = `./${relativeArtifactPath}`;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const tsWrapper = generateTypescriptContractInterface(aztecAbi, relativeArtifactPath);
|
|
61
|
-
writeFileSync(`${outputPath}/${aztecAbi.name}.ts`, tsWrapper);
|
|
62
|
-
|
|
63
|
-
updateCache(contractName, currentHash);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function generateFileHash(filePath: string) {
|
|
67
|
-
const fileBuffer = readFileSync(filePath);
|
|
68
|
-
const hashSum = crypto.createHash('sha256');
|
|
69
|
-
hashSum.update(fileBuffer);
|
|
70
|
-
const hex = hashSum.digest('hex');
|
|
71
|
-
return hex;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function readCache(): void {
|
|
75
|
-
if (existsSync(cacheFilePath)) {
|
|
76
|
-
const cacheRaw = readFileSync(cacheFilePath, 'utf8');
|
|
77
|
-
cache = JSON.parse(cacheRaw);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function writeCache(): void {
|
|
82
|
-
writeFileSync(cacheFilePath, JSON.stringify(cache, null, 2), 'utf8');
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function isCacheValid(contractName: string, currentHash: string): boolean {
|
|
86
|
-
return cache[contractName] === currentHash;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function updateCache(contractName: string, hash: string): void {
|
|
90
|
-
cache[contractName] = hash;
|
|
91
|
-
}
|
package/src/cli/update/common.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tracks changes to dependencies
|
|
3
|
-
*/
|
|
4
|
-
export type DependencyChanges = {
|
|
5
|
-
/** Which file was changed */
|
|
6
|
-
file: string;
|
|
7
|
-
/** changes done to the file */
|
|
8
|
-
dependencies: Array<{
|
|
9
|
-
/** Name of the dependency being changed */
|
|
10
|
-
name: string;
|
|
11
|
-
/** Previous version of the dependency */
|
|
12
|
-
from: string;
|
|
13
|
-
/** New version of the dependency (after the update) */
|
|
14
|
-
to: string;
|
|
15
|
-
}>;
|
|
16
|
-
};
|
package/src/cli/update/github.ts
DELETED