@aztec/pxe 0.85.0-alpha-testnet.2 → 0.85.0-nightly.20250418

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 +1 @@
1
- {"version":3,"file":"build_private_kernel_reset_private_inputs.d.ts","sourceRoot":"","sources":["../../../src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,gCAAgC,EAErC,sCAAsC,EAGtC,KAAK,2BAA2B,EAkBjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,kBAAkB,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAiDvE,qBAAa,sCAAsC;IAY/C,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,8BAA8B;IAdxC,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,aAAa,CAAC,CAA6B;IAEnD,OAAO,CAAC,mBAAmB,CAAoE;IAC/F,OAAO,CAAC,oBAAoB,CAAoE;IAChG,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,uBAAuB,CAA8D;IAC7F,OAAO,CAAC,mBAAmB,CAA+B;gBAGhD,oBAAoB,EAAE,2BAA2B,CAAC,gCAAgC,CAAC,EACnF,cAAc,EAAE,0BAA0B,EAAE,EAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM;IAahD,UAAU,IAAI,OAAO;IAwBf,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAgElF,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,8BAA8B;IAoDtC,OAAO,CAAC,+BAA+B;IAoDvC,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,uBAAuB;IA6E/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,oBAAoB;CAmB7B"}
1
+ {"version":3,"file":"build_private_kernel_reset_private_inputs.d.ts","sourceRoot":"","sources":["../../../src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,gCAAgC,EAErC,sCAAsC,EAGtC,KAAK,2BAA2B,EAkBjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,kBAAkB,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAiDvE,qBAAa,sCAAsC;IAY/C,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,8BAA8B;IAdxC,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,aAAa,CAAC,CAA6B;IAEnD,OAAO,CAAC,mBAAmB,CAAoE;IAC/F,OAAO,CAAC,oBAAoB,CAAoE;IAChG,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,uBAAuB,CAA8D;IAC7F,OAAO,CAAC,mBAAmB,CAA+B;gBAGhD,oBAAoB,EAAE,2BAA2B,CAAC,gCAAgC,CAAC,EACnF,cAAc,EAAE,0BAA0B,EAAE,EAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM;IAahD,UAAU,IAAI,OAAO;IAwBf,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAkElF,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,8BAA8B;IAoDtC,OAAO,CAAC,+BAA+B;IAoDvC,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,uBAAuB;IA6E/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,oBAAoB;CAmB7B"}
@@ -96,7 +96,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
96
96
  // The dimensions found must be big enough to reset all values, i.e. empty remainder.
97
97
  const allowRemainder = isInner;
98
98
  const dimensions = findPrivateKernelResetDimensions(this.requestedDimensions, privateKernelResetDimensionsConfig, isInner, allowRemainder);
99
- const previousVkMembershipWitness = await oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey);
99
+ const previousVkMembershipWitness = await oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey.keyAsFields);
100
100
  const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, this.previousKernelOutput.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
101
101
  this.reduceReadRequestStates(this.noteHashResetStates, dimensions.NOTE_HASH_PENDING_AMOUNT, dimensions.NOTE_HASH_SETTLED_AMOUNT);
102
102
  this.reduceReadRequestStates(this.nullifierResetStates, dimensions.NULLIFIER_PENDING_AMOUNT, dimensions.NULLIFIER_SETTLED_AMOUNT);
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAKL,KAAK,iCAAiC,EAKtC,KAAK,oCAAoC,EAE1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,GAAG,CAAuD;gBAGxD,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ;IAG5B;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC;YAgNrE,qBAAqB;CA2CpC"}
1
+ {"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAKL,KAAK,iCAAiC,EAKtC,KAAK,oCAAoC,EAE1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,GAAG,CAAuD;gBAGxD,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ;IAG5B;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC;YAwNrE,qBAAqB;CA2CpC"}
@@ -1,4 +1,4 @@
1
- import { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, VK_TREE_HEIGHT } from '@aztec/constants';
1
+ import { VK_TREE_HEIGHT } from '@aztec/constants';
2
2
  import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { createLogger } from '@aztec/foundation/log';
@@ -13,11 +13,11 @@ import { hashVK } from '@aztec/stdlib/hash';
13
13
  import { PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelTailCircuitPrivateInputs, PrivateVerificationKeyHints } from '@aztec/stdlib/kernel';
14
14
  import { ClientIvcProof } from '@aztec/stdlib/proofs';
