@aztec/txe 0.0.1-commit.e588bc7e5 → 0.0.1-commit.e5a3663dd
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.
- package/dest/oracle/interfaces.d.ts +7 -2
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.d.ts +14 -6
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +46 -21
- package/dest/rpc_translator.d.ts +44 -3
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +207 -26
- package/dest/state_machine/archiver.d.ts +1 -1
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +6 -5
- package/dest/state_machine/global_variable_builder.d.ts +9 -4
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +9 -3
- package/dest/state_machine/index.d.ts +1 -1
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +2 -2
- package/dest/state_machine/mock_epoch_cache.d.ts +2 -1
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +3 -0
- package/dest/txe_session.d.ts +48 -4
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +77 -17
- package/dest/util/encoding.d.ts +3 -1
- package/dest/util/encoding.d.ts.map +1 -1
- package/dest/util/encoding.js +4 -0
- package/package.json +15 -15
- package/src/oracle/interfaces.ts +3 -1
- package/src/oracle/txe_oracle_top_level_context.ts +46 -21
- package/src/rpc_translator.ts +254 -37
- package/src/state_machine/archiver.ts +4 -5
- package/src/state_machine/global_variable_builder.ts +13 -4
- package/src/state_machine/index.ts +3 -1
- package/src/state_machine/mock_epoch_cache.ts +4 -0
- package/src/txe_session.ts +130 -12
- package/src/util/encoding.ts +5 -0
package/dest/rpc_translator.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Fr, Point } from '@aztec/aztec.js/fields';
|
|
2
|
-
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX } from '@aztec/constants';
|
|
2
|
+
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
3
3
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { packAsHintedNote } from '@aztec/pxe/simulator';
|
|
5
5
|
import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
6
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import {
|
|
8
|
-
import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle } from './util/encoding.js';
|
|
7
|
+
import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, blockHashFromSingle, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle } from './util/encoding.js';
|
|
9
8
|
const MAX_EVENT_LEN = 10; // This is MAX_MESSAGE_CONTENT_LEN - PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN
|
|
10
9
|
const MAX_PRIVATE_EVENTS_PER_TXE_QUERY = 5;
|
|
11
10
|
export class UnavailableOracleError extends Error {
|
|
@@ -161,9 +160,10 @@ export class RPCTranslator {
|
|
|
161
160
|
}
|
|
162
161
|
// PXE oracles
|
|
163
162
|
// eslint-disable-next-line camelcase
|
|
164
|
-
|
|
165
|
-
const
|
|
166
|
-
|
|
163
|
+
aztec_utl_assertCompatibleOracleVersionV2(foreignMajor, foreignMinor) {
|
|
164
|
+
const major = fromSingle(foreignMajor).toNumber();
|
|
165
|
+
const minor = fromSingle(foreignMinor).toNumber();
|
|
166
|
+
this.handlerAsMisc().assertCompatibleOracleVersion(major, minor);
|
|
167
167
|
return toForeignCallResult([]);
|
|
168
168
|
}
|
|
169
169
|
// eslint-disable-next-line camelcase
|
|
@@ -182,11 +182,58 @@ export class RPCTranslator {
|
|
|
182
182
|
}
|
|
183
183
|
// eslint-disable-next-line camelcase
|
|
184
184
|
async aztec_txe_getLastTxEffects() {
|
|
185
|
-
const { txHash, noteHashes, nullifiers } = await this.handlerAsTxe().getLastTxEffects();
|
|
185
|
+
const { txHash, noteHashes, nullifiers, privateLogs } = await this.handlerAsTxe().getLastTxEffects();
|
|
186
|
+
if (privateLogs.length > MAX_PRIVATE_LOGS_PER_TX) {
|
|
187
|
+
throw new Error(`${privateLogs.length} private logs exceed max ${MAX_PRIVATE_LOGS_PER_TX}`);
|
|
188
|
+
}
|
|
189
|
+
// Same workaround as `aztec_txe_getPrivateEvents`: Noir cannot yet return nested structs with arrays, so we return
|
|
190
|
+
// a flat multidimensional array plus per-log lengths and the total count, and reassemble into a
|
|
191
|
+
// `BoundedVec<BoundedVec<T>>` on the Noir side. Each log contributes only its emitted fields. The rest
|
|
192
|
+
// is zero-padded to `PRIVATE_LOG_SIZE_IN_FIELDS`.
|
|
193
|
+
const emittedLogs = privateLogs.map((log)=>log.getEmittedFields());
|
|
194
|
+
const rawLogStorage = emittedLogs.map((fields)=>fields.concat(Array(PRIVATE_LOG_SIZE_IN_FIELDS - fields.length).fill(new Fr(0)))).concat(Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(Array(PRIVATE_LOG_SIZE_IN_FIELDS).fill(new Fr(0)))).flat();
|
|
195
|
+
const logLengths = emittedLogs.map((fields)=>new Fr(fields.length)).concat(Array(MAX_PRIVATE_LOGS_PER_TX - emittedLogs.length).fill(new Fr(0)));
|
|
196
|
+
const logCount = new Fr(emittedLogs.length);
|
|
186
197
|
return toForeignCallResult([
|
|
187
198
|
toSingle(txHash.hash),
|
|
188
199
|
...arrayToBoundedVec(toArray(noteHashes), MAX_NOTE_HASHES_PER_TX),
|
|
189
|
-
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX)
|
|
200
|
+
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX),
|
|
201
|
+
toArray(rawLogStorage),
|
|
202
|
+
toArray(logLengths),
|
|
203
|
+
toSingle(logCount)
|
|
204
|
+
]);
|
|
205
|
+
}
|
|
206
|
+
// eslint-disable-next-line camelcase
|
|
207
|
+
aztec_txe_getLastCallOffchainEffects() {
|
|
208
|
+
// This oracle returns all offchain effect payloads (messages, authwit requests, etc.) emitted by the last top-level call,
|
|
209
|
+
// MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY is arbitrarily set at 64 because we need a bound. Nothing inherent about it.
|
|
210
|
+
const MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY = 64;
|
|
211
|
+
// Must match MAX_OFFCHAIN_EFFECT_LEN in txe_oracles.nr.
|
|
212
|
+
const MAX_OFFCHAIN_EFFECT_LEN = 2 + PRIVATE_LOG_CIPHERTEXT_LEN;
|
|
213
|
+
const { effects } = this.stateHandler.getLastCallOffchainEffects();
|
|
214
|
+
if (effects.length > MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY) {
|
|
215
|
+
throw new Error(`${effects.length} offchain effects exceed max ${MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY}`);
|
|
216
|
+
}
|
|
217
|
+
if (effects.some((e)=>e.length > MAX_OFFCHAIN_EFFECT_LEN)) {
|
|
218
|
+
throw new Error(`Some offchain effect has length larger than max ${MAX_OFFCHAIN_EFFECT_LEN}`);
|
|
219
|
+
}
|
|
220
|
+
const rawArrayStorage = effects.map((e)=>e.concat(Array(MAX_OFFCHAIN_EFFECT_LEN - e.length).fill(new Fr(0)))).concat(Array(MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY - effects.length).fill(Array(MAX_OFFCHAIN_EFFECT_LEN).fill(new Fr(0)))).flat();
|
|
221
|
+
const effectLengths = effects.map((e)=>new Fr(e.length)).concat(Array(MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY - effects.length).fill(new Fr(0)));
|
|
222
|
+
const count = new Fr(effects.length);
|
|
223
|
+
return toForeignCallResult([
|
|
224
|
+
toArray(rawArrayStorage),
|
|
225
|
+
toArray(effectLengths),
|
|
226
|
+
toSingle(count)
|
|
227
|
+
]);
|
|
228
|
+
}
|
|
229
|
+
// eslint-disable-next-line camelcase
|
|
230
|
+
aztec_txe_getLastCallContext() {
|
|
231
|
+
const { txHash, anchorBlockTimestamp } = this.stateHandler.getLastCallContext();
|
|
232
|
+
const isSome = txHash.isZero() ? 0 : 1;
|
|
233
|
+
return toForeignCallResult([
|
|
234
|
+
toSingle(isSome),
|
|
235
|
+
toSingle(txHash),
|
|
236
|
+
toSingle(new Fr(anchorBlockTimestamp))
|
|
190
237
|
]);
|
|
191
238
|
}
|
|
192
239
|
// eslint-disable-next-line camelcase
|
|
@@ -245,7 +292,7 @@ export class RPCTranslator {
|
|
|
245
292
|
}
|
|
246
293
|
// eslint-disable-next-line camelcase
|
|
247
294
|
async aztec_utl_getFromPublicStorage(foreignBlockHash, foreignContractAddress, foreignStartStorageSlot, foreignNumberOfElements) {
|
|
248
|
-
const blockHash =
|
|
295
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
249
296
|
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
250
297
|
const startStorageSlot = fromSingle(foreignStartStorageSlot);
|
|
251
298
|
const numberOfElements = fromSingle(foreignNumberOfElements).toNumber();
|
|
@@ -256,7 +303,7 @@ export class RPCTranslator {
|
|
|
256
303
|
}
|
|
257
304
|
// eslint-disable-next-line camelcase
|
|
258
305
|
async aztec_utl_getPublicDataWitness(foreignBlockHash, foreignLeafSlot) {
|
|
259
|
-
const blockHash =
|
|
306
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
260
307
|
const leafSlot = fromSingle(foreignLeafSlot);
|
|
261
308
|
const witness = await this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot);
|
|
262
309
|
if (!witness) {
|
|
@@ -389,7 +436,7 @@ export class RPCTranslator {
|
|
|
389
436
|
}
|
|
390
437
|
// eslint-disable-next-line camelcase
|
|
391
438
|
async aztec_utl_getNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
|
|
392
|
-
const blockHash =
|
|
439
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
393
440
|
const nullifier = fromSingle(foreignNullifier);
|
|
394
441
|
const witness = await this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier);
|
|
395
442
|
if (!witness) {
|
|
@@ -440,7 +487,7 @@ export class RPCTranslator {
|
|
|
440
487
|
}
|
|
441
488
|
// eslint-disable-next-line camelcase
|
|
442
489
|
async aztec_utl_getNoteHashMembershipWitness(foreignAnchorBlockHash, foreignNoteHash) {
|
|
443
|
-
const blockHash =
|
|
490
|
+
const blockHash = blockHashFromSingle(foreignAnchorBlockHash);
|
|
444
491
|
const noteHash = fromSingle(foreignNoteHash);
|
|
445
492
|
const witness = await this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash);
|
|
446
493
|
if (!witness) {
|
|
@@ -450,8 +497,8 @@ export class RPCTranslator {
|
|
|
450
497
|
}
|
|
451
498
|
// eslint-disable-next-line camelcase
|
|
452
499
|
async aztec_utl_getBlockHashMembershipWitness(foreignAnchorBlockHash, foreignBlockHash) {
|
|
453
|
-
const anchorBlockHash =
|
|
454
|
-
const blockHash =
|
|
500
|
+
const anchorBlockHash = blockHashFromSingle(foreignAnchorBlockHash);
|
|
501
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
455
502
|
const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash);
|
|
456
503
|
if (!witness) {
|
|
457
504
|
throw new Error(`Block hash ${blockHash.toString()} not found in the archive tree at anchor block ${anchorBlockHash.toString()}.`);
|
|
@@ -460,7 +507,7 @@ export class RPCTranslator {
|
|
|
460
507
|
}
|
|
461
508
|
// eslint-disable-next-line camelcase
|
|
462
509
|
async aztec_utl_getLowNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
|
|
463
|
-
const blockHash =
|
|
510
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
464
511
|
const nullifier = fromSingle(foreignNullifier);
|
|
465
512
|
const witness = await this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier);
|
|
466
513
|
if (!witness) {
|
|
@@ -476,6 +523,14 @@ export class RPCTranslator {
|
|
|
476
523
|
return toForeignCallResult([]);
|
|
477
524
|
}
|
|
478
525
|
// eslint-disable-next-line camelcase
|
|
526
|
+
async aztec_utl_getPendingTaggedLogs_v2(foreignScope) {
|
|
527
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
528
|
+
const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(scope);
|
|
529
|
+
return toForeignCallResult([
|
|
530
|
+
toSingle(slot)
|
|
531
|
+
]);
|
|
532
|
+
}
|
|
533
|
+
// eslint-disable-next-line camelcase
|
|
479
534
|
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(foreignContractAddress, foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
480
535
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
481
536
|
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
@@ -487,6 +542,16 @@ export class RPCTranslator {
|
|
|
487
542
|
return toForeignCallResult([]);
|
|
488
543
|
}
|
|
489
544
|
// eslint-disable-next-line camelcase
|
|
545
|
+
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2(foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
546
|
+
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
547
|
+
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
548
|
+
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
549
|
+
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
550
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
551
|
+
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
552
|
+
return toForeignCallResult([]);
|
|
553
|
+
}
|
|
554
|
+
// eslint-disable-next-line camelcase
|
|
490
555
|
async aztec_utl_getLogsByTag(foreignContractAddress, foreignLogRetrievalRequestsArrayBaseSlot, foreignLogRetrievalResponsesArrayBaseSlot, foreignScope) {
|
|
491
556
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
492
557
|
const logRetrievalRequestsArrayBaseSlot = fromSingle(foreignLogRetrievalRequestsArrayBaseSlot);
|
|
@@ -505,6 +570,22 @@ export class RPCTranslator {
|
|
|
505
570
|
return toForeignCallResult([]);
|
|
506
571
|
}
|
|
507
572
|
// eslint-disable-next-line camelcase
|
|
573
|
+
async aztec_utl_getLogsByTag_v2(foreignRequestArrayBaseSlot) {
|
|
574
|
+
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
575
|
+
const responseSlot = await this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot);
|
|
576
|
+
return toForeignCallResult([
|
|
577
|
+
toSingle(responseSlot)
|
|
578
|
+
]);
|
|
579
|
+
}
|
|
580
|
+
// eslint-disable-next-line camelcase
|
|
581
|
+
async aztec_utl_getMessageContextsByTxHash_v2(foreignRequestArrayBaseSlot) {
|
|
582
|
+
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
583
|
+
const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(requestArrayBaseSlot);
|
|
584
|
+
return toForeignCallResult([
|
|
585
|
+
toSingle(responseSlot)
|
|
586
|
+
]);
|
|
587
|
+
}
|
|
588
|
+
// eslint-disable-next-line camelcase
|
|
508
589
|
aztec_utl_setCapsule(foreignContractAddress, foreignSlot, foreignCapsule, foreignScope) {
|
|
509
590
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
510
591
|
const slot = fromSingle(foreignSlot);
|
|
@@ -554,6 +635,61 @@ export class RPCTranslator {
|
|
|
554
635
|
await this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope);
|
|
555
636
|
return toForeignCallResult([]);
|
|
556
637
|
}
|
|
638
|
+
// eslint-disable-next-line camelcase
|
|
639
|
+
aztec_utl_pushEphemeral(foreignSlot, foreignElements) {
|
|
640
|
+
const slot = fromSingle(foreignSlot);
|
|
641
|
+
const elements = fromArray(foreignElements);
|
|
642
|
+
const newLen = this.handlerAsUtility().pushEphemeral(slot, elements);
|
|
643
|
+
return toForeignCallResult([
|
|
644
|
+
toSingle(new Fr(newLen))
|
|
645
|
+
]);
|
|
646
|
+
}
|
|
647
|
+
// eslint-disable-next-line camelcase
|
|
648
|
+
aztec_utl_popEphemeral(foreignSlot) {
|
|
649
|
+
const slot = fromSingle(foreignSlot);
|
|
650
|
+
const element = this.handlerAsUtility().popEphemeral(slot);
|
|
651
|
+
return toForeignCallResult([
|
|
652
|
+
toArray(element)
|
|
653
|
+
]);
|
|
654
|
+
}
|
|
655
|
+
// eslint-disable-next-line camelcase
|
|
656
|
+
aztec_utl_getEphemeral(foreignSlot, foreignIndex) {
|
|
657
|
+
const slot = fromSingle(foreignSlot);
|
|
658
|
+
const index = fromSingle(foreignIndex).toNumber();
|
|
659
|
+
const element = this.handlerAsUtility().getEphemeral(slot, index);
|
|
660
|
+
return toForeignCallResult([
|
|
661
|
+
toArray(element)
|
|
662
|
+
]);
|
|
663
|
+
}
|
|
664
|
+
// eslint-disable-next-line camelcase
|
|
665
|
+
aztec_utl_setEphemeral(foreignSlot, foreignIndex, foreignElements) {
|
|
666
|
+
const slot = fromSingle(foreignSlot);
|
|
667
|
+
const index = fromSingle(foreignIndex).toNumber();
|
|
668
|
+
const elements = fromArray(foreignElements);
|
|
669
|
+
this.handlerAsUtility().setEphemeral(slot, index, elements);
|
|
670
|
+
return toForeignCallResult([]);
|
|
671
|
+
}
|
|
672
|
+
// eslint-disable-next-line camelcase
|
|
673
|
+
aztec_utl_getEphemeralLen(foreignSlot) {
|
|
674
|
+
const slot = fromSingle(foreignSlot);
|
|
675
|
+
const len = this.handlerAsUtility().getEphemeralLen(slot);
|
|
676
|
+
return toForeignCallResult([
|
|
677
|
+
toSingle(new Fr(len))
|
|
678
|
+
]);
|
|
679
|
+
}
|
|
680
|
+
// eslint-disable-next-line camelcase
|
|
681
|
+
aztec_utl_removeEphemeral(foreignSlot, foreignIndex) {
|
|
682
|
+
const slot = fromSingle(foreignSlot);
|
|
683
|
+
const index = fromSingle(foreignIndex).toNumber();
|
|
684
|
+
this.handlerAsUtility().removeEphemeral(slot, index);
|
|
685
|
+
return toForeignCallResult([]);
|
|
686
|
+
}
|
|
687
|
+
// eslint-disable-next-line camelcase
|
|
688
|
+
aztec_utl_clearEphemeral(foreignSlot) {
|
|
689
|
+
const slot = fromSingle(foreignSlot);
|
|
690
|
+
this.handlerAsUtility().clearEphemeral(slot);
|
|
691
|
+
return toForeignCallResult([]);
|
|
692
|
+
}
|
|
557
693
|
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
558
694
|
// The compiler didn't throw an error, so it took me a while to learn of the existence of this file, and that I need
|
|
559
695
|
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
@@ -604,8 +740,13 @@ export class RPCTranslator {
|
|
|
604
740
|
return Promise.resolve(toForeignCallResult([]));
|
|
605
741
|
}
|
|
606
742
|
// eslint-disable-next-line camelcase
|
|
607
|
-
aztec_utl_emitOffchainEffect(
|
|
608
|
-
|
|
743
|
+
aztec_utl_emitOffchainEffect(foreignData) {
|
|
744
|
+
// Record the raw payload against the currently-executing top-level call. The Noir side
|
|
745
|
+
// (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
|
|
746
|
+
// (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
|
|
747
|
+
// for `offchain_receive`.
|
|
748
|
+
this.stateHandler.recordOffchainEffect(fromArray(foreignData));
|
|
749
|
+
return Promise.resolve(toForeignCallResult([]));
|
|
609
750
|
}
|
|
610
751
|
// AVM opcodes
|
|
611
752
|
// eslint-disable-next-line camelcase
|
|
@@ -756,9 +897,31 @@ export class RPCTranslator {
|
|
|
756
897
|
const args = fromArray(foreignArgs);
|
|
757
898
|
const argsHash = fromSingle(foreignArgsHash);
|
|
758
899
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
759
|
-
const returnValues = await this.
|
|
760
|
-
|
|
761
|
-
|
|
900
|
+
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
901
|
+
const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, this.stateHandler.getCurrentJob());
|
|
902
|
+
// Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
|
|
903
|
+
// round-tripping them through `aztec_utl_emitOffchainEffect`, so the session buffer is empty
|
|
904
|
+
// at this point. Drain the effects from the execution tree into the session buffer so the
|
|
905
|
+
// next `env.offchain_messages()` call in the test sees them.
|
|
906
|
+
for (const data of offchainEffects){
|
|
907
|
+
this.stateHandler.recordOffchainEffect(data);
|
|
908
|
+
}
|
|
909
|
+
// TODO(F-335): Avoid doing the following call here.
|
|
910
|
+
await this.stateHandler.cycleJob();
|
|
911
|
+
if (isStaticCall) {
|
|
912
|
+
// Static calls revert their checkpoint and mine no block, so there is no tx hash to tag
|
|
913
|
+
// offchain effects with. Querying `getLastTxEffects()` here would return an unrelated
|
|
914
|
+
// predecessor tx.
|
|
915
|
+
return {
|
|
916
|
+
result: returnValues
|
|
917
|
+
};
|
|
918
|
+
}
|
|
919
|
+
const { txHash } = await this.handlerAsTxe().getLastTxEffects();
|
|
920
|
+
return {
|
|
921
|
+
result: returnValues,
|
|
922
|
+
txHash: txHash.hash
|
|
923
|
+
};
|
|
924
|
+
});
|
|
762
925
|
return toForeignCallResult([
|
|
763
926
|
toArray(returnValues)
|
|
764
927
|
]);
|
|
@@ -768,9 +931,14 @@ export class RPCTranslator {
|
|
|
768
931
|
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
769
932
|
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
770
933
|
const args = fromArray(foreignArgs);
|
|
771
|
-
const returnValues = await this.
|
|
772
|
-
|
|
773
|
-
|
|
934
|
+
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
935
|
+
const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob());
|
|
936
|
+
// TODO(F-335): Avoid doing the following call here.
|
|
937
|
+
await this.stateHandler.cycleJob();
|
|
938
|
+
return {
|
|
939
|
+
result: returnValues
|
|
940
|
+
};
|
|
941
|
+
});
|
|
774
942
|
return toForeignCallResult([
|
|
775
943
|
toArray(returnValues)
|
|
776
944
|
]);
|
|
@@ -781,9 +949,22 @@ export class RPCTranslator {
|
|
|
781
949
|
const address = addressFromSingle(foreignAddress);
|
|
782
950
|
const calldata = fromArray(foreignCalldata);
|
|
783
951
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
784
|
-
const returnValues = await this.
|
|
785
|
-
|
|
786
|
-
|
|
952
|
+
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
953
|
+
const returnValues = await this.handlerAsTxe().publicCallNewFlow(from, address, calldata, isStaticCall);
|
|
954
|
+
// TODO(F-335): Avoid doing the following call here.
|
|
955
|
+
await this.stateHandler.cycleJob();
|
|
956
|
+
if (isStaticCall) {
|
|
957
|
+
// See equivalent branch in `aztec_txe_privateCallNewFlow`.
|
|
958
|
+
return {
|
|
959
|
+
result: returnValues
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
const { txHash } = await this.handlerAsTxe().getLastTxEffects();
|
|
963
|
+
return {
|
|
964
|
+
result: returnValues,
|
|
965
|
+
txHash: txHash.hash
|
|
966
|
+
};
|
|
967
|
+
});
|
|
787
968
|
return toForeignCallResult([
|
|
788
969
|
toArray(returnValues)
|
|
789
970
|
]);
|
|
@@ -28,4 +28,4 @@ export declare class TXEArchiver extends ArchiverDataSourceBase {
|
|
|
28
28
|
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
29
29
|
syncImmediate(): Promise<void>;
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0QsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQW9CLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQW9DLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRTs7OztHQUlHO0FBQ0gscUJBQWEsV0FBWSxTQUFRLHNCQUFzQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBNkM7SUFFckUsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLEVBRWhDO0lBRVksY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFaEg7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRTdDO0lBRU0sa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUvQztJQUVNLGNBQWMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFbEQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUM7UUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBRTdEO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRW5EO0lBRVksU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FpQ3hDO0lBRU0scUJBQXFCLElBQUksT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FFOUQ7SUFFTSxzQkFBc0IsSUFBSSxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUVoRTtJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFbEU7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVwQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAsD,MAAM,iBAAiB,CAAC;AAE7G,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,CAA6C;IAErE,YAAY,EAAE,EAAE,iBAAiB,EAEhC;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,CAiCxC;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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArchiverDataSourceBase, ArchiverDataStoreUpdater,
|
|
1
|
+
import { ArchiverDataSourceBase, ArchiverDataStoreUpdater, createArchiverDataStores } from '@aztec/archiver';
|
|
2
2
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
3
3
|
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -7,10 +7,11 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
7
7
|
* Provides most of the endpoints needed by the node for reading from and writing to state,
|
|
8
8
|
* without needing any of the extra overhead that the Archiver itself requires (i.e. an L1 client).
|
|
9
9
|
*/ export class TXEArchiver extends ArchiverDataSourceBase {
|
|
10
|
-
updater = new ArchiverDataStoreUpdater(this.
|
|
10
|
+
updater = new ArchiverDataStoreUpdater(this.stores);
|
|
11
11
|
constructor(db){
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
super(createArchiverDataStores(db, {
|
|
13
|
+
logsMaxPageSize: 9999
|
|
14
|
+
}));
|
|
14
15
|
}
|
|
15
16
|
async addCheckpoints(checkpoints, result) {
|
|
16
17
|
await this.updater.addCheckpoints(checkpoints, result);
|
|
@@ -47,7 +48,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
47
48
|
}
|
|
48
49
|
// TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
|
|
49
50
|
// This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
|
|
50
|
-
const checkpoint = await this.
|
|
51
|
+
const checkpoint = await this.stores.blocks.getRangeOfCheckpoints(CheckpointNumber.fromBlockNumber(number), 1);
|
|
51
52
|
if (checkpoint.length === 0) {
|
|
52
53
|
throw new Error(`L2Tips requested from TXE Archiver but no checkpoint found for block number ${number}`);
|
|
53
54
|
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import type { SimulationOverridesPlan } from '@aztec/ethereum/contracts';
|
|
1
2
|
import { BlockNumber, type SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
5
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
5
|
-
import { type
|
|
6
|
-
|
|
6
|
+
import { type CheckpointGlobalVariables, type FeeProvider, type GlobalVariableBuilder, GlobalVariables } from '@aztec/stdlib/tx';
|
|
7
|
+
/** Simple FeeProvider for TXE that returns zero fees. */
|
|
8
|
+
export declare class TXEFeeProvider implements FeeProvider {
|
|
7
9
|
getCurrentMinFees(): Promise<GasFees>;
|
|
10
|
+
getPredictedMinFees(): Promise<GasFees[]>;
|
|
11
|
+
}
|
|
12
|
+
export declare class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
|
|
8
13
|
buildGlobalVariables(_blockNumber: BlockNumber, _coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber?: SlotNumber): Promise<GlobalVariables>;
|
|
9
|
-
buildCheckpointGlobalVariables(_coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber: SlotNumber,
|
|
14
|
+
buildCheckpointGlobalVariables(_coinbase: EthAddress, _feeRecipient: AztecAddress, _slotNumber: SlotNumber, _simulationOverridesPlan?: SimulationOverridesPlan): Promise<CheckpointGlobalVariables>;
|
|
10
15
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2dsb2JhbF92YXJpYWJsZV9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUNMLEtBQUsseUJBQXlCLEVBQzlCLEtBQUssV0FBVyxFQUNoQixLQUFLLHFCQUFxQixFQUMxQixlQUFlLEVBQ2hCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIseURBQXlEO0FBQ3pELHFCQUFhLGNBQWUsWUFBVyxXQUFXO0lBQ3pDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFM0M7SUFFTSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FFL0M7Q0FDRjtBQUVELHFCQUFhLHlCQUEwQixZQUFXLHFCQUFxQjtJQUM5RCxvQkFBb0IsQ0FDekIsWUFBWSxFQUFFLFdBQVcsRUFDekIsU0FBUyxFQUFFLFVBQVUsRUFDckIsYUFBYSxFQUFFLFlBQVksRUFDM0IsV0FBVyxDQUFDLEVBQUUsVUFBVSxHQUN2QixPQUFPLENBQUMsZUFBZSxDQUFDLENBRTFCO0lBRU0sOEJBQThCLENBQ25DLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLGFBQWEsRUFBRSxZQUFZLEVBQzNCLFdBQVcsRUFBRSxVQUFVLEVBQ3ZCLHdCQUF3QixDQUFDLEVBQUUsdUJBQXVCLEdBQ2pELE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQVdwQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global_variable_builder.d.ts","sourceRoot":"","sources":["../../src/state_machine/global_variable_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"global_variable_builder.d.ts","sourceRoot":"","sources":["../../src/state_machine/global_variable_builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAkB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,yDAAyD;AACzD,qBAAa,cAAe,YAAW,WAAW;IACzC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE3C;IAEM,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAE/C;CACF;AAED,qBAAa,yBAA0B,YAAW,qBAAqB;IAC9D,oBAAoB,CACzB,YAAY,EAAE,WAAW,EACzB,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,UAAU,GACvB,OAAO,CAAC,eAAe,CAAC,CAE1B;IAEM,8BAA8B,CACnC,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,YAAY,EAC3B,WAAW,EAAE,UAAU,EACvB,wBAAwB,CAAC,EAAE,uBAAuB,GACjD,OAAO,CAAC,yBAAyB,CAAC,CAWpC;CACF"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { times } from '@aztec/foundation/collection';
|
|
2
|
+
import { FEE_ORACLE_LAG, GasFees } from '@aztec/stdlib/gas';
|
|
2
3
|
import { makeGlobalVariables } from '@aztec/stdlib/testing';
|
|
3
|
-
export class
|
|
4
|
+
/** Simple FeeProvider for TXE that returns zero fees. */ export class TXEFeeProvider {
|
|
4
5
|
getCurrentMinFees() {
|
|
5
6
|
return Promise.resolve(new GasFees(0, 0));
|
|
6
7
|
}
|
|
8
|
+
getPredictedMinFees() {
|
|
9
|
+
return Promise.resolve(times(FEE_ORACLE_LAG, ()=>new GasFees(0, 0)));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class TXEGlobalVariablesBuilder {
|
|
7
13
|
buildGlobalVariables(_blockNumber, _coinbase, _feeRecipient, _slotNumber) {
|
|
8
14
|
return Promise.resolve(makeGlobalVariables());
|
|
9
15
|
}
|
|
10
|
-
buildCheckpointGlobalVariables(_coinbase, _feeRecipient, _slotNumber,
|
|
16
|
+
buildCheckpointGlobalVariables(_coinbase, _feeRecipient, _slotNumber, _simulationOverridesPlan) {
|
|
11
17
|
const vars = makeGlobalVariables();
|
|
12
18
|
return Promise.resolve({
|
|
13
19
|
chainId: vars.chainId,
|
|
@@ -15,4 +15,4 @@ export declare class TXEStateMachine {
|
|
|
15
15
|
static create(archiver: TXEArchiver, anchorBlockStore: AnchorBlockStore, contractStore: ContractStore, noteStore: NoteStore): Promise<TXEStateMachine>;
|
|
16
16
|
handleL2Block(block: L2Block): Promise<void>;
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFFLEtBQUssYUFBYSxFQUFFLG1CQUFtQixFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSWpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBS3BELHFCQUFhLGVBQWU7SUFFakIsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsV0FBVztJQUNyQixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLHFCQUFxQixFQUFFLHFCQUFxQjtJQU5yRCxZQUNTLElBQUksRUFBRSxTQUFTLEVBQ2YsWUFBWSxFQUFFLGVBQWUsRUFDN0IsUUFBUSxFQUFFLFdBQVcsRUFDckIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLG1CQUFtQixFQUFFLG1CQUFtQixFQUN4QyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFDakQ7SUFFSixPQUFvQixNQUFNLENBQ3hCLFFBQVEsRUFBRSxXQUFXLEVBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxhQUFhLEVBQUUsYUFBYSxFQUM1QixTQUFTLEVBQUUsU0FBUyw0QkEwQ3JCO0lBRVksYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLGlCQXlDeEM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qBAAa,eAAe;IAEjB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,gBAAgB;IAClC,mBAAmB,EAAE,mBAAmB;IACxC,qBAAqB,EAAE,qBAAqB;IANrD,YACS,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,qBAAqB,EAAE,qBAAqB,EACjD;IAEJ,OAAoB,MAAM,CACxB,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qBAAa,eAAe;IAEjB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,gBAAgB;IAClC,mBAAmB,EAAE,mBAAmB;IACxC,qBAAqB,EAAE,qBAAqB;IANrD,YACS,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,qBAAqB,EAAE,qBAAqB,EACjD;IAEJ,OAAoB,MAAM,CACxB,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,4BA0CrB;IAEY,aAAa,CAAC,KAAK,EAAE,OAAO,iBAyCxC;CACF"}
|
|
@@ -9,7 +9,7 @@ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/
|
|
|
9
9
|
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
10
10
|
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
11
11
|
import { DummyP2P } from './dummy_p2p_client.js';
|
|
12
|
-
import { TXEGlobalVariablesBuilder } from './global_variable_builder.js';
|
|
12
|
+
import { TXEFeeProvider, TXEGlobalVariablesBuilder } from './global_variable_builder.js';
|
|
13
13
|
import { MockEpochCache } from './mock_epoch_cache.js';
|
|
14
14
|
import { TXESynchronizer } from './synchronizer.js';
|
|
15
15
|
const VERSION = 1;
|
|
@@ -33,7 +33,7 @@ export class TXEStateMachine {
|
|
|
33
33
|
const synchronizer = await TXESynchronizer.create();
|
|
34
34
|
const aztecNodeConfig = {};
|
|
35
35
|
const log = createLogger('txe_node');
|
|
36
|
-
const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, undefined, VERSION, CHAIN_ID, new TXEGlobalVariablesBuilder(), new MockEpochCache(), getPackageVersion() ?? '', new TestCircuitVerifier(), new TestCircuitVerifier(), undefined, log);
|
|
36
|
+
const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, undefined, undefined, VERSION, CHAIN_ID, new TXEGlobalVariablesBuilder(), new TXEFeeProvider(), new MockEpochCache(), getPackageVersion() ?? '', new TestCircuitVerifier(), new TestCircuitVerifier(), undefined, log);
|
|
37
37
|
const contractSyncService = new ContractSyncService(node, contractStore, noteStore, createLogger('txe:contract_sync'));
|
|
38
38
|
const messageContextService = new MessageContextService(node);
|
|
39
39
|
return new this(node, synchronizer, archiver, anchorBlockStore, contractSyncService, messageContextService);
|
|
@@ -22,6 +22,7 @@ export declare class MockEpochCache implements EpochCacheInterface {
|
|
|
22
22
|
nowSeconds: bigint;
|
|
23
23
|
};
|
|
24
24
|
isProposerPipeliningEnabled(): boolean;
|
|
25
|
+
pipeliningOffset(): number;
|
|
25
26
|
getProposerIndexEncoding(_epoch: EpochNumber, _slot: SlotNumber, _seed: bigint): `0x${string}`;
|
|
26
27
|
computeProposerIndex(_slot: SlotNumber, _epoch: EpochNumber, _seed: bigint, _size: bigint): bigint;
|
|
27
28
|
getCurrentAndNextSlot(): {
|
|
@@ -40,4 +41,4 @@ export declare class MockEpochCache implements EpochCacheInterface {
|
|
|
40
41
|
isEscapeHatchOpenAtSlot(_slot: SlotTag): Promise<boolean>;
|
|
41
42
|
getL1Constants(): L1RollupConstants;
|
|
42
43
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19lcG9jaF9jYWNoZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvbW9ja19lcG9jaF9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUEwQixLQUFLLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Y7OztHQUdHO0FBQ0gscUJBQWEsY0FBZSxZQUFXLG1CQUFtQjtJQUN4RCxZQUFZLENBQUMsS0FBSyxHQUFFLE9BQWUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FPaEU7SUFFRCxVQUFVLElBQUksVUFBVSxDQUV2QjtJQUVELGFBQWEsSUFBSSxVQUFVLENBRTFCO0lBRUQsV0FBVyxJQUFJLFdBQVcsQ0FFekI7SUFFRCxjQUFjLElBQUksV0FBVyxDQUU1QjtJQUVELGtCQUFrQixJQUFJLFlBQVksR0FBRztRQUFFLEtBQUssRUFBRSxNQUFNLENBQUE7S0FBRSxDQU9yRDtJQUVELDJCQUEyQixJQUFJLFlBQVksR0FBRztRQUFFLFVBQVUsRUFBRSxNQUFNLENBQUE7S0FBRSxDQU9uRTtJQUVELGlDQUFpQyxJQUFJLFlBQVksR0FBRztRQUFFLFVBQVUsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUV6RTtJQUVELDJCQUEyQixJQUFJLE9BQU8sQ0FFckM7SUFFRCxnQkFBZ0IsSUFBSSxNQUFNLENBRXpCO0lBRUQsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FFN0Y7SUFFRCxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FFakc7SUFFRCxxQkFBcUIsSUFBSTtRQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFBQyxRQUFRLEVBQUUsVUFBVSxDQUFBO0tBQUUsQ0FLekU7SUFFRCxvQkFBb0IsSUFBSTtRQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFBQyxRQUFRLEVBQUUsVUFBVSxDQUFBO0tBQUUsQ0FLdkU7SUFFRCxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBRW5GO0lBRUQsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRXRFO0lBRUQsdUJBQXVCLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBRS9DO0lBRUQsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBRWxGO0lBRUQsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRXZEO0lBRUQsdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRXhEO0lBRUQsY0FBYyxJQUFJLGlCQUFpQixDQUVsQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_epoch_cache.d.ts","sourceRoot":"","sources":["../../src/state_machine/mock_epoch_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE7F;;;GAGG;AACH,qBAAa,cAAe,YAAW,mBAAmB;IACxD,YAAY,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOhE;IAED,UAAU,IAAI,UAAU,CAEvB;IAED,aAAa,IAAI,UAAU,CAE1B;IAED,WAAW,IAAI,WAAW,CAEzB;IAED,cAAc,IAAI,WAAW,CAE5B;IAED,kBAAkB,IAAI,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAOrD;IAED,2BAA2B,IAAI,YAAY,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAOnE;IAED,iCAAiC,IAAI,YAAY,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAEzE;IAED,2BAA2B,IAAI,OAAO,CAErC;IAED,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAE7F;IAED,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjG;IAED,qBAAqB,IAAI;QAAE,WAAW,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,CAKzE;IAED,oBAAoB,IAAI;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,CAKvE;IAED,gCAAgC,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAEnF;IAED,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtE;IAED,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE/C;IAED,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAElF;IAED,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvD;IAED,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAExD;IAED,cAAc,IAAI,iBAAiB,CAElC;CACF"}
|
|
1
|
+
{"version":3,"file":"mock_epoch_cache.d.ts","sourceRoot":"","sources":["../../src/state_machine/mock_epoch_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE7F;;;GAGG;AACH,qBAAa,cAAe,YAAW,mBAAmB;IACxD,YAAY,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOhE;IAED,UAAU,IAAI,UAAU,CAEvB;IAED,aAAa,IAAI,UAAU,CAE1B;IAED,WAAW,IAAI,WAAW,CAEzB;IAED,cAAc,IAAI,WAAW,CAE5B;IAED,kBAAkB,IAAI,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAOrD;IAED,2BAA2B,IAAI,YAAY,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAOnE;IAED,iCAAiC,IAAI,YAAY,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAEzE;IAED,2BAA2B,IAAI,OAAO,CAErC;IAED,gBAAgB,IAAI,MAAM,CAEzB;IAED,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAE7F;IAED,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjG;IAED,qBAAqB,IAAI;QAAE,WAAW,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,CAKzE;IAED,oBAAoB,IAAI;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,CAKvE;IAED,gCAAgC,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAEnF;IAED,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtE;IAED,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE/C;IAED,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAElF;IAED,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvD;IAED,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAExD;IAED,cAAc,IAAI,iBAAiB,CAElC;CACF"}
|