@aztec/txe 0.0.1-commit.f504929 → 0.0.1-commit.f81dbcf

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.
@@ -23,9 +23,9 @@ export declare class TXEArchiver extends ArchiverDataSourceBase {
23
23
  }>;
24
24
  getL1Timestamp(): Promise<bigint | undefined>;
25
25
  getL2Tips(): Promise<L2Tips>;
26
- getL2SlotNumber(): Promise<SlotNumber | undefined>;
27
- getL2EpochNumber(): Promise<EpochNumber | undefined>;
26
+ getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
27
+ getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
28
28
  isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
29
29
  syncImmediate(): Promise<void>;
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBaUQsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RyxPQUFPLEVBQW9CLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQW9DLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRTs7OztHQUlHO0FBQ0gscUJBQWEsV0FBWSxTQUFRLHNCQUFzQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBNEM7SUFFcEUsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLEVBR2hDO0lBRVksY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFaEg7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRTdDO0lBRU0sa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUvQztJQUVNLGNBQWMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFbEQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUM7UUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBRTdEO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRW5EO0lBRVksU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FnQ3hDO0lBRU0sZUFBZSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBRXhEO0lBRU0sZ0JBQWdCLElBQUksT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FFMUQ7SUFFTSxlQUFlLENBQUMsWUFBWSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWxFO0lBRU0sYUFBYSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEM7Q0FDRiJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBaUQsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RyxPQUFPLEVBQW9CLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQW9DLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRTs7OztHQUlHO0FBQ0gscUJBQWEsV0FBWSxTQUFRLHNCQUFzQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBNEM7SUFFcEUsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLEVBR2hDO0lBRVksY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFaEg7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRTdDO0lBRU0sa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUvQztJQUVNLGNBQWMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFbEQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUM7UUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBRTdEO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRW5EO0lBRVksU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FnQ3hDO0lBRU0scUJBQXFCLElBQUksT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FFOUQ7SUFFTSxzQkFBc0IsSUFBSSxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUVoRTtJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFbEU7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVwQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiD,MAAM,iBAAiB,CAAC;AAExG,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAoC,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,sBAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,YAAY,EAAE,EAAE,iBAAiB,EAGhC;IAEY,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhH;IAEM,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE7C;IAEM,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE/C;IAEM,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAElD;IAEM,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAE7D;IAEM,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEY,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAgCxC;IAEM,eAAe,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAExD;IAEM,gBAAgB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE1D;IAEM,eAAe,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEM,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;CACF"}
1
+ {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiD,MAAM,iBAAiB,CAAC;AAExG,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAoC,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,sBAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,YAAY,EAAE,EAAE,iBAAiB,EAGhC;IAEY,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhH;IAEM,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE7C;IAEM,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE/C;IAEM,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAElD;IAEM,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAE7D;IAEM,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEY,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAgCxC;IAEM,qBAAqB,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAE9D;IAEM,sBAAsB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAEhE;IAEM,eAAe,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEM,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;CACF"}
@@ -9,9 +9,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
9
9
  */ export class TXEArchiver extends ArchiverDataSourceBase {
10
10
  updater = new ArchiverDataStoreUpdater(this.store);
11
11
  constructor(db){
12
- const store = new KVArchiverDataStore(db, 9999, {
13
- epochDuration: 32
14
- });
12
+ const store = new KVArchiverDataStore(db, 9999);
15
13
  super(store);
16
14
  }
17
15
  async addCheckpoints(checkpoints, result) {
@@ -72,11 +70,11 @@ import { Fr } from '@aztec/foundation/curves/bn254';
72
70
  checkpointed: tipId
73
71
  };
74
72
  }
75
- getL2SlotNumber() {
76
- throw new Error('TXE Archiver does not implement "getL2SlotNumber"');
73
+ getSyncedL2SlotNumber() {
74
+ throw new Error('TXE Archiver does not implement "getSyncedL2SlotNumber"');
77
75
  }
78
- getL2EpochNumber() {
79
- throw new Error('TXE Archiver does not implement "getL2EpochNumber"');
76
+ getSyncedL2EpochNumber() {
77
+ throw new Error('TXE Archiver does not implement "getSyncedL2EpochNumber"');
80
78
  }
81
79
  isEpochComplete(_epochNumber) {
82
80
  throw new Error('TXE Archiver does not implement "isEpochComplete"');
@@ -98,7 +98,7 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
98
98
  const chainId = new Fr(await stateMachine.node.getChainId());
99
99
  const initialJobId = jobCoordinator.beginJob();
100
100
  const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map());
101
- await topLevelOracleHandler.advanceBlocksBy(1);
101
+ await topLevelOracleHandler.txeAdvanceBlocksBy(1);
102
102
  return new TXESession(createLogger('txe:session'), stateMachine, topLevelOracleHandler, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobCoordinator, initialJobId, version, chainId, nextBlockTimestamp);
103
103
  }
104
104
  /**
@@ -276,8 +276,8 @@ import { makeTxEffect } from './utils/tx_effect_creation.js';
276
276
  }
277
277
  // Note that while all public and private contexts do is build a single block that we then process when exiting
278
278
  // those, the top level context performs a large number of actions not captured in the following 'close' call. Among
279
- // others, it will create empty blocks (via `advanceBlocksBy` and `deploy`), create blocks with transactions via
280
- // `privateCallNewFlow` and `publicCallNewFlow`, add accounts to PXE via `addAccount`, etc. This is a
279
+ // others, it will create empty blocks (via `txeAdvanceBlocksBy` and `deploy`), create blocks with transactions via
280
+ // `txePrivateCallNewFlow` and `txePublicCallNewFlow`, add accounts to PXE via `txeAddAccount`, etc. This is a
281
281
  // slight inconsistency in the working model of this class, but is not too bad.
282
282
  // TODO: it's quite unfortunate that we need to capture the authwits created to later pass them again when the top
283
283
  // level context is re-created. This is because authwits create a temporary utility context that'd otherwise reset
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/txe",
3
- "version": "0.0.1-commit.f504929",
3
+ "version": "0.0.1-commit.f81dbcf",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "bin": "./dest/bin/index.js",
@@ -61,20 +61,20 @@
61
61
  ]
62
62
  },
63
63
  "dependencies": {
64
- "@aztec/accounts": "0.0.1-commit.f504929",
65
- "@aztec/archiver": "0.0.1-commit.f504929",
66
- "@aztec/aztec-node": "0.0.1-commit.f504929",
67
- "@aztec/aztec.js": "0.0.1-commit.f504929",
68
- "@aztec/bb-prover": "0.0.1-commit.f504929",
69
- "@aztec/constants": "0.0.1-commit.f504929",
70
- "@aztec/foundation": "0.0.1-commit.f504929",
71
- "@aztec/key-store": "0.0.1-commit.f504929",
72
- "@aztec/kv-store": "0.0.1-commit.f504929",
73
- "@aztec/protocol-contracts": "0.0.1-commit.f504929",
74
- "@aztec/pxe": "0.0.1-commit.f504929",
75
- "@aztec/simulator": "0.0.1-commit.f504929",
76
- "@aztec/stdlib": "0.0.1-commit.f504929",
77
- "@aztec/world-state": "0.0.1-commit.f504929",
64
+ "@aztec/accounts": "0.0.1-commit.f81dbcf",
65
+ "@aztec/archiver": "0.0.1-commit.f81dbcf",
66
+ "@aztec/aztec-node": "0.0.1-commit.f81dbcf",
67
+ "@aztec/aztec.js": "0.0.1-commit.f81dbcf",
68
+ "@aztec/bb-prover": "0.0.1-commit.f81dbcf",
69
+ "@aztec/constants": "0.0.1-commit.f81dbcf",
70
+ "@aztec/foundation": "0.0.1-commit.f81dbcf",
71
+ "@aztec/key-store": "0.0.1-commit.f81dbcf",
72
+ "@aztec/kv-store": "0.0.1-commit.f81dbcf",
73
+ "@aztec/protocol-contracts": "0.0.1-commit.f81dbcf",
74
+ "@aztec/pxe": "0.0.1-commit.f81dbcf",
75
+ "@aztec/simulator": "0.0.1-commit.f81dbcf",
76
+ "@aztec/stdlib": "0.0.1-commit.f81dbcf",
77
+ "@aztec/world-state": "0.0.1-commit.f81dbcf",
78
78
  "zod": "^3.23.8"
79
79
  },
80
80
  "devDependencies": {
package/src/index.ts CHANGED
@@ -32,7 +32,6 @@ import {
32
32
  type ForeignCallResult,
33
33
  ForeignCallResultSchema,
34
34
  type ForeignCallSingle,
35
- addressFromSingle,
36
35
  fromArray,
37
36
  fromSingle,
38
37
  toSingle,
@@ -106,8 +105,6 @@ class TXEDispatcher {
106
105
 
107
106
  const decodedArgs = fromArray(inputs[3] as ForeignCallArray);
108
107
  const secret = fromSingle(inputs[4] as ForeignCallSingle);
109
- const salt = fromSingle(inputs[5] as ForeignCallSingle);
110
- const deployer = addressFromSingle(inputs[6] as ForeignCallSingle);
111
108
  const publicKeys = secret.equals(Fr.ZERO) ? PublicKeys.default() : (await deriveKeys(secret)).publicKeys;
112
109
  const publicKeysHash = await publicKeys.hash();
113
110
 
@@ -138,7 +135,7 @@ class TXEDispatcher {
138
135
 
139
136
  const cacheKey = `${contractDirectory ?? ''}-${contractFilename}-${initializer}-${decodedArgs
140
137
  .map(arg => arg.toString())
141
- .join('-')}-${publicKeysHash}-${salt}-${deployer}-${fileHash}`;
138
+ .join('-')}-${publicKeysHash}-${fileHash}`;
142
139
 
143
140
  let instance;
144
141
  let artifact: ContractArtifactWithHash;
@@ -164,10 +161,10 @@ class TXEDispatcher {
164
161
  const computedInstance = await getContractInstanceFromInstantiationParams(computedArtifact, {
165
162
  constructorArgs: decodedArgs,
166
163
  skipArgsDecoding: true,
167
- salt,
164
+ salt: Fr.ONE,
168
165
  publicKeys,
169
166
  constructorArtifact: initializer ? initializer : undefined,
170
- deployer,
167
+ deployer: AztecAddress.ZERO,
171
168
  });
172
169
  const result = { artifact: computedArtifact, instance: computedInstance };
173
170
  TXEArtifactsCache.set(cacheKey, result);
@@ -250,11 +247,11 @@ class TXEDispatcher {
250
247
  }
251
248
 
252
249
  switch (functionName) {
253
- case 'aztec_txe_deploy': {
250
+ case 'txeDeploy': {
254
251
  await this.#processDeployInputs(callData);
255
252
  break;
256
253
  }
257
- case 'aztec_txe_addAccount': {
254
+ case 'txeAddAccount': {
258
255
  await this.#processAddAccountInputs(callData);
259
256
  break;
260
257
  }
@@ -24,18 +24,18 @@ import type { UInt64 } from '@aztec/stdlib/types';
24
24
  export interface IAvmExecutionOracle {
25
25
  isAvm: true;
26
26
 
27
- address(): Promise<AztecAddress>;
28
- sender(): Promise<AztecAddress>;
29
- blockNumber(): Promise<BlockNumber>;
30
- timestamp(): Promise<bigint>;
31
- isStaticCall(): Promise<boolean>;
32
- chainId(): Promise<Fr>;
33
- version(): Promise<Fr>;
34
- emitNullifier(nullifier: Fr): Promise<void>;
35
- emitNoteHash(noteHash: Fr): Promise<void>;
36
- nullifierExists(siloedNullifier: Fr): Promise<boolean>;
37
- storageWrite(slot: Fr, value: Fr): Promise<void>;
38
- storageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr>;
27
+ avmOpcodeAddress(): Promise<AztecAddress>;
28
+ avmOpcodeSender(): Promise<AztecAddress>;
29
+ avmOpcodeBlockNumber(): Promise<BlockNumber>;
30
+ avmOpcodeTimestamp(): Promise<bigint>;
31
+ avmOpcodeIsStaticCall(): Promise<boolean>;
32
+ avmOpcodeChainId(): Promise<Fr>;
33
+ avmOpcodeVersion(): Promise<Fr>;
34
+ avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
35
+ avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
36
+ avmOpcodeNullifierExists(siloedNullifier: Fr): Promise<boolean>;
37
+ avmOpcodeStorageWrite(slot: Fr, value: Fr): Promise<void>;
38
+ avmOpcodeStorageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr>;
39
39
  }
40
40
 
41
41
  /**
@@ -44,23 +44,27 @@ export interface IAvmExecutionOracle {
44
44
  export interface ITxeExecutionOracle {
45
45
  isTxe: true;
46
46
 
47
- getDefaultAddress(): AztecAddress;
48
- getNextBlockNumber(): Promise<BlockNumber>;
49
- getNextBlockTimestamp(): Promise<UInt64>;
50
- advanceBlocksBy(blocks: number): Promise<void>;
51
- advanceTimestampBy(duration: UInt64): void;
52
- deploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, foreignSecret: Fr): Promise<void>;
53
- createAccount(secret: Fr): Promise<CompleteAddress>;
54
- addAccount(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr): Promise<CompleteAddress>;
55
- addAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
56
- getLastBlockTimestamp(): Promise<bigint>;
57
- getLastTxEffects(): Promise<{
47
+ txeGetDefaultAddress(): AztecAddress;
48
+ txeGetNextBlockNumber(): Promise<BlockNumber>;
49
+ txeGetNextBlockTimestamp(): Promise<UInt64>;
50
+ txeAdvanceBlocksBy(blocks: number): Promise<void>;
51
+ txeAdvanceTimestampBy(duration: UInt64): void;
52
+ txeDeploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, foreignSecret: Fr): Promise<void>;
53
+ txeCreateAccount(secret: Fr): Promise<CompleteAddress>;
54
+ txeAddAccount(
55
+ artifact: ContractArtifact,
56
+ instance: ContractInstanceWithAddress,
57
+ secret: Fr,
58
+ ): Promise<CompleteAddress>;
59
+ txeAddAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
60
+ txeGetLastBlockTimestamp(): Promise<bigint>;
61
+ txeGetLastTxEffects(): Promise<{
58
62
  txHash: TxHash;
59
63
  noteHashes: Fr[];
60
64
  nullifiers: Fr[];
61
65
  }>;
62
- getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
63
- privateCallNewFlow(
66
+ txeGetPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
67
+ txePrivateCallNewFlow(
64
68
  from: AztecAddress,
65
69
  targetContractAddress: AztecAddress,
66
70
  functionSelector: FunctionSelector,
@@ -69,13 +73,13 @@ export interface ITxeExecutionOracle {
69
73
  isStaticCall: boolean,
70
74
  jobId: string,
71
75
  ): Promise<Fr[]>;
72
- executeUtilityFunction(
76
+ txeExecuteUtilityFunction(
73
77
  targetContractAddress: AztecAddress,
74
78
  functionSelector: FunctionSelector,
75
79
  args: Fr[],
76
80
  jobId: string,
77
81
  ): Promise<Fr[]>;
78
- publicCallNewFlow(
82
+ txePublicCallNewFlow(
79
83
  from: AztecAddress,
80
84
  targetContractAddress: AztecAddress,
81
85
  calldata: Fr[],
@@ -39,46 +39,46 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
39
39
  });
40
40
  }
41
41
 
42
- address(): Promise<AztecAddress> {
42
+ avmOpcodeAddress(): Promise<AztecAddress> {
43
43
  return Promise.resolve(this.contractAddress);
44
44
  }
45
45
 
46
- sender(): Promise<AztecAddress> {
46
+ avmOpcodeSender(): Promise<AztecAddress> {
47
47
  return Promise.resolve(AztecAddress.ZERO); // todo: change?
48
48
  }
49
49
 
50
- blockNumber(): Promise<BlockNumber> {
50
+ avmOpcodeBlockNumber(): Promise<BlockNumber> {
51
51
  return Promise.resolve(this.globalVariables.blockNumber);
52
52
  }
53
53
 
54
- timestamp(): Promise<bigint> {
54
+ avmOpcodeTimestamp(): Promise<bigint> {
55
55
  return Promise.resolve(this.globalVariables.timestamp);
56
56
  }
57
57
 
58
- isStaticCall(): Promise<boolean> {
58
+ avmOpcodeIsStaticCall(): Promise<boolean> {
59
59
  return Promise.resolve(false);
60
60
  }
61
61
 
62
- chainId(): Promise<Fr> {
62
+ avmOpcodeChainId(): Promise<Fr> {
63
63
  return Promise.resolve(this.globalVariables.chainId);
64
64
  }
65
65
 
66
- version(): Promise<Fr> {
66
+ avmOpcodeVersion(): Promise<Fr> {
67
67
  return Promise.resolve(this.globalVariables.version);
68
68
  }
69
69
 
70
- async emitNullifier(nullifier: Fr) {
70
+ async avmOpcodeEmitNullifier(nullifier: Fr) {
71
71
  const siloedNullifier = await siloNullifier(this.contractAddress, nullifier);
72
72
  this.transientSiloedNullifiers.push(siloedNullifier);
73
73
  }
74
74
 
75
- async emitNoteHash(noteHash: Fr) {
75
+ async avmOpcodeEmitNoteHash(noteHash: Fr) {
76
76
  const siloedNoteHash = await siloNoteHash(this.contractAddress, noteHash);
77
77
  // TODO: make the note hash unique - they are only siloed right now
78
78
  this.transientUniqueNoteHashes.push(siloedNoteHash);
79
79
  }
80
80
 
81
- async nullifierExists(siloedNullifier: Fr): Promise<boolean> {
81
+ async avmOpcodeNullifierExists(siloedNullifier: Fr): Promise<boolean> {
82
82
  const treeIndex = (
83
83
  await this.forkedWorldTrees.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, [siloedNullifier.toBuffer()])
84
84
  )[0];
@@ -87,7 +87,7 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
87
87
  return treeIndex !== undefined || transientIndex !== undefined;
88
88
  }
89
89
 
90
- async storageWrite(slot: Fr, value: Fr) {
90
+ async avmOpcodeStorageWrite(slot: Fr, value: Fr) {
91
91
  this.logger.debug('AVM storage write', { slot, value });
92
92
 
93
93
  const dataWrite = new PublicDataWrite(await computePublicDataTreeLeafSlot(this.contractAddress, slot), value);
@@ -99,7 +99,7 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
99
99
  ]);
100
100
  }
101
101
 
102
- async storageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr> {
102
+ async avmOpcodeStorageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr> {
103
103
  const leafSlot = await computePublicDataTreeLeafSlot(contractAddress, slot);
104
104
 
105
105
  const lowLeafResult = await this.forkedWorldTrees.getPreviousValueIndex(
@@ -116,7 +116,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
116
116
  this.logger.debug('Entering Top Level Context');
117
117
  }
118
118
 
119
- assertCompatibleOracleVersion(version: number): void {
119
+ utilityAssertCompatibleOracleVersion(version: number): void {
120
120
  if (version !== ORACLE_VERSION) {
121
121
  throw new Error(
122
122
  `Incompatible oracle version. TXE is using version '${ORACLE_VERSION}', but got a request for '${version}'.`,
@@ -126,12 +126,12 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
126
126
 
127
127
  // This is typically only invoked in private contexts, but it is convenient to also have it in top-level for testing
128
128
  // setup.
129
- getRandomField(): Fr {
129
+ utilityGetRandomField(): Fr {
130
130
  return Fr.random();
131
131
  }
132
132
 
133
133
  // We instruct users to debug contracts via this oracle, so it makes sense that they'd expect it to also work in tests
134
- log(level: number, message: string, fields: Fr[]): Promise<void> {
134
+ utilityLog(level: number, message: string, fields: Fr[]): Promise<void> {
135
135
  if (!LogLevels[level]) {
136
136
  throw new Error(`Invalid log level: ${level}`);
137
137
  }
@@ -141,23 +141,23 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
141
141
  return Promise.resolve();
142
142
  }
143
143
 
144
- getDefaultAddress(): AztecAddress {
144
+ txeGetDefaultAddress(): AztecAddress {
145
145
  return DEFAULT_ADDRESS;
146
146
  }
147
147
 
148
- async getNextBlockNumber(): Promise<BlockNumber> {
148
+ async txeGetNextBlockNumber(): Promise<BlockNumber> {
149
149
  return BlockNumber((await this.getLastBlockNumber()) + 1);
150
150
  }
151
151
 
152
- getNextBlockTimestamp(): Promise<bigint> {
152
+ txeGetNextBlockTimestamp(): Promise<bigint> {
153
153
  return Promise.resolve(this.nextBlockTimestamp);
154
154
  }
155
155
 
156
- async getLastBlockTimestamp() {
156
+ async txeGetLastBlockTimestamp() {
157
157
  return (await this.stateMachine.node.getBlockHeader('latest'))!.globalVariables.timestamp;
158
158
  }
159
159
 
160
- async getLastTxEffects() {
160
+ async txeGetLastTxEffects() {
161
161
  const latestBlockNumber = await this.stateMachine.archiver.getBlockNumber();
162
162
  const block = await this.stateMachine.archiver.getBlock(latestBlockNumber);
163
163
 
@@ -173,7 +173,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
173
173
 
174
174
  async syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string) {
175
175
  if (contractAddress.equals(DEFAULT_ADDRESS)) {
176
- this.logger.debug(`Skipping sync in getPrivateEvents because the events correspond to the default address.`);
176
+ this.logger.debug(`Skipping sync in txeGetPrivateEvents because the events correspond to the default address.`);
177
177
  return;
178
178
  }
179
179
 
@@ -190,7 +190,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
190
190
  );
191
191
  }
192
192
 
193
- async getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress) {
193
+ async txeGetPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress) {
194
194
  return (
195
195
  await this.privateEventStore.getPrivateEvents(selector, {
196
196
  contractAddress,
@@ -201,7 +201,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
201
201
  ).map(e => e.packedEvent);
202
202
  }
203
203
 
204
- async advanceBlocksBy(blocks: number) {
204
+ async txeAdvanceBlocksBy(blocks: number) {
205
205
  this.logger.debug(`time traveling ${blocks} blocks`);
206
206
 
207
207
  for (let i = 0; i < blocks; i++) {
@@ -209,12 +209,12 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
209
209
  }
210
210
  }
211
211
 
212
- advanceTimestampBy(duration: UInt64) {
212
+ txeAdvanceTimestampBy(duration: UInt64) {
213
213
  this.logger.debug(`time traveling ${duration} seconds`);
214
214
  this.nextBlockTimestamp += duration;
215
215
  }
216
216
 
217
- async deploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr) {
217
+ async txeDeploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr) {
218
218
  // Emit deployment nullifier
219
219
  await this.mineBlock({
220
220
  nullifiers: [
@@ -226,7 +226,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
226
226
  });
227
227
 
228
228
  if (!secret.equals(Fr.ZERO)) {
229
- await this.addAccount(artifact, instance, secret);
229
+ await this.txeAddAccount(artifact, instance, secret);
230
230
  } else {
231
231
  await this.contractStore.addContractInstance(instance);
232
232
  await this.contractStore.addContractArtifact(artifact);
@@ -234,7 +234,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
234
234
  }
235
235
  }
236
236
 
237
- async addAccount(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr) {
237
+ async txeAddAccount(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr) {
238
238
  const partialAddress = await computePartialAddress(instance);
239
239
 
240
240
  this.logger.debug(`Deployed ${artifact.name} at ${instance.address}`);
@@ -249,7 +249,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
249
249
  return completeAddress;
250
250
  }
251
251
 
252
- async createAccount(secret: Fr) {
252
+ async txeCreateAccount(secret: Fr) {
253
253
  // This is a foot gun !
254
254
  const completeAddress = await this.keyStore.addAccount(secret, secret);
255
255
  await this.accountStore.setAccount(completeAddress.address, completeAddress);
@@ -259,7 +259,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
259
259
  return completeAddress;
260
260
  }
261
261
 
262
- async addAuthWitness(address: AztecAddress, messageHash: Fr) {
262
+ async txeAddAuthWitness(address: AztecAddress, messageHash: Fr) {
263
263
  const account = await this.accountStore.getAccount(address);
264
264
  const privateKey = await this.keyStore.getMasterSecretKey(account.publicKeys.masterIncomingViewingPublicKey);
265
265
 
@@ -272,7 +272,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
272
272
  }
273
273
 
274
274
  async mineBlock(options: { nullifiers?: Fr[] } = {}) {
275
- const blockNumber = await this.getNextBlockNumber();
275
+ const blockNumber = await this.txeGetNextBlockNumber();
276
276
 
277
277
  const txEffect = TxEffect.empty();
278
278
  txEffect.nullifiers = [getSingleTxBlockRequestHash(blockNumber), ...(options.nullifiers ?? [])];
@@ -296,7 +296,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
296
296
  await this.stateMachine.handleL2Block(block);
297
297
  }
298
298
 
299
- async privateCallNewFlow(
299
+ async txePrivateCallNewFlow(
300
300
  from: AztecAddress,
301
301
  targetContractAddress: AztecAddress = AztecAddress.zero(),
302
302
  functionSelector: FunctionSelector = FunctionSelector.empty(),
@@ -336,7 +336,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
336
336
  effectiveScopes,
337
337
  );
338
338
 
339
- const blockNumber = await this.getNextBlockNumber();
339
+ const blockNumber = await this.txeGetNextBlockNumber();
340
340
 
341
341
  const callContext = new CallContext(from, targetContractAddress, functionSelector, isStaticCall);
342
342
 
@@ -409,7 +409,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
409
409
  );
410
410
  const publicFunctionsCalldata = await Promise.all(
411
411
  publicCallRequests.map(async r => {
412
- const calldata = await privateExecutionOracle.loadFromExecutionCache(r.calldataHash);
412
+ const calldata = await privateExecutionOracle.privateLoadFromExecutionCache(r.calldataHash);
413
413
  return new HashedValues(calldata, r.calldataHash);
414
414
  }),
415
415
  );
@@ -523,7 +523,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
523
523
  return executionResult.returnValues ?? [];
524
524
  }
525
525
 
526
- async publicCallNewFlow(
526
+ async txePublicCallNewFlow(
527
527
  from: AztecAddress,
528
528
  targetContractAddress: AztecAddress,
529
529
  calldata: Fr[],
@@ -533,7 +533,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
533
533
  `Executing public function ${await this.contractStore.getDebugFunctionName(targetContractAddress, FunctionSelector.fromField(calldata[0]))}@${targetContractAddress} isStaticCall=${isStaticCall}`,
534
534
  );
535
535
 
536
- const blockNumber = await this.getNextBlockNumber();
536
+ const blockNumber = await this.txeGetNextBlockNumber();
537
537
 
538
538
  const gasLimits = new Gas(DEFAULT_DA_GAS_LIMIT, DEFAULT_L2_GAS_LIMIT);
539
539
 
@@ -678,7 +678,7 @@ export class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracl
678
678
  return returnValues ?? [];
679
679
  }
680
680
 
681
- async executeUtilityFunction(
681
+ async txeExecuteUtilityFunction(
682
682
  targetContractAddress: AztecAddress,
683
683
  functionSelector: FunctionSelector,
684
684
  args: Fr[],