@aztec/simulator 0.79.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { Fr } from '@aztec/foundation/fields';
4
- import { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
4
+ import { type ContractArtifact, type FunctionAbi, type FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
5
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
6
  import { type ContractClassPublic, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
7
7
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
@@ -56,7 +56,7 @@ export declare function randomMemoryUint32s(length: number): Uint32[];
56
56
  export declare function randomMemoryUint64s(length: number): Uint64[];
57
57
  export declare function randomMemoryFields(length: number): Field[];
58
58
  export declare function getFunctionSelector(functionName: string, contractArtifact: ContractArtifact): Promise<FunctionSelector>;
59
- export declare function getContractFunctionArtifact(functionName: string, contractArtifact: ContractArtifact): FunctionArtifact | undefined;
59
+ export declare function getContractFunctionArtifact(functionName: string, contractArtifact: ContractArtifact): FunctionArtifact | FunctionAbi | undefined;
60
60
  export declare function resolveContractAssertionMessage(functionName: string, revertReason: AvmRevertReason, output: Fr[], contractArtifact: ContractArtifact): string | undefined;
61
61
  export declare function getAvmTestContractFunctionSelector(functionName: string): Promise<FunctionSelector>;
62
62
  export declare function getAvmGadgetsTestContractFunctionSelector(functionName: string): Promise<FunctionSelector>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/fixtures/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { DEPLOYER_CONTRACT_ADDRESS, MAX_L2_GAS_PER_TX_PUBLIC_PORTION, PUBLIC_DISPATCH_SELECTOR } from '@aztec/constants';
2
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
- import { AvmGadgetsTestContractArtifact } from '@aztec/noir-contracts.js/AvmGadgetsTest';
5
- import { AvmTestContractArtifact } from '@aztec/noir-contracts.js/AvmTest';
6
- import { FunctionSelector } from '@aztec/stdlib/abi';
4
+ import { AvmGadgetsTestContract } from '@aztec/noir-contracts.js/AvmGadgetsTest';
5
+ import { AvmTestContract } from '@aztec/noir-contracts.js/AvmTest';
6
+ import { FunctionSelector, getAllFunctionAbis } from '@aztec/stdlib/abi';
7
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
8
  import { computeInitializationHash } from '@aztec/stdlib/contract';
9
9
  import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
@@ -79,7 +79,7 @@ export function randomMemoryFields(length) {
79
79
  ].map((_)=>new Field(Fr.random()));
80
80
  }
81
81
  export function getFunctionSelector(functionName, contractArtifact) {
82
- const fnArtifact = contractArtifact.functions.find((f)=>f.name === functionName);
82
+ const fnArtifact = getAllFunctionAbis(contractArtifact).find((f)=>f.name === functionName);
83
83
  assert(!!fnArtifact, `Function ${functionName} not found in ${contractArtifact.name}`);
84
84
  const params = fnArtifact.parameters;
85
85
  return FunctionSelector.fromNameAndParameters(fnArtifact.name, params);
@@ -87,7 +87,8 @@ export function getFunctionSelector(functionName, contractArtifact) {
87
87
  export function getContractFunctionArtifact(functionName, contractArtifact) {
88
88
  const artifact = contractArtifact.functions.find((f)=>f.name === functionName);
89
89
  if (!artifact) {
90
- return undefined;
90
+ const abi = getAllFunctionAbis(contractArtifact).find((f)=>f.name === functionName);
91
+ return abi || undefined;
91
92
  }
92
93
  return artifact;
93
94
  }
@@ -95,28 +96,28 @@ export function resolveContractAssertionMessage(functionName, revertReason, outp
95
96
  traverseCauseChain(revertReason, (cause)=>{
96
97
  revertReason = cause;
97
98
  });
98
- const functionArtifact = contractArtifact.functions.find((f)=>f.name === functionName);
99
+ const functionArtifact = getAllFunctionAbis(contractArtifact).find((f)=>f.name === functionName);
99
100
  if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
100
101
  return undefined;
101
102
  }
102
103
  return resolveAssertionMessageFromRevertData(output, functionArtifact);
103
104
  }
104
105
  export function getAvmTestContractFunctionSelector(functionName) {
105
- return getFunctionSelector(functionName, AvmTestContractArtifact);
106
+ return getFunctionSelector(functionName, AvmTestContract.artifactForPublic);
106
107
  }
107
108
  export function getAvmGadgetsTestContractFunctionSelector(functionName) {
108
- const artifact = AvmGadgetsTestContractArtifact.functions.find((f)=>f.name === functionName);
109
+ const artifact = getAllFunctionAbis(AvmGadgetsTestContract.artifactForPublic).find((f)=>f.name === functionName);
109
110
  assert(!!artifact, `Function ${functionName} not found in AvmGadgetsTestContractArtifact`);
110
111
  const params = artifact.parameters;
111
112
  return FunctionSelector.fromNameAndParameters(artifact.name, params);
112
113
  }
113
114
  export function getAvmTestContractArtifact(functionName) {
114
- const artifact = getContractFunctionArtifact(functionName, AvmTestContractArtifact);
115
+ const artifact = getContractFunctionArtifact(functionName, AvmTestContract.artifactForPublic);
115
116
  assert(!!artifact?.bytecode, `No bytecode found for function ${functionName}. Try re-running bootstrap.sh on the repository root.`);
116
117
  return artifact;
117
118
  }
118
119
  export function getAvmGadgetsTestContractArtifact(functionName) {
119
- const artifact = AvmGadgetsTestContractArtifact.functions.find((f)=>f.name === functionName);
120
+ const artifact = AvmGadgetsTestContract.artifactForPublic.functions.find((f)=>f.name === functionName);
120
121
  assert(!!artifact?.bytecode, `No bytecode found for function ${functionName}. Try re-running bootstrap.sh on the repository root.`);
121
122
  return artifact;
122
123
  }
@@ -129,13 +130,13 @@ export function getAvmGadgetsTestContractBytecode(functionName) {
129
130
  return artifact.bytecode;
130
131
  }
131
132
  export function resolveAvmTestContractAssertionMessage(functionName, revertReason, output) {
132
- return resolveContractAssertionMessage(functionName, revertReason, output, AvmTestContractArtifact);
133
+ return resolveContractAssertionMessage(functionName, revertReason, output, AvmTestContract.artifactForPublic);
133
134
  }
134
135
  export function resolveAvmGadgetsTestContractAssertionMessage(functionName, revertReason, output) {
135
136
  traverseCauseChain(revertReason, (cause)=>{
136
137
  revertReason = cause;
137
138
  });
138
- const functionArtifact = AvmGadgetsTestContractArtifact.functions.find((f)=>f.name === functionName);
139
+ const functionArtifact = AvmGadgetsTestContract.artifactForPublic.functions.find((f)=>f.name === functionName);
139
140
  if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
140
141
  return undefined;
141
142
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "0.79.0",
3
+ "version": "0.80.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./server": "./dest/server.js",
@@ -59,16 +59,16 @@
59
59
  ]
60
60
  },
61
61
  "dependencies": {
62
- "@aztec/constants": "0.79.0",
63
- "@aztec/foundation": "0.79.0",
64
- "@aztec/noir-acvm_js": "0.79.0",
65
- "@aztec/noir-noirc_abi": "0.79.0",
66
- "@aztec/noir-protocol-circuits-types": "0.79.0",
67
- "@aztec/noir-types": "0.79.0",
68
- "@aztec/protocol-contracts": "0.79.0",
69
- "@aztec/stdlib": "0.79.0",
70
- "@aztec/telemetry-client": "0.79.0",
71
- "@aztec/world-state": "0.79.0",
62
+ "@aztec/constants": "0.80.0",
63
+ "@aztec/foundation": "0.80.0",
64
+ "@aztec/noir-acvm_js": "0.80.0",
65
+ "@aztec/noir-noirc_abi": "0.80.0",
66
+ "@aztec/noir-protocol-circuits-types": "0.80.0",
67
+ "@aztec/noir-types": "0.80.0",
68
+ "@aztec/protocol-contracts": "0.80.0",
69
+ "@aztec/stdlib": "0.80.0",
70
+ "@aztec/telemetry-client": "0.80.0",
71
+ "@aztec/world-state": "0.80.0",
72
72
  "levelup": "^5.1.1",
73
73
  "lodash.clonedeep": "^4.5.0",
74
74
  "lodash.merge": "^4.6.2",
@@ -76,9 +76,9 @@
76
76
  "tslib": "^2.4.0"
77
77
  },
78
78
  "devDependencies": {
79
- "@aztec/kv-store": "0.79.0",
80
- "@aztec/merkle-tree": "0.79.0",
81
- "@aztec/noir-contracts.js": "0.79.0",
79
+ "@aztec/kv-store": "0.80.0",
80
+ "@aztec/merkle-tree": "0.80.0",
81
+ "@aztec/noir-contracts.js": "0.80.0",
82
82
  "@jest/globals": "^29.5.0",
83
83
  "@types/jest": "^29.5.0",
84
84
  "@types/levelup": "^5.1.3",
@@ -5,9 +5,15 @@ import {
5
5
  } from '@aztec/constants';
6
6
  import { EthAddress } from '@aztec/foundation/eth-address';
7
7
  import { Fr } from '@aztec/foundation/fields';
8
- import { AvmGadgetsTestContractArtifact } from '@aztec/noir-contracts.js/AvmGadgetsTest';
9
- import { AvmTestContractArtifact } from '@aztec/noir-contracts.js/AvmTest';
10
- import { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
8
+ import { AvmGadgetsTestContract } from '@aztec/noir-contracts.js/AvmGadgetsTest';
9
+ import { AvmTestContract } from '@aztec/noir-contracts.js/AvmTest';
10
+ import {
11
+ type ContractArtifact,
12
+ type FunctionAbi,
13
+ type FunctionArtifact,
14
+ FunctionSelector,
15
+ getAllFunctionAbis,
16
+ } from '@aztec/stdlib/abi';
11
17
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
12
18
  import {
13
19
  type ContractClassPublic,
@@ -147,7 +153,7 @@ export function getFunctionSelector(
147
153
  functionName: string,
148
154
  contractArtifact: ContractArtifact,
149
155
  ): Promise<FunctionSelector> {
150
- const fnArtifact = contractArtifact.functions.find(f => f.name === functionName)!;
156
+ const fnArtifact = getAllFunctionAbis(contractArtifact).find(f => f.name === functionName)!;
151
157
  assert(!!fnArtifact, `Function ${functionName} not found in ${contractArtifact.name}`);
152
158
  const params = fnArtifact.parameters;
153
159
  return FunctionSelector.fromNameAndParameters(fnArtifact.name, params);
@@ -156,10 +162,11 @@ export function getFunctionSelector(
156
162
  export function getContractFunctionArtifact(
157
163
  functionName: string,
158
164
  contractArtifact: ContractArtifact,
159
- ): FunctionArtifact | undefined {
165
+ ): FunctionArtifact | FunctionAbi | undefined {
160
166
  const artifact = contractArtifact.functions.find(f => f.name === functionName)!;
161
167
  if (!artifact) {
162
- return undefined;
168
+ const abi = getAllFunctionAbis(contractArtifact).find(f => f.name === functionName);
169
+ return abi || undefined;
163
170
  }
164
171
  return artifact;
165
172
  }
@@ -174,7 +181,7 @@ export function resolveContractAssertionMessage(
174
181
  revertReason = cause as AvmRevertReason;
175
182
  });
176
183
 
177
- const functionArtifact = contractArtifact.functions.find(f => f.name === functionName);
184
+ const functionArtifact = getAllFunctionAbis(contractArtifact).find(f => f.name === functionName);
178
185
  if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
179
186
  return undefined;
180
187
  }
@@ -183,18 +190,18 @@ export function resolveContractAssertionMessage(
183
190
  }
184
191
 
185
192
  export function getAvmTestContractFunctionSelector(functionName: string): Promise<FunctionSelector> {
186
- return getFunctionSelector(functionName, AvmTestContractArtifact);
193
+ return getFunctionSelector(functionName, AvmTestContract.artifactForPublic);
187
194
  }
188
195
 
189
196
  export function getAvmGadgetsTestContractFunctionSelector(functionName: string): Promise<FunctionSelector> {
190
- const artifact = AvmGadgetsTestContractArtifact.functions.find(f => f.name === functionName)!;
197
+ const artifact = getAllFunctionAbis(AvmGadgetsTestContract.artifactForPublic).find(f => f.name === functionName)!;
191
198
  assert(!!artifact, `Function ${functionName} not found in AvmGadgetsTestContractArtifact`);
192
199
  const params = artifact.parameters;
193
200
  return FunctionSelector.fromNameAndParameters(artifact.name, params);
194
201
  }
195
202
 
196
203
  export function getAvmTestContractArtifact(functionName: string): FunctionArtifact {
197
- const artifact = getContractFunctionArtifact(functionName, AvmTestContractArtifact);
204
+ const artifact = getContractFunctionArtifact(functionName, AvmTestContract.artifactForPublic) as FunctionArtifact;
198
205
  assert(
199
206
  !!artifact?.bytecode,
200
207
  `No bytecode found for function ${functionName}. Try re-running bootstrap.sh on the repository root.`,
@@ -203,7 +210,7 @@ export function getAvmTestContractArtifact(functionName: string): FunctionArtifa
203
210
  }
204
211
 
205
212
  export function getAvmGadgetsTestContractArtifact(functionName: string): FunctionArtifact {
206
- const artifact = AvmGadgetsTestContractArtifact.functions.find(f => f.name === functionName)!;
213
+ const artifact = AvmGadgetsTestContract.artifactForPublic.functions.find(f => f.name === functionName)!;
207
214
  assert(
208
215
  !!artifact?.bytecode,
209
216
  `No bytecode found for function ${functionName}. Try re-running bootstrap.sh on the repository root.`,
@@ -226,7 +233,7 @@ export function resolveAvmTestContractAssertionMessage(
226
233
  revertReason: AvmRevertReason,
227
234
  output: Fr[],
228
235
  ): string | undefined {
229
- return resolveContractAssertionMessage(functionName, revertReason, output, AvmTestContractArtifact);
236
+ return resolveContractAssertionMessage(functionName, revertReason, output, AvmTestContract.artifactForPublic);
230
237
  }
231
238
 
232
239
  export function resolveAvmGadgetsTestContractAssertionMessage(
@@ -238,7 +245,7 @@ export function resolveAvmGadgetsTestContractAssertionMessage(
238
245
  revertReason = cause as AvmRevertReason;
239
246
  });
240
247
 
241
- const functionArtifact = AvmGadgetsTestContractArtifact.functions.find(f => f.name === functionName);
248
+ const functionArtifact = AvmGadgetsTestContract.artifactForPublic.functions.find(f => f.name === functionName);
242
249
  if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
243
250
  return undefined;
244
251
  }
@@ -267,7 +274,8 @@ export async function createContractClassAndInstance(
267
274
  contractInstance: ContractInstanceWithAddress;
268
275
  contractAddressNullifier: Fr;
269
276
  }> {
270
- const bytecode = getContractFunctionArtifact(PUBLIC_DISPATCH_FN_NAME, contractArtifact)!.bytecode;
277
+ const bytecode = (getContractFunctionArtifact(PUBLIC_DISPATCH_FN_NAME, contractArtifact) as FunctionArtifact)!
278
+ .bytecode;
271
279
  const contractClass = await makeContractClassPublic(
272
280
  seed,
273
281
  /*publicDispatchFunction=*/ { bytecode, selector: new FunctionSelector(PUBLIC_DISPATCH_SELECTOR) },