15
15
  import { collectNoteHashLeafIndexMap, collectNoteHashNullifierCounterMap, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
16
- import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
16
+ import { VerificationKeyAsFields, VerificationKeyData } from '@aztec/stdlib/vks';
17
17
  import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_kernel_reset_private_inputs.js';
18
18
  const NULL_SIMULATE_OUTPUT = {
19
19
  publicInputs: PrivateKernelCircuitPublicInputs.empty(),
20
- verificationKey: VerificationKeyAsFields.makeEmpty(CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS),
20
+ verificationKey: VerificationKeyData.empty(),
21
21
  outputWitness: new Map(),
22
22
  bytecode: Buffer.from([])
23
23
  };
@@ -74,7 +74,8 @@ const NULL_SIMULATE_OUTPUT = {
74
74
  executionSteps.push({
75
75
  functionName: 'private_kernel_reset',
76
76
  bytecode: output.bytecode,
77
- witness: output.outputWitness
77
+ witness: output.outputWitness,
78
+ vk: output.verificationKey.keyAsBytes
78
79
  });
79
80
  resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, executionStack, noteHashNullifierCounterMap, validationRequestsSplitCounter);
80
81
  }
@@ -87,7 +88,8 @@ const NULL_SIMULATE_OUTPUT = {
87
88
  executionSteps.push({
88
89
  functionName: functionName,
89
90
  bytecode: currentExecution.acir,
90
- witness: currentExecution.partialWitness
91
+ witness: currentExecution.partialWitness,
92
+ vk: currentExecution.vk
91
93
  });
92
94
  const privateCallData = await this.createPrivateCallData(currentExecution);
93
95
  if (firstIteration) {
@@ -98,10 +100,11 @@ const NULL_SIMULATE_OUTPUT = {
98
100
  executionSteps.push({
99
101
  functionName: 'private_kernel_init',
100
102
  bytecode: output.bytecode,
101
- witness: output.outputWitness
103
+ witness: output.outputWitness,
104
+ vk: output.verificationKey.keyAsBytes
102
105
  });
103
106
  } else {
104
- const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
107
+ const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey.keyAsFields);
105
108
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
106
109
  const proofInput = new PrivateKernelInnerCircuitPrivateInputs(previousKernelData, privateCallData);
107
110
  pushTestData('private-kernel-inputs-inner', proofInput);
@@ -109,7 +112,8 @@ const NULL_SIMULATE_OUTPUT = {
109
112
  executionSteps.push({
110
113
  functionName: 'private_kernel_inner',
111
114
  bytecode: output.bytecode,
112
- witness: output.outputWitness
115
+ witness: output.outputWitness,
116
+ vk: output.verificationKey.keyAsBytes
113
117
  });
114
118
  }
115
119
  firstIteration = false;
@@ -122,7 +126,8 @@ const NULL_SIMULATE_OUTPUT = {
122
126
  executionSteps.push({
123
127
  functionName: 'private_kernel_reset',
124
128
  bytecode: output.bytecode,
125
- witness: output.outputWitness
129
+ witness: output.outputWitness,
130
+ vk: output.verificationKey.keyAsBytes
126
131
  });
127
132
  resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, validationRequestsSplitCounter);
128
133
  }
@@ -133,7 +138,7 @@ const NULL_SIMULATE_OUTPUT = {
133
138
  output.publicInputs.feePayer = new AztecAddress(Fr.MAX_FIELD_VALUE);
134
139
  }
135
140
  // Private tail.
136
- const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
141
+ const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey.keyAsFields);
137
142
  const previousKernelData = new PrivateKernelData(output.publicInputs, output.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
138
143
  this.log.debug(`Calling private kernel tail with hwm ${previousKernelData.publicInputs.minRevertibleSideEffectCounter}`);
139
144
  const privateInputs = new PrivateKernelTailCircuitPrivateInputs(previousKernelData);
@@ -142,7 +147,8 @@ const NULL_SIMULATE_OUTPUT = {
142
147
  executionSteps.push({
143
148
  functionName: 'private_kernel_tail',
144
149
  bytecode: tailOutput.bytecode,
145
- witness: tailOutput.outputWitness
150
+ witness: tailOutput.outputWitness,
151
+ vk: tailOutput.verificationKey.keyAsBytes
146
152
  });
147
153
  if (profileMode == 'gates' || profileMode == 'full') {
148
154
  for (const entry of executionSteps){
@@ -171,7 +177,7 @@ const NULL_SIMULATE_OUTPUT = {
171
177
  publicInputs: tailOutput.publicInputs,
172
178
  executionSteps,
173
179
  clientIvcProof,
174
- verificationKey: tailOutput.verificationKey
180
+ vk: tailOutput.verificationKey.keyAsBytes
175
181
  };
176
182
  }
177
183
  async createPrivateCallData({ publicInputs, vk: vkAsBuffer }) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/pxe",
3
- "version": "0.85.0-alpha-testnet.2",
3
+ "version": "0.85.0-nightly.20250418",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./server": "./dest/entrypoints/server/index.js",
@@ -14,8 +14,6 @@
14
14
  "build": "yarn clean && yarn generate && tsc -b",
15
15
  "build:dev": "tsc -b --watch",
16
16
  "clean": "rm -rf ./dest .tsbuildinfo ./src/config/package_info.ts",
17
- "formatting": "run -T prettier --check ./src && run -T eslint ./src",
18
- "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
19
17
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
20
18
  "start": "LOG_LEVEL=${LOG_LEVEL:-debug} && node ./dest/bin/index.js",
21
19
  "generate": "node ./scripts/generate_package_info.js"
@@ -59,20 +57,19 @@
59
57
  ]
60
58
  },
61
59
  "dependencies": {
62
- "@aztec/bb-prover": "0.85.0-alpha-testnet.2",
63
- "@aztec/bb.js": "0.85.0-alpha-testnet.2",
64
- "@aztec/builder": "0.85.0-alpha-testnet.2",
65
- "@aztec/constants": "0.85.0-alpha-testnet.2",
66
- "@aztec/ethereum": "0.85.0-alpha-testnet.2",
67
- "@aztec/foundation": "0.85.0-alpha-testnet.2",
68
- "@aztec/key-store": "0.85.0-alpha-testnet.2",
69
- "@aztec/kv-store": "0.85.0-alpha-testnet.2",
70
- "@aztec/noir-protocol-circuits-types": "0.85.0-alpha-testnet.2",
71
- "@aztec/noir-types": "0.85.0-alpha-testnet.2",
72
- "@aztec/protocol-contracts": "0.85.0-alpha-testnet.2",
73
- "@aztec/simulator": "0.85.0-alpha-testnet.2",
74
- "@aztec/stdlib": "0.85.0-alpha-testnet.2",
75
- "@msgpack/msgpack": "^3.0.0-beta2",
60
+ "@aztec/bb-prover": "0.85.0-nightly.20250418",
61
+ "@aztec/bb.js": "0.85.0-nightly.20250418",
62
+ "@aztec/builder": "0.85.0-nightly.20250418",
63
+ "@aztec/constants": "0.85.0-nightly.20250418",
64
+ "@aztec/ethereum": "0.85.0-nightly.20250418",
65
+ "@aztec/foundation": "0.85.0-nightly.20250418",
66
+ "@aztec/key-store": "0.85.0-nightly.20250418",
67
+ "@aztec/kv-store": "0.85.0-nightly.20250418",
68
+ "@aztec/noir-protocol-circuits-types": "0.85.0-nightly.20250418",
69
+ "@aztec/noir-types": "0.85.0-nightly.20250418",
70
+ "@aztec/protocol-contracts": "0.85.0-nightly.20250418",
71
+ "@aztec/simulator": "0.85.0-nightly.20250418",
72
+ "@aztec/stdlib": "0.85.0-nightly.20250418",
76
73
  "koa": "^2.16.1",
77
74
  "koa-router": "^12.0.0",
78
75
  "lodash.omit": "^4.5.0",
@@ -81,7 +78,7 @@
81
78
  "viem": "2.23.7"
82
79
  },
83
80
  "devDependencies": {
84
- "@aztec/noir-contracts.js": "0.85.0-alpha-testnet.2",
81
+ "@aztec/noir-contracts.js": "0.85.0-nightly.20250418",
85
82
  "@jest/globals": "^29.5.0",
86
83
  "@types/jest": "^29.5.0",
87
84
  "@types/lodash.omit": "^4.5.7",
@@ -163,7 +163,9 @@ export class PrivateKernelResetPrivateInputsBuilder {
163
163
  allowRemainder,
164
164
  );
165
165
 
166
- const previousVkMembershipWitness = await oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey);
166
+ const previousVkMembershipWitness = await oracle.getVkMembershipWitness(
167
+ this.previousKernelOutput.verificationKey.keyAsFields,
168
+ );
167
169
  const previousKernelData = new PrivateKernelData(
168
170
  this.previousKernelOutput.publicInputs,
169
171
  this.previousKernelOutput.verificationKey,
@@ -1,4 +1,4 @@
1
- import { CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS, VK_TREE_HEIGHT } from '@aztec/constants';
1
+ import { VK_TREE_HEIGHT } from '@aztec/constants';
2
2
  import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { createLogger } from '@aztec/foundation/log';
@@ -33,14 +33,14 @@ import {
33
33
  collectNoteHashNullifierCounterMap,
34
34
  getFinalMinRevertibleSideEffectCounter,
35
35
  } from '@aztec/stdlib/tx';
36
- import { VerificationKeyAsFields } from '@aztec/stdlib/vks';
36
+ import { VerificationKeyAsFields, VerificationKeyData } from '@aztec/stdlib/vks';
37
37
 
38
38
  import { PrivateKernelResetPrivateInputsBuilder } from './hints/build_private_kernel_reset_private_inputs.js';
39
39
  import type { PrivateKernelOracle } from './private_kernel_oracle.js';
40
40
 
41
41
  const NULL_SIMULATE_OUTPUT: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs> = {
42
42
  publicInputs: PrivateKernelCircuitPublicInputs.empty(),
43
- verificationKey: VerificationKeyAsFields.makeEmpty(CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS),
43
+ verificationKey: VerificationKeyData.empty(),
44
44
  outputWitness: new Map(),
45
45
  bytecode: Buffer.from([]),
46
46
  };
@@ -123,6 +123,7 @@ export class PrivateKernelExecutionProver {
123
123
  functionName: 'private_kernel_reset',
124
124
  bytecode: output.bytecode,
125
125
  witness: output.outputWitness,
126
+ vk: output.verificationKey.keyAsBytes,
126
127
  });
127
128
  resetBuilder = new PrivateKernelResetPrivateInputsBuilder(
128
129
  output,
@@ -146,6 +147,7 @@ export class PrivateKernelExecutionProver {
146
147
  functionName: functionName!,
147
148
  bytecode: currentExecution.acir,
148
149
  witness: currentExecution.partialWitness,
150
+ vk: currentExecution.vk,
149
151
  });
150
152
 
151
153
  const privateCallData = await this.createPrivateCallData(currentExecution);
@@ -173,9 +175,12 @@ export class PrivateKernelExecutionProver {
173
175
  functionName: 'private_kernel_init',
174
176
  bytecode: output.bytecode,
175
177
  witness: output.outputWitness,
178
+ vk: output.verificationKey.keyAsBytes,
176
179
  });
