@aztec/txe 2.0.0-nightly.20250903 → 2.0.0-rc.2

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,9 @@ 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;
77
69
  utilityAssertCompatibleOracleVersion(version: number): void;
78
70
  utilityGetBlockNumber(): Promise<number>;
79
71
  utilityGetTimestamp(): Promise<bigint>;
@@ -98,7 +90,6 @@ export declare class TXE extends TXETypedOracle {
98
90
  utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
99
91
  getL1ToL2MembershipWitness(_contractAddress: AztecAddress, _messageHash: Fr, _secret: Fr): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
100
92
  utilityStorageRead(contractAddress: AztecAddress, startStorageSlot: Fr, blockNumber: number, numberOfElements: number): Promise<Fr[]>;
101
- storageWrite(startStorageSlot: Fr, values: Fr[]): Promise<Fr[]>;
102
93
  commitState(): Promise<void>;
103
94
  getTxRequestHash(): Fr;
104
95
  notifyCreatedContractClassLog(_log: ContractClassLog, _counter: number): Fr;
@@ -111,10 +102,6 @@ export declare class TXE extends TXETypedOracle {
111
102
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
112
103
  utilityValidateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
113
104
  utilityBulkRetrieveLogs(contractAddress: AztecAddress, logRetrievalRequestsArrayBaseSlot: Fr, logRetrievalResponsesArrayBaseSlot: Fr): Promise<void>;
114
- avmOpcodeNullifierExists(innerNullifier: Fr, targetAddress: AztecAddress): Promise<boolean>;
115
- avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
116
- avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
117
- avmOpcodeStorageRead(slot: Fr): Promise<Fr>;
118
105
  utilityStoreCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
119
106
  utilityLoadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
120
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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"}
@@ -11,7 +11,6 @@ import { WASMSimulator, extractCallStack, toACVMWitness, witnessMapToFields } fr
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,12 +188,6 @@ 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
207
192
  utilityAssertCompatibleOracleVersion(version) {
208
193
  if (version !== ORACLE_VERSION) {
@@ -360,15 +345,6 @@ export class TXE extends TXETypedOracle {
360
345
  }
361
346
  return values;
362
347
  }
363
- async storageWrite(startStorageSlot, values) {
364
- const publicDataWrites = await Promise.all(values.map(async (value, i)=>{
365
- const storageSlot = startStorageSlot.add(new Fr(i));
366
- this.logger.debug(`Oracle storage write: slot=${storageSlot.toString()} value=${value}`);
367
- return new PublicDataWrite(await computePublicDataTreeLeafSlot(this.contractAddress, storageSlot), value);
368
- }));
369
- await this.addPublicDataWrites(publicDataWrites);
370
- return publicDataWrites.map((write)=>write.value);
371
- }
372
348
  async commitState() {
373
349
  const blockNumber = await this.utilityGetBlockNumber();
374
350
  const { usedTxRequestHashForNonces } = this.noteCache.finish();
@@ -382,20 +358,12 @@ export class TXE extends TXETypedOracle {
382
358
  const nonceGenerator = usedTxRequestHashForNonces ? this.getTxRequestHash() : this.noteCache.getAllNullifiers()[0];
383
359
  let i = 0;
384
360
  const uniqueNoteHashesFromPrivate = await Promise.all(this.noteCache.getAllNotes().map(async (pendingNote)=>computeUniqueNoteHash(await computeNoteHashNonce(nonceGenerator, i++), await siloNoteHash(pendingNote.note.contractAddress, pendingNote.noteHashForConsumption))));
385
- txEffect.noteHashes = [
386
- ...uniqueNoteHashesFromPrivate,
387
- ...this.uniqueNoteHashesFromPublic
388
- ];
389
- txEffect.nullifiers = [
390
- ...this.siloedNullifiersFromPublic,
391
- ...this.noteCache.getAllNullifiers()
392
- ];
361
+ txEffect.noteHashes = uniqueNoteHashesFromPrivate;
362
+ txEffect.nullifiers = this.noteCache.getAllNullifiers();
393
363
  if (usedTxRequestHashForNonces) {
394
364
  txEffect.nullifiers.unshift(this.getTxRequestHash());
395
365
  }
396
- txEffect.publicDataWrites = this.publicDataWrites;
397
366
  txEffect.privateLogs = this.privateLogs;
398
- txEffect.publicLogs = this.publicLogs;
399
367
  txEffect.txHash = new TxHash(new Fr(blockNumber));
400
368
  const body = new Body([
401
369
  txEffect
@@ -429,11 +397,7 @@ export class TXE extends TXETypedOracle {
429
397
  l2Block.header = header;
430
398
  await fork.updateArchive(l2Block.header);
431
399
  await this.stateMachine.handleL2Block(l2Block);
432
- this.publicDataWrites = [];
433
400
  this.privateLogs = [];
434
- this.publicLogs = [];
435
- this.uniqueNoteHashesFromPublic = [];
436
- this.siloedNullifiersFromPublic = [];
437
401
  this.noteCache = new ExecutionNoteCache(this.getTxRequestHash());
438
402
  }
439
403
  getTxRequestHash() {
@@ -526,39 +490,6 @@ export class TXE extends TXETypedOracle {
526
490
  async utilityBulkRetrieveLogs(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot) {
527
491
  return await this.pxeOracleInterface.bulkRetrieveLogs(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot);
528
492
  }
529
- async avmOpcodeNullifierExists(innerNullifier, targetAddress) {
530
- const nullifier = await siloNullifier(targetAddress, innerNullifier);
531
- const db = this.baseFork;
532
- const treeIndex = (await db.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, [
533
- nullifier.toBuffer()
534
- ]))[0];
535
- const transientIndex = this.siloedNullifiersFromPublic.find((n)=>n.equals(nullifier));
536
- return treeIndex !== undefined || transientIndex !== undefined;
537
- }
538
- async avmOpcodeEmitNullifier(nullifier) {
539
- const siloedNullifier = await siloNullifier(this.contractAddress, nullifier);
540
- this.addSiloedNullifiersFromPublic([
541
- siloedNullifier
542
- ]);
543
- return Promise.resolve();
544
- }
545
- // Doesn't this need to get hashed w/ the nonce ?
546
- async avmOpcodeEmitNoteHash(noteHash) {
547
- const siloedNoteHash = await siloNoteHash(this.contractAddress, noteHash);
548
- this.addUniqueNoteHashesFromPublic([
549
- siloedNoteHash
550
- ]);
551
- return Promise.resolve();
552
- }
553
- async avmOpcodeStorageRead(slot) {
554
- const leafSlot = await computePublicDataTreeLeafSlot(this.contractAddress, slot);
555
- const lowLeafResult = await this.baseFork.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
556
- if (!lowLeafResult || !lowLeafResult.alreadyPresent) {
557
- return Fr.ZERO;
558
- }
559
- const preimage = await this.baseFork.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
560
- return preimage.leaf.value;
561
- }
562
493
  utilityStoreCapsule(contractAddress, slot, capsule) {
563
494
  if (!contractAddress.equals(this.contractAddress)) {
564
495
  // TODO(#10727): instead of this check that this.contractAddress is allowed to access the external DB
@@ -618,17 +549,16 @@ export class TXE extends TXETypedOracle {
618
549
  const txContext = new TxContext(this.CHAIN_ID, this.ROLLUP_VERSION, gasSettings);
619
550
  const blockHeader = await this.pxeOracleInterface.getBlockHeader();
620
551
  const noteCache = new ExecutionNoteCache(this.getTxRequestHash());
621
- // TODO(benesjan): Fix stale 'context' name.
622
- 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, /**
623
553
  * In TXE, the typical transaction entrypoint is skipped, so we need to simulate the actions that such a
624
554
  * contract would perform, including setting senderForTags.
625
555
  */ from);
626
- context.privateStoreInExecutionCache(args, argsHash);
556
+ privateExecutionOracle.privateStoreInExecutionCache(args, argsHash);
627
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.
628
558
  let result;
629
559
  let executionResult;
630
560
  try {
631
- executionResult = await executePrivateFunction(this.simulator, context, artifact, targetContractAddress, functionSelector);
561
+ executionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, artifact, targetContractAddress, functionSelector);
632
562
  const { usedTxRequestHashForNonces } = noteCache.finish();
633
563
  const firstNullifierHint = usedTxRequestHashForNonces ? Fr.ZERO : noteCache.getAllNullifiers()[0];
634
564
  const publicCallRequests = collectNested([
@@ -637,7 +567,7 @@ export class TXE extends TXETypedOracle {
637
567
  r.publicInputs.publicTeardownCallRequest
638
568
  ]));
639
569
  const publicFunctionsCalldata = await Promise.all(publicCallRequests.map(async (r)=>{
640
- const calldata = await context.privateLoadFromExecutionCache(r.calldataHash);
570
+ const calldata = await privateExecutionOracle.privateLoadFromExecutionCache(r.calldataHash);
641
571
  return new HashedValues(calldata, r.calldataHash);
642
572
  }));
643
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
  }>;
@@ -182,9 +198,9 @@ export declare class TXEService {
182
198
  avmOpcodeTimestamp(): Promise<{
183
199
  values: (string | ForeignCallArray)[];
184
200
  }>;
185
- avmOpcodeIsStaticCall(): {
201
+ avmOpcodeIsStaticCall(): Promise<{
186
202
  values: (string | ForeignCallArray)[];
187
- };
203
+ }>;
188
204
  avmOpcodeChainId(): Promise<{
189
205
  values: (string | ForeignCallArray)[];
190
206
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,2BAA2B,EAAa,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,KAAK,gBAAgB,EAAkC,MAAM,mBAAmB,CAAC;AAI1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAYvB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAiB;gBACrB,QAAQ,EAAE,cAAc;IAIpC,WAAW,CAAC,QAAQ,EAAE,cAAc;IAM9B,0BAA0B,CAC9B,wBAAwB,EAAE,iBAAiB,EAC3C,uBAAuB,EAAE,iBAAiB;;;IAWtC,kBAAkB,CAAC,aAAa,EAAE,iBAAiB;;;IAQzD,qBAAqB,CAAC,eAAe,EAAE,iBAAiB;;;IAQxD,qBAAqB,CAAC,cAAc,EAAE,iBAAiB;;;IAQjD,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,aAAa,EAAE,iBAAiB;;;IAgB7G,gBAAgB,CAAC,aAAa,EAAE,iBAAiB;;;IAWjD,aAAa,CACjB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,2BAA2B,EACrC,aAAa,EAAE,iBAAiB;;;IAY5B,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB;;;IAWhG,oCAAoC,CAAC,cAAc,EAAE,iBAAiB;;;IAQtE,qBAAqB;;;IAMf,yBAAyB;;;IAMzB,qBAAqB;;;IAOrB,mBAAmB;;;IAMnB,wBAAwB;;;IAO9B,4BAA4B,CAC1B,cAAc,EAAE,iBAAiB,EACjC,aAAa,EAAE,gBAAgB,EAC/B,WAAW,EAAE,iBAAiB;;;IAU1B,6BAA6B,CAAC,WAAW,EAAE,iBAAiB;;;IASlE,eAAe,CACb,cAAc,EAAE,gBAAgB,EAChC,cAAc,EAAE,iBAAiB,EACjC,aAAa,EAAE,gBAAgB;;;IAY3B,kBAAkB,CACtB,sBAAsB,EAAE,iBAAiB,EACzC,uBAAuB,EAAE,iBAAiB,EAC1C,kBAAkB,EAAE,iBAAiB,EACrC,uBAAuB,EAAE,iBAAiB;;;IAiBtC,2BAA2B,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB;;;IAYrG,eAAe,CACnB,kBAAkB,EAAE,iBAAiB,EACrC,iBAAiB,EAAE,iBAAiB,EACpC,sBAAsB,EAAE,gBAAgB,EACxC,sBAAsB,EAAE,gBAAgB,EACxC,sBAAsB,EAAE,gBAAgB,EACxC,mBAAmB,EAAE,gBAAgB,EACrC,wBAAwB,EAAE,gBAAgB,EAC1C,oBAAoB,EAAE,gBAAgB,EACtC,oBAAoB,EAAE,gBAAgB,EACtC,oBAAoB,EAAE,gBAAgB,EACtC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,iBAAiB,EAC/B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,EAChC,eAAe,EAAE,iBAAiB,EAClC,gCAAgC,EAAE,iBAAiB;;;IAqDrD,wBAAwB,CACtB,kBAAkB,EAAE,iBAAiB,EACrC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,gBAAgB,EAC7B,eAAe,EAAE,iBAAiB,EAClC,cAAc,EAAE,iBAAiB;;;IAa7B,0BAA0B,CAC9B,qBAAqB,EAAE,iBAAiB,EACxC,eAAe,EAAE,iBAAiB,EAClC,cAAc,EAAE,iBAAiB;;;IAW7B,6BAA6B,CAAC,qBAAqB,EAAE,iBAAiB;;;IAQtE,2BAA2B,CAAC,qBAAqB,EAAE,iBAAiB;;;IAQpE,0BAA0B,CAAC,cAAc,EAAE,iBAAiB;;;IAgB5D,qCAAqC,CAAC,cAAc,EAAE,iBAAiB;;;IAQvE,8BAA8B,CAAC,cAAc,EAAE,iBAAiB;;;IAQtE,0BAA0B,CACxB,6BAA6B,EAAE,iBAAiB,EAChD,wBAAwB,EAAE,iBAAiB,EAC3C,gBAAgB,EAAE,iBAAiB,EACnC,yBAAyB,EAAE,iBAAiB,EAC5C,oBAAoB,EAAE,iBAAiB;IAOnC,oCAAoC,CACxC,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,EAAE,iBAAiB;;;IAa/B,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB;;;IAW1D,uCAAuC,CAC5C,6BAA6B,EAAE,iBAAiB,EAChD,oBAAoB,EAAE,iBAAiB,EACvC,yBAAyB,EAAE,iBAAiB,EAC5C,oBAAoB,EAAE,iBAAiB;IAKlC,0CAA0C,CAC/C,6BAA6B,EAAE,iBAAiB,EAChD,oBAAoB,EAAE,iBAAiB,EACvC,yBAAyB,EAAE,iBAAiB,EAC5C,oBAAoB,EAAE,iBAAiB;IAKlC,8CAA8C,CAAC,sCAAsC,EAAE,iBAAiB;IAIzG,iBAAiB;;;IAMjB,iBAAiB;;;IAMjB,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB;;;IAW3D,2BAA2B,CAC/B,kBAAkB,EAAE,iBAAiB,EACrC,aAAa,EAAE,iBAAiB,EAChC,gBAAgB,EAAE,iBAAiB;;;IAgB/B,uCAAuC,CAC3C,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,EAAE,iBAAiB;;;IAa/B,sCAAsC,CAAC,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB;;;IAS5G,sBAAsB,CAAC,oCAAoC,EAAE,iBAAiB;;;IAQvE,qCAAqC,CAChD,sBAAsB,EAAE,iBAAiB,EACzC,0CAA0C,EAAE,iBAAiB,EAC7D,2CAA2C,EAAE,iBAAiB;;;IAenD,uBAAuB,CAClC,sBAAsB,EAAE,iBAAiB,EACzC,wCAAwC,EAAE,iBAAiB,EAC3D,yCAAyC,EAAE,iBAAiB;;;IAexD,mBAAmB,CACvB,sBAAsB,EAAE,iBAAiB,EACzC,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,gBAAgB;;;IAW5B,kBAAkB,CACtB,sBAAsB,EAAE,iBAAiB,EACzC,WAAW,EAAE,iBAAiB,EAC9B,YAAY,EAAE,iBAAiB;;;IAmB3B,oBAAoB,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB;;;IAS9F,kBAAkB,CACtB,sBAAsB,EAAE,iBAAiB,EACzC,cAAc,EAAE,iBAAiB,EACjC,cAAc,EAAE,iBAAiB,EACjC,iBAAiB,EAAE,iBAAiB;;;IAgBhC,oBAAoB,CACxB,4BAA4B,EAAE,gBAAgB,EAC9C,uBAAuB,EAAE,iBAAiB,EAC1C,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,gBAAgB;;;IAa3B,sBAAsB,CAC1B,cAAc,EAAE,iBAAiB,EACjC,kBAAkB,EAAE,iBAAiB,EACrC,kBAAkB,EAAE,iBAAiB,EACrC,kBAAkB,EAAE,iBAAiB;;;IAcvC,kBAAkB,CAAC,YAAY,EAAE,gBAAgB;IAMjD,2BAA2B,CAAC,eAAe,EAAE,gBAAgB;;;IAKvD,oBAAoB,CAAC,WAAW,EAAE,iBAAiB;;;IAQnD,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB;;;IASrF,oCAAoC,CAAC,cAAc,EAAE,iBAAiB;;;IAYtE,mCAAmC,CAAC,cAAc,EAAE,iBAAiB;;;IAYrE,8CAA8C,CAAC,cAAc,EAAE,iBAAiB;;;IAYtF,eAAe;;;IAMT,sBAAsB,CAAC,gBAAgB,EAAE,iBAAiB;;;IAQ1D,qBAAqB,CAAC,eAAe,EAAE,iBAAiB;;;IAQxD,wBAAwB,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB;;;IAS1G,gBAAgB;;;IAMhB,oBAAoB;;;IAMpB,kBAAkB;;;IAMxB,qBAAqB;;;IAOf,gBAAgB;;;IAMhB,gBAAgB;;;IAMtB,uBAAuB;IAMvB,uBAAuB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB;IAMhG,aAAa,CACX,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,EAChC,eAAe,EAAE,iBAAiB,EAClC,cAAc,EAAE,iBAAiB,EACjC,YAAY,EAAE,gBAAgB;IAOhC,mBAAmB,CACjB,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,EAChC,eAAe,EAAE,iBAAiB,EAClC,cAAc,EAAE,iBAAiB,EACjC,YAAY,EAAE,gBAAgB;IAOhC,oBAAoB;IAMd,qBAAqB,CACzB,WAAW,EAAE,iBAAiB,EAC9B,4BAA4B,EAAE,iBAAiB,EAC/C,uBAAuB,EAAE,iBAAiB,EAC1C,kBAAkB,EAAE,iBAAiB,EACrC,WAAW,EAAE,gBAAgB,EAC7B,eAAe,EAAE,iBAAiB,EAClC,mBAAmB,EAAE,iBAAiB;;;IAqBlC,uBAAuB,CAC3B,4BAA4B,EAAE,iBAAiB,EAC/C,uBAAuB,EAAE,iBAAiB,EAC1C,eAAe,EAAE,iBAAiB;;;IAW9B,oBAAoB,CACxB,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,iBAAiB,EACjC,cAAc,EAAE,iBAAiB,EACjC,eAAe,EAAE,gBAAgB,EACjC,mBAAmB,EAAE,iBAAiB;;;IAYlC,uBAAuB;;;IAavB,uBAAuB,CAAC,oBAAoB,EAAE,iBAAiB;;;CAOtE"}
1
+ {"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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"}