@aztec/txe 2.0.0-nightly.20250902 → 3.0.0-canary.a9708bd

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":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA6NpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,iEAIhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA8NpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,iEAIhD"}
package/dest/index.js CHANGED
@@ -16,6 +16,7 @@ const sessions = new Map();
16
16
  * TXE typically has to load the same contract artifacts over and over again for multiple tests,
17
17
  * so we cache them here to avoid both loading them from disk repeatedly and computing their artifact hashes
18
18
  */ const TXEArtifactsCache = new Map();
19
+ // TODO: why does the zod validation in the txe dispatcher not reject invalid function names?
19
20
  const TXEForeignCallInputSchema = z.object({
20
21
  // eslint-disable-next-line camelcase
21
22
  session_id: z.number().int().nonnegative(),
@@ -4,7 +4,6 @@ import { KeyStore } from '@aztec/key-store';
4
4
  import { AddressDataProvider, CapsuleDataProvider, NoteDataProvider, PrivateEventDataProvider, TaggingDataProvider } from '@aztec/pxe/server';
5
5
  import { ExecutionNoteCache, MessageLoadOracleInputs, type NoteData } from '@aztec/pxe/simulator';
6
6
  import { type ContractArtifact, type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
7
- import { PublicDataWrite } from '@aztec/stdlib/avm';
8
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
8
  import { type ContractInstance, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
10
9
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
@@ -28,7 +27,7 @@ export declare class TXE extends TXETypedOracle {
28
27
  private privateEventDataProvider;
29
28
  private accountDataProvider;
30
29
  private contractAddress;
31
- private baseFork;
30
+ baseFork: MerkleTreeWriteOperations;
32
31
  private stateMachine;
33
32
  private logger;
34
33
  private blockNumber;
@@ -37,11 +36,7 @@ export declare class TXE extends TXETypedOracle {
37
36
  private msgSender;
38
37
  private functionSelector;
39
38
  private pxeOracleInterface;
40
- private publicDataWrites;
41
- private uniqueNoteHashesFromPublic;
42
- private siloedNullifiersFromPublic;
43
39
  private privateLogs;
44
- private publicLogs;
45
40
  private committedBlocks;
46
41
  private ROLLUP_VERSION;
47
42
  private CHAIN_ID;
@@ -68,12 +63,10 @@ export declare class TXE extends TXETypedOracle {
68
63
  getAddressDataProvider(): AddressDataProvider;
69
64
  addContractInstance(contractInstance: ContractInstanceWithAddress): Promise<void>;
70
65
  addContractArtifact(contractClassId: Fr, artifact: ContractArtifact): Promise<void>;
71
- txeGetPrivateContextInputs(blockNumber: number | null, sideEffectsCounter?: number, isStaticCall?: boolean): Promise<PrivateContextInputs>;
66
+ txeGetPrivateContextInputs(blockNumber?: number, sideEffectsCounter?: number, isStaticCall?: boolean): Promise<PrivateContextInputs>;
72
67
  txeAddAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
73
- addPublicDataWrites(writes: PublicDataWrite[]): Promise<void>;
74
68
  checkNullifiersNotInTree(contractAddress: AztecAddress, nullifiers: Fr[]): Promise<void>;
75
- addSiloedNullifiersFromPublic(siloedNullifiers: Fr[]): void;
76
- addUniqueNoteHashesFromPublic(siloedNoteHashes: Fr[]): void;
69
+ utilityAssertCompatibleOracleVersion(version: number): void;
77
70
  utilityGetBlockNumber(): Promise<number>;
78
71
  utilityGetTimestamp(): Promise<bigint>;
79
72
  txeGetLastBlockTimestamp(): Promise<bigint>;
@@ -97,7 +90,6 @@ export declare class TXE extends TXETypedOracle {
97
90
  utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
98
91
  getL1ToL2MembershipWitness(_contractAddress: AztecAddress, _messageHash: Fr, _secret: Fr): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
99
92
  utilityStorageRead(contractAddress: AztecAddress, startStorageSlot: Fr, blockNumber: number, numberOfElements: number): Promise<Fr[]>;
100
- storageWrite(startStorageSlot: Fr, values: Fr[]): Promise<Fr[]>;
101
93
  commitState(): Promise<void>;
102
94
  getTxRequestHash(): Fr;
103
95
  notifyCreatedContractClassLog(_log: ContractClassLog, _counter: number): Fr;
@@ -110,10 +102,6 @@ export declare class TXE extends TXETypedOracle {
110
102
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
111
103
  utilityValidateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
112
104
  utilityBulkRetrieveLogs(contractAddress: AztecAddress, logRetrievalRequestsArrayBaseSlot: Fr, logRetrievalResponsesArrayBaseSlot: Fr): Promise<void>;
113
- avmOpcodeNullifierExists(innerNullifier: Fr, targetAddress: AztecAddress): Promise<boolean>;
114
- avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
115
- avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
116
- avmOpcodeStorageRead(slot: Fr): Promise<Fr>;
117
105
  utilityStoreCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
118
106
  utilityLoadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
119
107
  utilityDeleteCapsule(contractAddress: AztecAddress, slot: Fr): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txe_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,12 @@ import { Aes128, Schnorr } from '@aztec/foundation/crypto';
5
5
  import { Fr } from '@aztec/foundation/fields';
6
6
  import { applyStringFormatting, createLogger } from '@aztec/foundation/log';
7
7
  import { TestDateProvider } from '@aztec/foundation/timer';
8
- import { PXEOracleInterface, enrichPublicSimulationError } from '@aztec/pxe/server';
8
+ import { ORACLE_VERSION, PXEOracleInterface, enrichPublicSimulationError } from '@aztec/pxe/server';
9
9
  import { ExecutionNoteCache, HashedValuesCache, Oracle, PrivateExecutionOracle, UtilityExecutionOracle, executePrivateFunction, generateSimulatedProvingResult, pickNotes } from '@aztec/pxe/simulator';
10
10
  import { WASMSimulator, extractCallStack, toACVMWitness, witnessMapToFields } from '@aztec/simulator/client';
11
11
  import { ExecutionError, GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor, PublicTxSimulator, createSimulationError, resolveAssertionMessageFromError } from '@aztec/simulator/server';
12
12
  import { FunctionSelector, FunctionType, countArgumentsSize } from '@aztec/stdlib/abi';
13
13
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
14
- import { PublicDataWrite } from '@aztec/stdlib/avm';
15
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
16
15
  import { computePartialAddress } from '@aztec/stdlib/contract';
17
16
  import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
@@ -19,7 +18,7 @@ import { computeCalldataHash, computeNoteHashNonce, computePublicDataTreeLeafSlo
19
18
  import { PartialPrivateTailPublicInputsForPublic, PrivateContextInputs, PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PublicCallRequest } from '@aztec/stdlib/kernel';
20
19
  import { ClientIvcProof } from '@aztec/stdlib/proofs';
21
20
  import { makeAppendOnlyTreeSnapshot, makeContentCommitment, makeGlobalVariables, makeHeader } from '@aztec/stdlib/testing';
22
- import { AppendOnlyTreeSnapshot, MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
21
+ import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
23
22
  import { BlockHeader, CallContext, HashedValues, PrivateExecutionResult, Tx, TxConstantData, TxContext, TxEffect, TxHash, collectNested } from '@aztec/stdlib/tx';
24
23
  import { ForkCheckpoint } from '@aztec/world-state/native';
25
24
  import { GENESIS_TIMESTAMP } from '../txe_constants.js';
@@ -44,11 +43,7 @@ export class TXE extends TXETypedOracle {
44
43
  msgSender;
45
44
  functionSelector;
46
45
  pxeOracleInterface;
47
- publicDataWrites;
48
- uniqueNoteHashesFromPublic;
49
- siloedNullifiersFromPublic;
50
46
  privateLogs;
51
- publicLogs;
52
47
  committedBlocks;
53
48
  ROLLUP_VERSION;
54
49
  CHAIN_ID;
@@ -60,7 +55,7 @@ export class TXE extends TXETypedOracle {
60
55
  senderForTags;
61
56
  executionCache;
62
57
  constructor(keyStore, contractDataProvider, noteDataProvider, capsuleDataProvider, taggingDataProvider, addressDataProvider, privateEventDataProvider, accountDataProvider, contractAddress, baseFork, stateMachine){
63
- super(), this.keyStore = keyStore, this.contractDataProvider = contractDataProvider, this.noteDataProvider = noteDataProvider, this.capsuleDataProvider = capsuleDataProvider, this.taggingDataProvider = taggingDataProvider, this.addressDataProvider = addressDataProvider, this.privateEventDataProvider = privateEventDataProvider, this.accountDataProvider = accountDataProvider, this.contractAddress = contractAddress, this.baseFork = baseFork, this.stateMachine = stateMachine, this.blockNumber = 1, this.timestamp = GENESIS_TIMESTAMP, this.sideEffectCounter = 0, this.functionSelector = FunctionSelector.fromField(new Fr(0)), this.publicDataWrites = [], this.uniqueNoteHashesFromPublic = [], this.siloedNullifiersFromPublic = [], this.privateLogs = [], this.publicLogs = [], this.committedBlocks = new Set(), this.ROLLUP_VERSION = 1, this.CHAIN_ID = 1, this.simulator = new WASMSimulator(), this.authwits = new Map();
58
+ super(), this.keyStore = keyStore, this.contractDataProvider = contractDataProvider, this.noteDataProvider = noteDataProvider, this.capsuleDataProvider = capsuleDataProvider, this.taggingDataProvider = taggingDataProvider, this.addressDataProvider = addressDataProvider, this.privateEventDataProvider = privateEventDataProvider, this.accountDataProvider = accountDataProvider, this.contractAddress = contractAddress, this.baseFork = baseFork, this.stateMachine = stateMachine, this.blockNumber = 1, this.timestamp = GENESIS_TIMESTAMP, this.sideEffectCounter = 0, this.functionSelector = FunctionSelector.fromField(new Fr(0)), this.privateLogs = [], this.committedBlocks = new Set(), this.ROLLUP_VERSION = 1, this.CHAIN_ID = 1, this.simulator = new WASMSimulator(), this.authwits = new Map();
64
59
  this.logger = createLogger('txe:oracle');
65
60
  this.noteCache = new ExecutionNoteCache(this.getTxRequestHash());
66
61
  this.node = stateMachine.node;
@@ -185,10 +180,6 @@ export class TXE extends TXETypedOracle {
185
180
  ]);
186
181
  this.authwits.set(authWitness.requestHash.toString(), authWitness);
187
182
  }
188
- async addPublicDataWrites(writes) {
189
- this.publicDataWrites.push(...writes);
190
- await this.baseFork.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, writes.map((w)=>new PublicDataTreeLeaf(w.leafSlot, w.value).toBuffer()));
191
- }
192
183
  async checkNullifiersNotInTree(contractAddress, nullifiers) {
193
184
  const siloedNullifiers = await Promise.all(nullifiers.map((nullifier)=>siloNullifier(contractAddress, nullifier)));
194
185
  const db = this.baseFork;
@@ -197,13 +188,12 @@ export class TXE extends TXETypedOracle {
197
188
  throw new Error(`Rejecting tx for emitting duplicate nullifiers`);
198
189
  }
199
190
  }
200
- addSiloedNullifiersFromPublic(siloedNullifiers) {
201
- this.siloedNullifiersFromPublic.push(...siloedNullifiers);
202
- }
203
- addUniqueNoteHashesFromPublic(siloedNoteHashes) {
204
- this.uniqueNoteHashesFromPublic.push(...siloedNoteHashes);
205
- }
206
191
  // TypedOracle
192
+ utilityAssertCompatibleOracleVersion(version) {
193
+ if (version !== ORACLE_VERSION) {
194
+ throw new Error(`Incompatible oracle version. PXE is using version '${ORACLE_VERSION}', but got a request for '${version}'.`);
195
+ }
196
+ }
207
197
  utilityGetBlockNumber() {
208
198
  return Promise.resolve(this.blockNumber);
209
199
  }
@@ -355,15 +345,6 @@ export class TXE extends TXETypedOracle {
355
345
  }
356
346
  return values;
357
347
  }
358
- async storageWrite(startStorageSlot, values) {
359
- const publicDataWrites = await Promise.all(values.map(async (value, i)=>{
360
- const storageSlot = startStorageSlot.add(new Fr(i));
361
- this.logger.debug(`Oracle storage write: slot=${storageSlot.toString()} value=${value}`);
362
- return new PublicDataWrite(await computePublicDataTreeLeafSlot(this.contractAddress, storageSlot), value);
363
- }));
364
- await this.addPublicDataWrites(publicDataWrites);
365
- return publicDataWrites.map((write)=>write.value);
366
- }
367
348
  async commitState() {
368
349
  const blockNumber = await this.utilityGetBlockNumber();
369
350
  const { usedTxRequestHashForNonces } = this.noteCache.finish();
@@ -377,20 +358,12 @@ export class TXE extends TXETypedOracle {
377
358
  const nonceGenerator = usedTxRequestHashForNonces ? this.getTxRequestHash() : this.noteCache.getAllNullifiers()[0];
378
359
  let i = 0;
379
360
  const uniqueNoteHashesFromPrivate = await Promise.all(this.noteCache.getAllNotes().map(async (pendingNote)=>computeUniqueNoteHash(await computeNoteHashNonce(nonceGenerator, i++), await siloNoteHash(pendingNote.note.contractAddress, pendingNote.noteHashForConsumption))));
380
- txEffect.noteHashes = [
381
- ...uniqueNoteHashesFromPrivate,
382
- ...this.uniqueNoteHashesFromPublic
383
- ];
384
- txEffect.nullifiers = [
385
- ...this.siloedNullifiersFromPublic,
386
- ...this.noteCache.getAllNullifiers()
387
- ];
361
+ txEffect.noteHashes = uniqueNoteHashesFromPrivate;
362
+ txEffect.nullifiers = this.noteCache.getAllNullifiers();
388
363
  if (usedTxRequestHashForNonces) {
389
364
  txEffect.nullifiers.unshift(this.getTxRequestHash());
390
365
  }
391
- txEffect.publicDataWrites = this.publicDataWrites;
392
366
  txEffect.privateLogs = this.privateLogs;
393
- txEffect.publicLogs = this.publicLogs;
394
367
  txEffect.txHash = new TxHash(new Fr(blockNumber));
395
368
  const body = new Body([
396
369
  txEffect
@@ -424,11 +397,7 @@ export class TXE extends TXETypedOracle {
424
397
  l2Block.header = header;
425
398
  await fork.updateArchive(l2Block.header);
426
399
  await this.stateMachine.handleL2Block(l2Block);
427
- this.publicDataWrites = [];
428
400
  this.privateLogs = [];
429
- this.publicLogs = [];
430
- this.uniqueNoteHashesFromPublic = [];
431
- this.siloedNullifiersFromPublic = [];
432
401
  this.noteCache = new ExecutionNoteCache(this.getTxRequestHash());
433
402
  }
434
403
  getTxRequestHash() {
@@ -521,39 +490,6 @@ export class TXE extends TXETypedOracle {
521
490
  async utilityBulkRetrieveLogs(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot) {
522
491
  return await this.pxeOracleInterface.bulkRetrieveLogs(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot);
523
492
  }
524
- async avmOpcodeNullifierExists(innerNullifier, targetAddress) {
525
- const nullifier = await siloNullifier(targetAddress, innerNullifier);
526
- const db = this.baseFork;
527
- const treeIndex = (await db.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, [
528
- nullifier.toBuffer()
529
- ]))[0];
530
- const transientIndex = this.siloedNullifiersFromPublic.find((n)=>n.equals(nullifier));
531
- return treeIndex !== undefined || transientIndex !== undefined;
532
- }
533
- async avmOpcodeEmitNullifier(nullifier) {
534
- const siloedNullifier = await siloNullifier(this.contractAddress, nullifier);
535
- this.addSiloedNullifiersFromPublic([
536
- siloedNullifier
537
- ]);
538
- return Promise.resolve();
539
- }
540
- // Doesn't this need to get hashed w/ the nonce ?
541
- async avmOpcodeEmitNoteHash(noteHash) {
542
- const siloedNoteHash = await siloNoteHash(this.contractAddress, noteHash);
543
- this.addUniqueNoteHashesFromPublic([
544
- siloedNoteHash
545
- ]);
546
- return Promise.resolve();
547
- }
548
- async avmOpcodeStorageRead(slot) {
549
- const leafSlot = await computePublicDataTreeLeafSlot(this.contractAddress, slot);
550
- const lowLeafResult = await this.baseFork.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
551
- if (!lowLeafResult || !lowLeafResult.alreadyPresent) {
552
- return Fr.ZERO;
553
- }
554
- const preimage = await this.baseFork.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
555
- return preimage.leaf.value;
556
- }
557
493
  utilityStoreCapsule(contractAddress, slot, capsule) {
558
494
  if (!contractAddress.equals(this.contractAddress)) {
559
495
  // TODO(#10727): instead of this check that this.contractAddress is allowed to access the external DB
@@ -613,17 +549,16 @@ export class TXE extends TXETypedOracle {
613
549
  const txContext = new TxContext(this.CHAIN_ID, this.ROLLUP_VERSION, gasSettings);
614
550
  const blockHeader = await this.pxeOracleInterface.getBlockHeader();
615
551
  const noteCache = new ExecutionNoteCache(this.getTxRequestHash());
616
- // TODO(benesjan): Fix stale 'context' name.
617
- const context = new PrivateExecutionOracle(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ blockHeader, /** List of transient auth witnesses to be used during this simulation */ Array.from(this.authwits.values()), /** List of transient auth witnesses to be used during this simulation */ [], HashedValuesCache.create(), noteCache, this.pxeOracleInterface, this.simulator, 0, 1, undefined, undefined, /**
552
+ const privateExecutionOracle = new PrivateExecutionOracle(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ blockHeader, /** List of transient auth witnesses to be used during this simulation */ Array.from(this.authwits.values()), /** List of transient auth witnesses to be used during this simulation */ [], HashedValuesCache.create(), noteCache, this.pxeOracleInterface, this.simulator, 0, 1, undefined, undefined, /**
618
553
  * In TXE, the typical transaction entrypoint is skipped, so we need to simulate the actions that such a
619
554
  * contract would perform, including setting senderForTags.
620
555
  */ from);
621
- context.privateStoreInExecutionCache(args, argsHash);
556
+ privateExecutionOracle.privateStoreInExecutionCache(args, argsHash);
622
557
  // Note: This is a slight modification of simulator.run without any of the checks. Maybe we should modify simulator.run with a boolean value to skip checks.
623
558
  let result;
624
559
  let executionResult;
625
560
  try {
626
- executionResult = await executePrivateFunction(this.simulator, context, artifact, targetContractAddress, functionSelector);
561
+ executionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, artifact, targetContractAddress, functionSelector);
627
562
  const { usedTxRequestHashForNonces } = noteCache.finish();
628
563
  const firstNullifierHint = usedTxRequestHashForNonces ? Fr.ZERO : noteCache.getAllNullifiers()[0];
629
564
  const publicCallRequests = collectNested([
@@ -632,7 +567,7 @@ export class TXE extends TXETypedOracle {
632
567
  r.publicInputs.publicTeardownCallRequest
633
568
  ]));
634
569
  const publicFunctionsCalldata = await Promise.all(publicCallRequests.map(async (r)=>{
635
- const calldata = await context.privateLoadFromExecutionCache(r.calldataHash);
570
+ const calldata = await privateExecutionOracle.privateLoadFromExecutionCache(r.calldataHash);
636
571
  return new HashedValues(calldata, r.calldataHash);
637
572
  }));
638
573
  result = new PrivateExecutionResult(executionResult, firstNullifierHint, publicFunctionsCalldata);
@@ -0,0 +1,34 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import { L2Block } from '@aztec/stdlib/block';
4
+ import { type MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
5
+ import { GlobalVariables } from '@aztec/stdlib/tx';
6
+ import type { UInt32 } from '@aztec/stdlib/types';
7
+ import { TXETypedOracle } from './txe_typed_oracle.js';
8
+ export declare class TXEOraclePublicContext extends TXETypedOracle {
9
+ private contractAddress;
10
+ private worldTrees;
11
+ private txRequestHash;
12
+ private globalVariables;
13
+ private logger;
14
+ private transientUniqueNoteHashes;
15
+ private transientSiloedNullifiers;
16
+ private publicDataWrites;
17
+ constructor(contractAddress: AztecAddress, worldTrees: MerkleTreeWriteOperations, txRequestHash: Fr, globalVariables: GlobalVariables);
18
+ avmOpcodeAddress(): Promise<AztecAddress>;
19
+ avmOpcodeBlockNumber(): Promise<UInt32>;
20
+ avmOpcodeTimestamp(): Promise<bigint>;
21
+ avmOpcodeIsStaticCall(): Promise<boolean>;
22
+ avmOpcodeChainId(): Promise<Fr>;
23
+ avmOpcodeVersion(): Promise<Fr>;
24
+ avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
25
+ avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
26
+ avmOpcodeNullifierExists(innerNullifier: Fr, targetAddress: AztecAddress): Promise<boolean>;
27
+ avmOpcodeStorageWrite(slot: Fr, value: Fr): Promise<void>;
28
+ avmOpcodeStorageRead(slot: Fr): Promise<Fr>;
29
+ close(): Promise<L2Block>;
30
+ private makeTxEffect;
31
+ private insertSideEffectIntoWorldTrees;
32
+ private makeBlockHeader;
33
+ }
34
+ //# sourceMappingURL=txe_oracle_public_context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAQ,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAGL,KAAK,yBAAyB,EAG/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,qBAAa,sBAAuB,SAAQ,cAAc;IAOtD,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IATzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,gBAAgB,CAAyB;gBAGvC,eAAe,EAAE,YAAY,EAC7B,UAAU,EAAE,yBAAyB,EACrC,aAAa,EAAE,EAAE,EACjB,eAAe,EAAE,eAAe;IAYjC,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;IAIzC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC,gBAAgB,IAAI,OAAO,CAAC,EAAE,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,EAAE,CAAC;IAIzB,sBAAsB,CAAC,SAAS,EAAE,EAAE;IAKpC,qBAAqB,CAAC,QAAQ,EAAE,EAAE;IAMlC,wBAAwB,CAAC,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3F,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAYzC,oBAAoB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAuBpD,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAwB/B,OAAO,CAAC,YAAY;YAcN,8BAA8B;YAmB9B,eAAe;CAa9B"}
@@ -0,0 +1,126 @@
1
+ import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
2
+ import { padArrayEnd } from '@aztec/foundation/collection';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import { createLogger } from '@aztec/foundation/log';
5
+ import { PublicDataWrite } from '@aztec/stdlib/avm';
6
+ import { Body, L2Block } from '@aztec/stdlib/block';
7
+ import { computePublicDataTreeLeafSlot, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
8
+ import { makeAppendOnlyTreeSnapshot, makeContentCommitment } from '@aztec/stdlib/testing';
9
+ import { AppendOnlyTreeSnapshot, MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
10
+ import { BlockHeader, TxEffect, TxHash } from '@aztec/stdlib/tx';
11
+ import { TXETypedOracle } from './txe_typed_oracle.js';
12
+ export class TXEOraclePublicContext extends TXETypedOracle {
13
+ contractAddress;
14
+ worldTrees;
15
+ txRequestHash;
16
+ globalVariables;
17
+ logger;
18
+ transientUniqueNoteHashes;
19
+ transientSiloedNullifiers;
20
+ publicDataWrites;
21
+ constructor(contractAddress, worldTrees, txRequestHash, globalVariables){
22
+ super(), this.contractAddress = contractAddress, this.worldTrees = worldTrees, this.txRequestHash = txRequestHash, this.globalVariables = globalVariables, this.transientUniqueNoteHashes = [], this.transientSiloedNullifiers = [], this.publicDataWrites = [];
23
+ this.logger = createLogger('txe:public_context');
24
+ this.logger.debug('Entering PublicContext', {
25
+ contractAddress,
26
+ blockNumber: globalVariables.blockNumber,
27
+ timestamp: globalVariables.timestamp
28
+ });
29
+ }
30
+ avmOpcodeAddress() {
31
+ return Promise.resolve(this.contractAddress);
32
+ }
33
+ avmOpcodeBlockNumber() {
34
+ return Promise.resolve(this.globalVariables.blockNumber);
35
+ }
36
+ avmOpcodeTimestamp() {
37
+ return Promise.resolve(this.globalVariables.timestamp);
38
+ }
39
+ avmOpcodeIsStaticCall() {
40
+ return Promise.resolve(false);
41
+ }
42
+ avmOpcodeChainId() {
43
+ return Promise.resolve(this.globalVariables.chainId);
44
+ }
45
+ avmOpcodeVersion() {
46
+ return Promise.resolve(this.globalVariables.version);
47
+ }
48
+ async avmOpcodeEmitNullifier(nullifier) {
49
+ const siloedNullifier = await siloNullifier(this.contractAddress, nullifier);
50
+ this.transientSiloedNullifiers.push(siloedNullifier);
51
+ }
52
+ async avmOpcodeEmitNoteHash(noteHash) {
53
+ const siloedNoteHash = await siloNoteHash(this.contractAddress, noteHash);
54
+ // TODO: make the note hash unique - they are only siloed right now
55
+ this.transientUniqueNoteHashes.push(siloedNoteHash);
56
+ }
57
+ async avmOpcodeNullifierExists(innerNullifier, targetAddress) {
58
+ const nullifier = await siloNullifier(targetAddress, innerNullifier);
59
+ const treeIndex = (await this.worldTrees.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, [
60
+ nullifier.toBuffer()
61
+ ]))[0];
62
+ const transientIndex = this.transientSiloedNullifiers.find((n)=>n.equals(nullifier));
63
+ return treeIndex !== undefined || transientIndex !== undefined;
64
+ }
65
+ async avmOpcodeStorageWrite(slot, value) {
66
+ this.logger.debug('AVM storage write', {
67
+ slot,
68
+ value
69
+ });
70
+ const dataWrite = new PublicDataWrite(await computePublicDataTreeLeafSlot(this.contractAddress, slot), value);
71
+ this.publicDataWrites.push(dataWrite);
72
+ await this.worldTrees.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, [
73
+ new PublicDataTreeLeaf(dataWrite.leafSlot, dataWrite.value).toBuffer()
74
+ ]);
75
+ }
76
+ async avmOpcodeStorageRead(slot) {
77
+ const leafSlot = await computePublicDataTreeLeafSlot(this.contractAddress, slot);
78
+ const lowLeafResult = await this.worldTrees.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
79
+ const value = !lowLeafResult || !lowLeafResult.alreadyPresent ? Fr.ZERO : (await this.worldTrees.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index)).leaf.value;
80
+ this.logger.debug('AVM storage read', {
81
+ slot,
82
+ value
83
+ });
84
+ return value;
85
+ }
86
+ async close() {
87
+ this.logger.debug('Exiting PublicContext, building block with collected side effects', {
88
+ blockNumber: this.globalVariables.blockNumber
89
+ });
90
+ const txEffect = this.makeTxEffect();
91
+ await this.insertSideEffectIntoWorldTrees(txEffect);
92
+ const block = new L2Block(makeAppendOnlyTreeSnapshot(this.globalVariables.blockNumber), await this.makeBlockHeader(), new Body([
93
+ txEffect
94
+ ]));
95
+ await this.worldTrees.close();
96
+ this.logger.debug('Exited PublicContext with built block', {
97
+ blockNumber: block.number,
98
+ txEffects: block.body.txEffects
99
+ });
100
+ return block;
101
+ }
102
+ makeTxEffect() {
103
+ const txEffect = TxEffect.empty();
104
+ txEffect.noteHashes = this.transientUniqueNoteHashes;
105
+ txEffect.nullifiers = [
106
+ this.txRequestHash,
107
+ ...this.transientSiloedNullifiers
108
+ ];
109
+ txEffect.publicDataWrites = this.publicDataWrites;
110
+ // TODO: support public logs
111
+ txEffect.txHash = new TxHash(new Fr(this.globalVariables.blockNumber));
112
+ return txEffect;
113
+ }
114
+ async insertSideEffectIntoWorldTrees(txEffect) {
115
+ const l1ToL2Messages = Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(0).map(Fr.zero);
116
+ await this.worldTrees.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
117
+ await this.worldTrees.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2Messages);
118
+ // We do not need to add public data writes because we apply them as we go.
119
+ await this.worldTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((nullifier)=>nullifier.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
120
+ }
121
+ async makeBlockHeader() {
122
+ const stateReference = await this.worldTrees.getStateReference();
123
+ const archiveInfo = await this.worldTrees.getTreeInfo(MerkleTreeId.ARCHIVE);
124
+ return new BlockHeader(new AppendOnlyTreeSnapshot(new Fr(archiveInfo.root), Number(archiveInfo.size)), makeContentCommitment(), stateReference, this.globalVariables, Fr.ZERO, Fr.ZERO);
125
+ }
126
+ }
@@ -4,14 +4,20 @@ import { TypedOracle } from '@aztec/pxe/simulator';
4
4
  import type { FunctionSelector } from '@aztec/stdlib/abi';
5
5
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
6
  import type { PrivateContextInputs } from '@aztec/stdlib/kernel';
7
- import type { UInt64 } from '@aztec/stdlib/types';
7
+ import type { UInt32, UInt64 } from '@aztec/stdlib/types';
8
8
  export declare class TXETypedOracle extends TypedOracle {
9
+ avmOpcodeAddress(): Promise<AztecAddress>;
10
+ avmOpcodeBlockNumber(): Promise<UInt32>;
11
+ avmOpcodeTimestamp(): Promise<bigint>;
12
+ avmOpcodeIsStaticCall(): Promise<boolean>;
13
+ avmOpcodeChainId(): Promise<Fr>;
14
+ avmOpcodeVersion(): Promise<Fr>;
9
15
  avmOpcodeEmitNullifier(_nullifier: Fr): Promise<void>;
10
16
  avmOpcodeEmitNoteHash(_noteHash: Fr): Promise<void>;
11
17
  avmOpcodeNullifierExists(_innerNullifier: Fr, _targetAddress: AztecAddress): Promise<boolean>;
12
18
  avmOpcodeStorageWrite(_slot: Fr, _value: Fr): Promise<void>;
13
19
  avmOpcodeStorageRead(_slot: Fr): Promise<Fr>;
14
- txeGetPrivateContextInputs(_blockNumber: number | null): Promise<PrivateContextInputs>;
20
+ txeGetPrivateContextInputs(_blockNumber?: number): Promise<PrivateContextInputs>;
15
21
  txeAdvanceBlocksBy(_blocks: number): Promise<void>;
16
22
  txeAdvanceTimestampBy(_duration: UInt64): void;
17
23
  txeSetContractAddress(_contractAddress: AztecAddress): void;
@@ -1 +1 @@
1
- {"version":3,"file":"txe_typed_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_typed_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD,qBAAa,cAAe,SAAQ,WAAW;IAC7C,sBAAsB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,qBAAqB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,wBAAwB,CAAC,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7F,qBAAqB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,oBAAoB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAI5C,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAItF,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,qBAAqB,CAAC,SAAS,EAAE,MAAM;IAIvC,qBAAqB,CAAC,gBAAgB,EAAE,YAAY;IAIpD,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,2BAA2B,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjH,gBAAgB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvD,aAAa,CACX,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,2BAA2B,EACtC,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,eAAe,CAAC;IAI3B,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,YAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIjE,YAAY,IAAI,YAAY;IAI5B,qBAAqB,CACnB,KAAK,EAAE,YAAY,EACnB,sBAAsB,EAAE,YAAY,EACpC,iBAAiB,EAAE,gBAAgB,EACnC,KAAK,EAAE,EAAE,EAAE,EACX,SAAS,EAAE,EAAE,EACb,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC;QACT,oBAAoB,EAAE,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAIF,uBAAuB,CACrB,sBAAsB,EAAE,YAAY,EACpC,iBAAiB,EAAE,gBAAgB,EACnC,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,EAAE,CAAC;IAId,oBAAoB,CAClB,KAAK,EAAE,YAAY,EACnB,sBAAsB,EAAE,YAAY,EACpC,SAAS,EAAE,EAAE,EAAE,EACf,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC;QACT,WAAW,EAAE,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CAGH"}
1
+ {"version":3,"file":"txe_typed_oracle.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_typed_oracle.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,24 @@ class OracleMethodNotAvailableError extends Error {
5
5
  }
6
6
  }
7
7
  export class TXETypedOracle extends TypedOracle {
8
+ avmOpcodeAddress() {
9
+ throw new OracleMethodNotAvailableError('avmOpcodeAddress');
10
+ }
11
+ avmOpcodeBlockNumber() {
12
+ throw new OracleMethodNotAvailableError('avmOpcodeBlockNumber');
13
+ }
14
+ avmOpcodeTimestamp() {
15
+ throw new OracleMethodNotAvailableError('avmOpcodeTimestamp');
16
+ }
17
+ avmOpcodeIsStaticCall() {
18
+ throw new OracleMethodNotAvailableError('avmOpcodeIsStaticCall');
19
+ }
20
+ avmOpcodeChainId() {
21
+ throw new OracleMethodNotAvailableError('avmOpcodeChainId');
22
+ }
23
+ avmOpcodeVersion() {
24
+ throw new OracleMethodNotAvailableError('avmOpcodeVersion');
25
+ }
8
26
  avmOpcodeEmitNullifier(_nullifier) {
9
27
  throw new OracleMethodNotAvailableError('avmOpcodeEmitNullifier');
10
28
  }
@@ -1,12 +1,31 @@
1
1
  import { type ContractInstanceWithAddress } from '@aztec/aztec.js';
2
2
  import { type ContractArtifact } from '@aztec/stdlib/abi';
3
3
  import type { TXETypedOracle } from '../oracle/txe_typed_oracle.js';
4
+ import type { TXESessionStateHandler } from '../txe_session.js';
4
5
  import { type ForeignCallArray, type ForeignCallSingle } from '../util/encoding.js';
5
6
  export declare class TXEService {
6
- private executor;
7
- constructor(executor: TXETypedOracle);
8
- setExecutor(executor: TXETypedOracle): void;
9
- txeGetPrivateContextInputs(foreignBlockNumberIsSome: ForeignCallSingle, foreignBlockNumberValue: ForeignCallSingle): Promise<{
7
+ private stateHandler;
8
+ private oracleHandler;
9
+ /**
10
+ * Create a new instance of `TXEService` that will translate all TXE RPC calls to and from the foreign
11
+ * (`ForeignCallSingle`, `ForeignCallResult`, etc.) and native TS types, delegating actual execution of the oracles
12
+ * to the different handlers.
13
+ * @param stateHandler The handler that will process TXE session state transitions, such as entering a private or
14
+ * public context.
15
+ * @param oracleHandler The handler that will process all other oracle calls that are not directly related to session
16
+ * state.
17
+ */
18
+ constructor(stateHandler: TXESessionStateHandler, oracleHandler: TXETypedOracle);
19
+ txeSetTopLevelTXEContext(): Promise<{
20
+ values: (string | ForeignCallArray)[];
21
+ }>;
22
+ txeSetPrivateTXEContext(foreignContractAddressIsSome: ForeignCallSingle, foreignContractAddressValue: ForeignCallSingle, foreignHistoricalBlockNumberIsSome: ForeignCallSingle, foreignHistoricalBlockNumberValue: ForeignCallSingle): Promise<{
23
+ values: (string | ForeignCallArray)[];
24
+ }>;
25
+ txeSetPublicTXEContext(foreignContractAddressIsSome: ForeignCallSingle, foreignContractAddressValue: ForeignCallSingle): Promise<{
26
+ values: (string | ForeignCallArray)[];
27
+ }>;
28
+ txeSetUtilityTXEContext(foreignContractAddressIsSome: ForeignCallSingle, foreignContractAddressValue: ForeignCallSingle): Promise<{
10
29
  values: (string | ForeignCallArray)[];
11
30
  }>;
12
31
  txeAdvanceBlocksBy(foreignBlocks: ForeignCallSingle): Promise<{
@@ -15,9 +34,6 @@ export declare class TXEService {
15
34
  txeAdvanceTimestampBy(foreignDuration: ForeignCallSingle): {
16
35
  values: (string | ForeignCallArray)[];
17
36
  };
18
- txeSetContractAddress(foreignAddress: ForeignCallSingle): {
19
- values: (string | ForeignCallArray)[];
20
- };
21
37
  txeDeploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, foreignSecret: ForeignCallSingle): Promise<{
22
38
  values: (string | ForeignCallArray)[];
23
39
  }>;
@@ -30,6 +46,9 @@ export declare class TXEService {
30
46
  txeAddAuthWitness(foreignAddress: ForeignCallSingle, foreignMessageHash: ForeignCallSingle): Promise<{
31
47
  values: (string | ForeignCallArray)[];
32
48
  }>;
49
+ utilityAssertCompatibleOracleVersion(foreignVersion: ForeignCallSingle): {
50
+ values: (string | ForeignCallArray)[];
51
+ };
33
52
  utilityGetRandomField(): {
34
53
  values: (string | ForeignCallArray)[];
35
54
  };
@@ -179,9 +198,9 @@ export declare class TXEService {
179
198
  avmOpcodeTimestamp(): Promise<{
180
199
  values: (string | ForeignCallArray)[];
181
200
  }>;
182
- avmOpcodeIsStaticCall(): {
201
+ avmOpcodeIsStaticCall(): Promise<{
183
202
  values: (string | ForeignCallArray)[];
184
- };
203
+ }>;
185
204
  avmOpcodeChainId(): Promise<{
186
205
  values: (string | ForeignCallArray)[];
187
206
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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"}