177
180
  } else {
178
- const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
181
+ const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(
182
+ output.verificationKey.keyAsFields,
183
+ );
179
184
  const previousKernelData = new PrivateKernelData(
180
185
  output.publicInputs,
181
186
  output.verificationKey,
@@ -194,6 +199,7 @@ export class PrivateKernelExecutionProver {
194
199
  functionName: 'private_kernel_inner',
195
200
  bytecode: output.bytecode,
196
201
  witness: output.outputWitness,
202
+ vk: output.verificationKey.keyAsBytes,
197
203
  });
198
204
  }
199
205
  firstIteration = false;
@@ -216,6 +222,7 @@ export class PrivateKernelExecutionProver {
216
222
  functionName: 'private_kernel_reset',
217
223
  bytecode: output.bytecode,
218
224
  witness: output.outputWitness,
225
+ vk: output.verificationKey.keyAsBytes,
219
226
  });
220
227
 
221
228
  resetBuilder = new PrivateKernelResetPrivateInputsBuilder(
@@ -233,7 +240,7 @@ export class PrivateKernelExecutionProver {
233
240
  output.publicInputs.feePayer = new AztecAddress(Fr.MAX_FIELD_VALUE);
234
241
  }
235
242
  // Private tail.
236
- const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey);
243
+ const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(output.verificationKey.keyAsFields);
237
244
  const previousKernelData = new PrivateKernelData(
238
245
  output.publicInputs,
239
246
  output.verificationKey,
@@ -257,6 +264,7 @@ export class PrivateKernelExecutionProver {
257
264
  functionName: 'private_kernel_tail',
258
265
  bytecode: tailOutput.bytecode,
259
266
  witness: tailOutput.outputWitness,
267
+ vk: tailOutput.verificationKey.keyAsBytes,
260
268
  });
261
269
 
262
270
  if (profileMode == 'gates' || profileMode == 'full') {
@@ -289,7 +297,7 @@ export class PrivateKernelExecutionProver {
289
297
  publicInputs: tailOutput.publicInputs,
290
298
  executionSteps,
291
299
  clientIvcProof,
292
- verificationKey: tailOutput.verificationKey,
300
+ vk: tailOutput.verificationKey.keyAsBytes,
293
301
  };
294
302
  }
295
303