@aztec/txe 0.0.1-commit.5de5ca79e → 0.0.1-commit.6201a7b05
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 +5 -2
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.d.ts +13 -6
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +45 -22
- package/dest/rpc_translator.d.ts +62 -21
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +238 -60
- 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 +2 -1
- package/dest/state_machine/dummy_p2p_client.d.ts +3 -2
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +5 -2
- 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 +76 -20
- 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/dest/util/txe_public_contract_data_source.d.ts +1 -1
- package/dest/util/txe_public_contract_data_source.d.ts.map +1 -1
- package/dest/util/txe_public_contract_data_source.js +1 -3
- package/package.json +15 -15
- package/src/oracle/interfaces.ts +1 -1
- package/src/oracle/txe_oracle_top_level_context.ts +48 -26
- package/src/rpc_translator.ts +279 -68
- package/src/state_machine/archiver.ts +1 -0
- package/src/state_machine/dummy_p2p_client.ts +6 -2
- package/src/state_machine/global_variable_builder.ts +18 -3
- package/src/state_machine/index.ts +4 -1
- package/src/state_machine/mock_epoch_cache.ts +4 -0
- package/src/txe_session.ts +134 -20
- package/src/util/encoding.ts +5 -0
- package/src/util/txe_public_contract_data_source.ts +0 -2
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, PRIVATE_LOG_CIPHERTEXT_LEN } 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
|
|
@@ -190,6 +190,39 @@ export class RPCTranslator {
|
|
|
190
190
|
]);
|
|
191
191
|
}
|
|
192
192
|
// eslint-disable-next-line camelcase
|
|
193
|
+
aztec_txe_getLastCallOffchainEffects() {
|
|
194
|
+
// This oracle returns all offchain effect payloads (messages, authwit requests, etc.) emitted by the last top-level call,
|
|
195
|
+
// MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY is arbitrarily set at 64 because we need a bound. Nothing inherent about it.
|
|
196
|
+
const MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY = 64;
|
|
197
|
+
// Must match MAX_OFFCHAIN_EFFECT_LEN in txe_oracles.nr.
|
|
198
|
+
const MAX_OFFCHAIN_EFFECT_LEN = 2 + PRIVATE_LOG_CIPHERTEXT_LEN;
|
|
199
|
+
const { effects } = this.stateHandler.getLastCallOffchainEffects();
|
|
200
|
+
if (effects.length > MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY) {
|
|
201
|
+
throw new Error(`${effects.length} offchain effects exceed max ${MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY}`);
|
|
202
|
+
}
|
|
203
|
+
if (effects.some((e)=>e.length > MAX_OFFCHAIN_EFFECT_LEN)) {
|
|
204
|
+
throw new Error(`Some offchain effect has length larger than max ${MAX_OFFCHAIN_EFFECT_LEN}`);
|
|
205
|
+
}
|
|
206
|
+
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();
|
|
207
|
+
const effectLengths = effects.map((e)=>new Fr(e.length)).concat(Array(MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY - effects.length).fill(new Fr(0)));
|
|
208
|
+
const count = new Fr(effects.length);
|
|
209
|
+
return toForeignCallResult([
|
|
210
|
+
toArray(rawArrayStorage),
|
|
211
|
+
toArray(effectLengths),
|
|
212
|
+
toSingle(count)
|
|
213
|
+
]);
|
|
214
|
+
}
|
|
215
|
+
// eslint-disable-next-line camelcase
|
|
216
|
+
aztec_txe_getLastCallContext() {
|
|
217
|
+
const { txHash, anchorBlockTimestamp } = this.stateHandler.getLastCallContext();
|
|
218
|
+
const isSome = txHash.isZero() ? 0 : 1;
|
|
219
|
+
return toForeignCallResult([
|
|
220
|
+
toSingle(isSome),
|
|
221
|
+
toSingle(txHash),
|
|
222
|
+
toSingle(new Fr(anchorBlockTimestamp))
|
|
223
|
+
]);
|
|
224
|
+
}
|
|
225
|
+
// eslint-disable-next-line camelcase
|
|
193
226
|
async aztec_txe_getPrivateEvents(foreignSelector, foreignContractAddress, foreignScope) {
|
|
194
227
|
const selector = EventSelector.fromField(fromSingle(foreignSelector));
|
|
195
228
|
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
@@ -219,16 +252,16 @@ export class RPCTranslator {
|
|
|
219
252
|
]);
|
|
220
253
|
}
|
|
221
254
|
// eslint-disable-next-line camelcase
|
|
222
|
-
|
|
255
|
+
aztec_prv_setHashPreimage(foreignValues, foreignHash) {
|
|
223
256
|
const values = fromArray(foreignValues);
|
|
224
257
|
const hash = fromSingle(foreignHash);
|
|
225
|
-
this.handlerAsPrivate().
|
|
258
|
+
this.handlerAsPrivate().setHashPreimage(values, hash);
|
|
226
259
|
return toForeignCallResult([]);
|
|
227
260
|
}
|
|
228
261
|
// eslint-disable-next-line camelcase
|
|
229
|
-
async
|
|
262
|
+
async aztec_prv_getHashPreimage(foreignHash) {
|
|
230
263
|
const hash = fromSingle(foreignHash);
|
|
231
|
-
const returns = await this.handlerAsPrivate().
|
|
264
|
+
const returns = await this.handlerAsPrivate().getHashPreimage(hash);
|
|
232
265
|
return toForeignCallResult([
|
|
233
266
|
toArray(returns)
|
|
234
267
|
]);
|
|
@@ -244,19 +277,19 @@ export class RPCTranslator {
|
|
|
244
277
|
return toForeignCallResult([]);
|
|
245
278
|
}
|
|
246
279
|
// eslint-disable-next-line camelcase
|
|
247
|
-
async
|
|
248
|
-
const blockHash =
|
|
280
|
+
async aztec_utl_getFromPublicStorage(foreignBlockHash, foreignContractAddress, foreignStartStorageSlot, foreignNumberOfElements) {
|
|
281
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
249
282
|
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
250
283
|
const startStorageSlot = fromSingle(foreignStartStorageSlot);
|
|
251
284
|
const numberOfElements = fromSingle(foreignNumberOfElements).toNumber();
|
|
252
|
-
const values = await this.handlerAsUtility().
|
|
285
|
+
const values = await this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements);
|
|
253
286
|
return toForeignCallResult([
|
|
254
287
|
toArray(values)
|
|
255
288
|
]);
|
|
256
289
|
}
|
|
257
290
|
// eslint-disable-next-line camelcase
|
|
258
291
|
async aztec_utl_getPublicDataWitness(foreignBlockHash, foreignLeafSlot) {
|
|
259
|
-
const blockHash =
|
|
292
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
260
293
|
const leafSlot = fromSingle(foreignLeafSlot);
|
|
261
294
|
const witness = await this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot);
|
|
262
295
|
if (!witness) {
|
|
@@ -335,9 +368,9 @@ export class RPCTranslator {
|
|
|
335
368
|
]);
|
|
336
369
|
}
|
|
337
370
|
// eslint-disable-next-line camelcase
|
|
338
|
-
async
|
|
371
|
+
async aztec_utl_doesNullifierExist(foreignInnerNullifier) {
|
|
339
372
|
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
340
|
-
const exists = await this.handlerAsUtility().
|
|
373
|
+
const exists = await this.handlerAsUtility().doesNullifierExist(innerNullifier);
|
|
341
374
|
return toForeignCallResult([
|
|
342
375
|
toSingle(new Fr(exists))
|
|
343
376
|
]);
|
|
@@ -355,9 +388,9 @@ export class RPCTranslator {
|
|
|
355
388
|
].map(toSingle));
|
|
356
389
|
}
|
|
357
390
|
// eslint-disable-next-line camelcase
|
|
358
|
-
async
|
|
391
|
+
async aztec_utl_getPublicKeysAndPartialAddress(foreignAddress) {
|
|
359
392
|
const address = addressFromSingle(foreignAddress);
|
|
360
|
-
const result = await this.handlerAsUtility().
|
|
393
|
+
const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(address);
|
|
361
394
|
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
362
395
|
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
363
396
|
if (result === undefined) {
|
|
@@ -389,7 +422,7 @@ export class RPCTranslator {
|
|
|
389
422
|
}
|
|
390
423
|
// eslint-disable-next-line camelcase
|
|
391
424
|
async aztec_utl_getNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
|
|
392
|
-
const blockHash =
|
|
425
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
393
426
|
const nullifier = fromSingle(foreignNullifier);
|
|
394
427
|
const witness = await this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier);
|
|
395
428
|
if (!witness) {
|
|
@@ -409,7 +442,7 @@ export class RPCTranslator {
|
|
|
409
442
|
]);
|
|
410
443
|
}
|
|
411
444
|
// eslint-disable-next-line camelcase
|
|
412
|
-
|
|
445
|
+
aztec_prv_assertValidPublicCalldata(_foreignCalldataHash) {
|
|
413
446
|
throw new Error('Enqueueing public calls is not supported in TestEnvironment::private_context');
|
|
414
447
|
}
|
|
415
448
|
// eslint-disable-next-line camelcase
|
|
@@ -417,9 +450,9 @@ export class RPCTranslator {
|
|
|
417
450
|
throw new Error('Enqueueing public calls is not supported in TestEnvironment::private_context');
|
|
418
451
|
}
|
|
419
452
|
// eslint-disable-next-line camelcase
|
|
420
|
-
async
|
|
453
|
+
async aztec_prv_isExecutionInRevertiblePhase(foreignSideEffectCounter) {
|
|
421
454
|
const sideEffectCounter = fromSingle(foreignSideEffectCounter).toNumber();
|
|
422
|
-
const isRevertible = await this.handlerAsPrivate().
|
|
455
|
+
const isRevertible = await this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter);
|
|
423
456
|
return toForeignCallResult([
|
|
424
457
|
toSingle(new Fr(isRevertible))
|
|
425
458
|
]);
|
|
@@ -440,7 +473,7 @@ export class RPCTranslator {
|
|
|
440
473
|
}
|
|
441
474
|
// eslint-disable-next-line camelcase
|
|
442
475
|
async aztec_utl_getNoteHashMembershipWitness(foreignAnchorBlockHash, foreignNoteHash) {
|
|
443
|
-
const blockHash =
|
|
476
|
+
const blockHash = blockHashFromSingle(foreignAnchorBlockHash);
|
|
444
477
|
const noteHash = fromSingle(foreignNoteHash);
|
|
445
478
|
const witness = await this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash);
|
|
446
479
|
if (!witness) {
|
|
@@ -450,8 +483,8 @@ export class RPCTranslator {
|
|
|
450
483
|
}
|
|
451
484
|
// eslint-disable-next-line camelcase
|
|
452
485
|
async aztec_utl_getBlockHashMembershipWitness(foreignAnchorBlockHash, foreignBlockHash) {
|
|
453
|
-
const anchorBlockHash =
|
|
454
|
-
const blockHash =
|
|
486
|
+
const anchorBlockHash = blockHashFromSingle(foreignAnchorBlockHash);
|
|
487
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
455
488
|
const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash);
|
|
456
489
|
if (!witness) {
|
|
457
490
|
throw new Error(`Block hash ${blockHash.toString()} not found in the archive tree at anchor block ${anchorBlockHash.toString()}.`);
|
|
@@ -460,7 +493,7 @@ export class RPCTranslator {
|
|
|
460
493
|
}
|
|
461
494
|
// eslint-disable-next-line camelcase
|
|
462
495
|
async aztec_utl_getLowNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
|
|
463
|
-
const blockHash =
|
|
496
|
+
const blockHash = blockHashFromSingle(foreignBlockHash);
|
|
464
497
|
const nullifier = fromSingle(foreignNullifier);
|
|
465
498
|
const witness = await this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier);
|
|
466
499
|
if (!witness) {
|
|
@@ -469,51 +502,91 @@ export class RPCTranslator {
|
|
|
469
502
|
return toForeignCallResult(witness.toNoirRepresentation());
|
|
470
503
|
}
|
|
471
504
|
// eslint-disable-next-line camelcase
|
|
472
|
-
async
|
|
505
|
+
async aztec_utl_getPendingTaggedLogs(foreignPendingTaggedLogArrayBaseSlot, foreignScope) {
|
|
473
506
|
const pendingTaggedLogArrayBaseSlot = fromSingle(foreignPendingTaggedLogArrayBaseSlot);
|
|
474
|
-
|
|
507
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
508
|
+
await this.handlerAsUtility().getPendingTaggedLogs(pendingTaggedLogArrayBaseSlot, scope);
|
|
475
509
|
return toForeignCallResult([]);
|
|
476
510
|
}
|
|
477
511
|
// eslint-disable-next-line camelcase
|
|
478
|
-
async
|
|
512
|
+
async aztec_utl_getPendingTaggedLogs_v2(foreignScope) {
|
|
513
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
514
|
+
const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(scope);
|
|
515
|
+
return toForeignCallResult([
|
|
516
|
+
toSingle(slot)
|
|
517
|
+
]);
|
|
518
|
+
}
|
|
519
|
+
// eslint-disable-next-line camelcase
|
|
520
|
+
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(foreignContractAddress, foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
479
521
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
480
522
|
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
481
523
|
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
482
524
|
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
483
525
|
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
484
|
-
|
|
526
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
527
|
+
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(contractAddress, noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
485
528
|
return toForeignCallResult([]);
|
|
486
529
|
}
|
|
487
530
|
// eslint-disable-next-line camelcase
|
|
488
|
-
async
|
|
531
|
+
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2(foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
532
|
+
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
533
|
+
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
534
|
+
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
535
|
+
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
536
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
537
|
+
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
538
|
+
return toForeignCallResult([]);
|
|
539
|
+
}
|
|
540
|
+
// eslint-disable-next-line camelcase
|
|
541
|
+
async aztec_utl_getLogsByTag(foreignContractAddress, foreignLogRetrievalRequestsArrayBaseSlot, foreignLogRetrievalResponsesArrayBaseSlot, foreignScope) {
|
|
489
542
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
490
543
|
const logRetrievalRequestsArrayBaseSlot = fromSingle(foreignLogRetrievalRequestsArrayBaseSlot);
|
|
491
544
|
const logRetrievalResponsesArrayBaseSlot = fromSingle(foreignLogRetrievalResponsesArrayBaseSlot);
|
|
492
|
-
|
|
545
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
546
|
+
await this.handlerAsUtility().getLogsByTag(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot, scope);
|
|
493
547
|
return toForeignCallResult([]);
|
|
494
548
|
}
|
|
495
549
|
// eslint-disable-next-line camelcase
|
|
496
|
-
async
|
|
550
|
+
async aztec_utl_getMessageContextsByTxHash(foreignContractAddress, foreignMessageContextRequestsArrayBaseSlot, foreignMessageContextResponsesArrayBaseSlot, foreignScope) {
|
|
497
551
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
498
552
|
const messageContextRequestsArrayBaseSlot = fromSingle(foreignMessageContextRequestsArrayBaseSlot);
|
|
499
553
|
const messageContextResponsesArrayBaseSlot = fromSingle(foreignMessageContextResponsesArrayBaseSlot);
|
|
500
|
-
|
|
554
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
555
|
+
await this.handlerAsUtility().getMessageContextsByTxHash(contractAddress, messageContextRequestsArrayBaseSlot, messageContextResponsesArrayBaseSlot, scope);
|
|
501
556
|
return toForeignCallResult([]);
|
|
502
557
|
}
|
|
503
558
|
// eslint-disable-next-line camelcase
|
|
504
|
-
async
|
|
559
|
+
async aztec_utl_getLogsByTag_v2(foreignRequestArrayBaseSlot) {
|
|
560
|
+
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
561
|
+
const responseSlot = await this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot);
|
|
562
|
+
return toForeignCallResult([
|
|
563
|
+
toSingle(responseSlot)
|
|
564
|
+
]);
|
|
565
|
+
}
|
|
566
|
+
// eslint-disable-next-line camelcase
|
|
567
|
+
async aztec_utl_getMessageContextsByTxHash_v2(foreignRequestArrayBaseSlot) {
|
|
568
|
+
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
569
|
+
const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(requestArrayBaseSlot);
|
|
570
|
+
return toForeignCallResult([
|
|
571
|
+
toSingle(responseSlot)
|
|
572
|
+
]);
|
|
573
|
+
}
|
|
574
|
+
// eslint-disable-next-line camelcase
|
|
575
|
+
aztec_utl_setCapsule(foreignContractAddress, foreignSlot, foreignCapsule, foreignScope) {
|
|
505
576
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
506
577
|
const slot = fromSingle(foreignSlot);
|
|
507
578
|
const capsule = fromArray(foreignCapsule);
|
|
508
|
-
|
|
579
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
580
|
+
this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope);
|
|
509
581
|
return toForeignCallResult([]);
|
|
510
582
|
}
|
|
511
583
|
// eslint-disable-next-line camelcase
|
|
512
|
-
async
|
|
584
|
+
async aztec_utl_getCapsule(foreignContractAddress, foreignSlot, foreignTSize, foreignScope) {
|
|
513
585
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
514
586
|
const slot = fromSingle(foreignSlot);
|
|
515
587
|
const tSize = fromSingle(foreignTSize).toNumber();
|
|
516
|
-
const
|
|
588
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
589
|
+
const values = await this.handlerAsUtility().getCapsule(contractAddress, slot, scope);
|
|
517
590
|
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
518
591
|
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
519
592
|
if (values === null) {
|
|
@@ -531,19 +604,76 @@ export class RPCTranslator {
|
|
|
531
604
|
}
|
|
532
605
|
}
|
|
533
606
|
// eslint-disable-next-line camelcase
|
|
534
|
-
|
|
607
|
+
aztec_utl_deleteCapsule(foreignContractAddress, foreignSlot, foreignScope) {
|
|
535
608
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
536
609
|
const slot = fromSingle(foreignSlot);
|
|
537
|
-
|
|
610
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
611
|
+
this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope);
|
|
538
612
|
return toForeignCallResult([]);
|
|
539
613
|
}
|
|
540
614
|
// eslint-disable-next-line camelcase
|
|
541
|
-
async aztec_utl_copyCapsule(foreignContractAddress, foreignSrcSlot, foreignDstSlot, foreignNumEntries) {
|
|
615
|
+
async aztec_utl_copyCapsule(foreignContractAddress, foreignSrcSlot, foreignDstSlot, foreignNumEntries, foreignScope) {
|
|
542
616
|
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
543
617
|
const srcSlot = fromSingle(foreignSrcSlot);
|
|
544
618
|
const dstSlot = fromSingle(foreignDstSlot);
|
|
545
619
|
const numEntries = fromSingle(foreignNumEntries).toNumber();
|
|
546
|
-
|
|
620
|
+
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
621
|
+
await this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope);
|
|
622
|
+
return toForeignCallResult([]);
|
|
623
|
+
}
|
|
624
|
+
// eslint-disable-next-line camelcase
|
|
625
|
+
aztec_utl_pushEphemeral(foreignSlot, foreignElements) {
|
|
626
|
+
const slot = fromSingle(foreignSlot);
|
|
627
|
+
const elements = fromArray(foreignElements);
|
|
628
|
+
const newLen = this.handlerAsUtility().pushEphemeral(slot, elements);
|
|
629
|
+
return toForeignCallResult([
|
|
630
|
+
toSingle(new Fr(newLen))
|
|
631
|
+
]);
|
|
632
|
+
}
|
|
633
|
+
// eslint-disable-next-line camelcase
|
|
634
|
+
aztec_utl_popEphemeral(foreignSlot) {
|
|
635
|
+
const slot = fromSingle(foreignSlot);
|
|
636
|
+
const element = this.handlerAsUtility().popEphemeral(slot);
|
|
637
|
+
return toForeignCallResult([
|
|
638
|
+
toArray(element)
|
|
639
|
+
]);
|
|
640
|
+
}
|
|
641
|
+
// eslint-disable-next-line camelcase
|
|
642
|
+
aztec_utl_getEphemeral(foreignSlot, foreignIndex) {
|
|
643
|
+
const slot = fromSingle(foreignSlot);
|
|
644
|
+
const index = fromSingle(foreignIndex).toNumber();
|
|
645
|
+
const element = this.handlerAsUtility().getEphemeral(slot, index);
|
|
646
|
+
return toForeignCallResult([
|
|
647
|
+
toArray(element)
|
|
648
|
+
]);
|
|
649
|
+
}
|
|
650
|
+
// eslint-disable-next-line camelcase
|
|
651
|
+
aztec_utl_setEphemeral(foreignSlot, foreignIndex, foreignElements) {
|
|
652
|
+
const slot = fromSingle(foreignSlot);
|
|
653
|
+
const index = fromSingle(foreignIndex).toNumber();
|
|
654
|
+
const elements = fromArray(foreignElements);
|
|
655
|
+
this.handlerAsUtility().setEphemeral(slot, index, elements);
|
|
656
|
+
return toForeignCallResult([]);
|
|
657
|
+
}
|
|
658
|
+
// eslint-disable-next-line camelcase
|
|
659
|
+
aztec_utl_getEphemeralLen(foreignSlot) {
|
|
660
|
+
const slot = fromSingle(foreignSlot);
|
|
661
|
+
const len = this.handlerAsUtility().getEphemeralLen(slot);
|
|
662
|
+
return toForeignCallResult([
|
|
663
|
+
toSingle(new Fr(len))
|
|
664
|
+
]);
|
|
665
|
+
}
|
|
666
|
+
// eslint-disable-next-line camelcase
|
|
667
|
+
aztec_utl_removeEphemeral(foreignSlot, foreignIndex) {
|
|
668
|
+
const slot = fromSingle(foreignSlot);
|
|
669
|
+
const index = fromSingle(foreignIndex).toNumber();
|
|
670
|
+
this.handlerAsUtility().removeEphemeral(slot, index);
|
|
671
|
+
return toForeignCallResult([]);
|
|
672
|
+
}
|
|
673
|
+
// eslint-disable-next-line camelcase
|
|
674
|
+
aztec_utl_clearEphemeral(foreignSlot) {
|
|
675
|
+
const slot = fromSingle(foreignSlot);
|
|
676
|
+
this.handlerAsUtility().clearEphemeral(slot);
|
|
547
677
|
return toForeignCallResult([]);
|
|
548
678
|
}
|
|
549
679
|
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
@@ -551,13 +681,13 @@ export class RPCTranslator {
|
|
|
551
681
|
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
552
682
|
// existence of a txe_oracle method?
|
|
553
683
|
// eslint-disable-next-line camelcase
|
|
554
|
-
async
|
|
684
|
+
async aztec_utl_decryptAes128(foreignCiphertextBVecStorage, foreignCiphertextLength, foreignIv, foreignSymKey) {
|
|
555
685
|
const ciphertext = fromUintBoundedVec(foreignCiphertextBVecStorage, foreignCiphertextLength, 8);
|
|
556
686
|
const iv = fromUintArray(foreignIv, 8);
|
|
557
687
|
const symKey = fromUintArray(foreignSymKey, 8);
|
|
558
688
|
// Noir Option<BoundedVec> is encoded as [is_some: Field, storage: Field[], length: Field].
|
|
559
689
|
try {
|
|
560
|
-
const plaintextBuffer = await this.handlerAsUtility().
|
|
690
|
+
const plaintextBuffer = await this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey);
|
|
561
691
|
const [storage, length] = arrayToBoundedVec(bufferToU8Array(plaintextBuffer), foreignCiphertextBVecStorage.length);
|
|
562
692
|
return toForeignCallResult([
|
|
563
693
|
toSingle(new Fr(1)),
|
|
@@ -574,27 +704,35 @@ export class RPCTranslator {
|
|
|
574
704
|
}
|
|
575
705
|
}
|
|
576
706
|
// eslint-disable-next-line camelcase
|
|
577
|
-
async aztec_utl_getSharedSecret(foreignAddress, foreignEphPKField0, foreignEphPKField1, foreignEphPKField2) {
|
|
707
|
+
async aztec_utl_getSharedSecret(foreignAddress, foreignEphPKField0, foreignEphPKField1, foreignEphPKField2, foreignContractAddress) {
|
|
578
708
|
const address = AztecAddress.fromField(fromSingle(foreignAddress));
|
|
579
709
|
const ephPK = Point.fromFields([
|
|
580
710
|
fromSingle(foreignEphPKField0),
|
|
581
711
|
fromSingle(foreignEphPKField1),
|
|
582
712
|
fromSingle(foreignEphPKField2)
|
|
583
713
|
]);
|
|
584
|
-
const
|
|
585
|
-
|
|
714
|
+
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
715
|
+
const secret = await this.handlerAsUtility().getSharedSecret(address, ephPK, contractAddress);
|
|
716
|
+
return toForeignCallResult([
|
|
717
|
+
toSingle(secret)
|
|
718
|
+
]);
|
|
586
719
|
}
|
|
587
720
|
// eslint-disable-next-line camelcase
|
|
588
|
-
|
|
721
|
+
aztec_utl_setContractSyncCacheInvalid(foreignContractAddress, foreignScopes, foreignScopeCount) {
|
|
589
722
|
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
590
723
|
const count = fromSingle(foreignScopeCount).toNumber();
|
|
591
724
|
const scopes = fromArray(foreignScopes).slice(0, count).map((f)=>new AztecAddress(f));
|
|
592
|
-
this.handlerAsUtility().
|
|
725
|
+
this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes);
|
|
593
726
|
return Promise.resolve(toForeignCallResult([]));
|
|
594
727
|
}
|
|
595
728
|
// eslint-disable-next-line camelcase
|
|
596
|
-
aztec_utl_emitOffchainEffect(
|
|
597
|
-
|
|
729
|
+
aztec_utl_emitOffchainEffect(foreignData) {
|
|
730
|
+
// Record the raw payload against the currently-executing top-level call. The Noir side
|
|
731
|
+
// (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
|
|
732
|
+
// (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
|
|
733
|
+
// for `offchain_receive`.
|
|
734
|
+
this.stateHandler.recordOffchainEffect(fromArray(foreignData));
|
|
735
|
+
return Promise.resolve(toForeignCallResult([]));
|
|
598
736
|
}
|
|
599
737
|
// AVM opcodes
|
|
600
738
|
// eslint-disable-next-line camelcase
|
|
@@ -745,9 +883,31 @@ export class RPCTranslator {
|
|
|
745
883
|
const args = fromArray(foreignArgs);
|
|
746
884
|
const argsHash = fromSingle(foreignArgsHash);
|
|
747
885
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
748
|
-
const returnValues = await this.
|
|
749
|
-
|
|
750
|
-
|
|
886
|
+
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
887
|
+
const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, this.stateHandler.getCurrentJob());
|
|
888
|
+
// Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
|
|
889
|
+
// round-tripping them through `aztec_utl_emitOffchainEffect`, so the session buffer is empty
|
|
890
|
+
// at this point. Drain the effects from the execution tree into the session buffer so the
|
|
891
|
+
// next `env.offchain_messages()` call in the test sees them.
|
|
892
|
+
for (const data of offchainEffects){
|
|
893
|
+
this.stateHandler.recordOffchainEffect(data);
|
|
894
|
+
}
|
|
895
|
+
// TODO(F-335): Avoid doing the following call here.
|
|
896
|
+
await this.stateHandler.cycleJob();
|
|
897
|
+
if (isStaticCall) {
|
|
898
|
+
// Static calls revert their checkpoint and mine no block, so there is no tx hash to tag
|
|
899
|
+
// offchain effects with. Querying `getLastTxEffects()` here would return an unrelated
|
|
900
|
+
// predecessor tx.
|
|
901
|
+
return {
|
|
902
|
+
result: returnValues
|
|
903
|
+
};
|
|
904
|
+
}
|
|
905
|
+
const { txHash } = await this.handlerAsTxe().getLastTxEffects();
|
|
906
|
+
return {
|
|
907
|
+
result: returnValues,
|
|
908
|
+
txHash: txHash.hash
|
|
909
|
+
};
|
|
910
|
+
});
|
|
751
911
|
return toForeignCallResult([
|
|
752
912
|
toArray(returnValues)
|
|
753
913
|
]);
|
|
@@ -757,9 +917,14 @@ export class RPCTranslator {
|
|
|
757
917
|
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
758
918
|
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
759
919
|
const args = fromArray(foreignArgs);
|
|
760
|
-
const returnValues = await this.
|
|
761
|
-
|
|
762
|
-
|
|
920
|
+
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
921
|
+
const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob());
|
|
922
|
+
// TODO(F-335): Avoid doing the following call here.
|
|
923
|
+
await this.stateHandler.cycleJob();
|
|
924
|
+
return {
|
|
925
|
+
result: returnValues
|
|
926
|
+
};
|
|
927
|
+
});
|
|
763
928
|
return toForeignCallResult([
|
|
764
929
|
toArray(returnValues)
|
|
765
930
|
]);
|
|
@@ -770,9 +935,22 @@ export class RPCTranslator {
|
|
|
770
935
|
const address = addressFromSingle(foreignAddress);
|
|
771
936
|
const calldata = fromArray(foreignCalldata);
|
|
772
937
|
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
773
|
-
const returnValues = await this.
|
|
774
|
-
|
|
775
|
-
|
|
938
|
+
const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
|
|
939
|
+
const returnValues = await this.handlerAsTxe().publicCallNewFlow(from, address, calldata, isStaticCall);
|
|
940
|
+
// TODO(F-335): Avoid doing the following call here.
|
|
941
|
+
await this.stateHandler.cycleJob();
|
|
942
|
+
if (isStaticCall) {
|
|
943
|
+
// See equivalent branch in `aztec_txe_privateCallNewFlow`.
|
|
944
|
+
return {
|
|
945
|
+
result: returnValues
|
|
946
|
+
};
|
|
947
|
+
}
|
|
948
|
+
const { txHash } = await this.handlerAsTxe().getLastTxEffects();
|
|
949
|
+
return {
|
|
950
|
+
result: returnValues,
|
|
951
|
+
txHash: txHash.hash
|
|
952
|
+
};
|
|
953
|
+
});
|
|
776
954
|
return toForeignCallResult([
|
|
777
955
|
toArray(returnValues)
|
|
778
956
|
]);
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBaUQsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RyxPQUFPLEVBQW9CLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQW9DLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRTs7OztHQUlHO0FBQ0gscUJBQWEsV0FBWSxTQUFRLHNCQUFzQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBNEM7SUFFcEUsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLEVBR2hDO0lBRVksY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFaEg7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRTdDO0lBRU0sa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUvQztJQUVNLGNBQWMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFbEQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUM7UUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBRTdEO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRW5EO0lBRVksU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FpQ3hDO0lBRU0scUJBQXFCLElBQUksT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FFOUQ7SUFFTSxzQkFBc0IsSUFBSSxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUVoRTtJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFbEU7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVwQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiD,MAAM,iBAAiB,CAAC;AAExG,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAoC,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,sBAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,YAAY,EAAE,EAAE,iBAAiB,EAGhC;IAEY,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhH;IAEM,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE7C;IAEM,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE/C;IAEM,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAElD;IAEM,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAE7D;IAEM,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEY,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiD,MAAM,iBAAiB,CAAC;AAExG,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAoC,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,sBAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,YAAY,EAAE,EAAE,iBAAiB,EAGhC;IAEY,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhH;IAEM,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE7C;IAEM,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE/C;IAEM,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAElD;IAEM,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAE7D;IAEM,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEY,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,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"}
|
|
@@ -15,7 +15,8 @@ export declare class DummyP2P implements P2P {
|
|
|
15
15
|
broadcastCheckpointProposal(_proposal: CheckpointProposal): Promise<void>;
|
|
16
16
|
broadcastCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
|
|
17
17
|
registerBlockProposalHandler(_handler: P2PBlockReceivedCallback): void;
|
|
18
|
-
|
|
18
|
+
registerValidatorCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
|
|
19
|
+
registerAllNodesCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
|
|
19
20
|
requestTxs(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
|
|
20
21
|
requestTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
|
|
21
22
|
sendTx(_tx: Tx): Promise<void>;
|
|
@@ -56,4 +57,4 @@ export declare class DummyP2P implements P2P {
|
|
|
56
57
|
registerDuplicateAttestationCallback(_callback: P2PDuplicateAttestationCallback): void;
|
|
57
58
|
hasBlockProposalsForSlot(_slot: SlotNumber): Promise<boolean>;
|
|
58
59
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfcDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvZHVtbXlfcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLFNBQVMsRUFDVCwrQkFBK0IsRUFDL0IsNEJBQTRCLEVBQzVCLFlBQVksRUFDWixNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNkLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdHLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUscUJBQWEsUUFBUyxZQUFXLEdBQUc7SUFDM0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFbkU7SUFFTSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1QjtJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FFcEM7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FFbEQ7SUFFTSxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUU5RDtJQUVNLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVwRTtJQUVNLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVoRTtJQUVNLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRS9FO0lBRU0sK0JBQStCLENBQUMsYUFBYSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1RjtJQUVNLDRCQUE0QixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsR0FBRyxJQUFJLENBRTVFO0lBRU0sMENBQTBDLENBQUMsUUFBUSxFQUFFLDZCQUE2QixHQUFHLElBQUksQ0FFL0Y7SUFFTSx5Q0FBeUMsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLEdBQUcsSUFBSSxDQUU5RjtJQUVNLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FFbEU7SUFFTSxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUUvRDtJQUVNLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEM7SUFFTSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUvRDtJQUVNLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FFbkU7SUFFTSxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUUzRDtJQUVNLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FFbkU7SUFFTSxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FJNUU7SUFFTSxpQkFBaUIsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FFcEQ7SUFFTSx5QkFBeUIsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FFNUQ7SUFFTSxpQkFBaUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRTFDO0lBRU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFNUI7SUFFTSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzQjtJQUVNLE9BQU8sSUFBSSxPQUFPLENBRXhCO0lBRU0sU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FFeEM7SUFFTSxNQUFNLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FFL0I7SUFFTSxXQUFXLElBQUksSUFBSSxDQUV6QjtJQUVNLGFBQWEsSUFBSSxXQUFXLENBRWxDO0lBRU0sWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FFdEQ7SUFFTSxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUVqSDtJQUVNLDRCQUE0QixDQUFDLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFekY7SUFFTSxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVsRTtJQUVNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFakU7SUFFTSxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVsQztJQUVNLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXZFO0lBRU0sSUFBSSxTQUVWO0lBRU0sb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBRTVFO0lBRU0sWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FFM0Q7SUFFTSx1QkFBdUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRWhEO0lBRU0sdUJBQXVCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVoRDtJQUVNLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFNUM7SUFFRCxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBRTVFO0lBRUQsY0FBYyxDQUFDLFdBQVcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVyRDtJQUVELHFCQUFxQixDQUNuQixZQUFZLEVBQUUsa0JBQWtCLEVBQ2hDLFFBQVEsRUFBRSx5QkFBeUIsRUFDbkMsVUFBVSxDQUFDLEVBQUUsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsR0FDNUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVmO0lBQ0QseUJBQXlCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FFNUY7SUFHTSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFHO0lBRS9ELGlDQUFpQyxDQUFDLFNBQVMsRUFBRSw0QkFBNEIsR0FBRyxJQUFJLENBRXRGO0lBRU0sb0NBQW9DLENBQUMsU0FBUyxFQUFFLCtCQUErQixHQUFHLElBQUksQ0FFNUY7SUFFTSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFbkU7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EACV,WAAW,EACX,GAAG,EACH,GAAG,EACH,wBAAwB,EACxB,6BAA6B,EAC7B,SAAS,EACT,+BAA+B,EAC/B,4BAA4B,EAC5B,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7G,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhE,qBAAa,QAAS,YAAW,GAAG;IAC3B,kCAAkC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAEM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5B;IAEM,aAAa,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAEpC;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElD;IAEM,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE9D;IAEM,sBAAsB,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpE;IAEM,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;IAEM,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;IAEM,+BAA+B,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;IAEM,4BAA4B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAE5E;IAEM,
|
|
1
|
+
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,11 @@ export class DummyP2P {
|
|
|
29
29
|
registerBlockProposalHandler(_handler) {
|
|
30
30
|
throw new Error('DummyP2P does not implement "registerBlockProposalHandler"');
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
throw new Error('DummyP2P does not implement "
|
|
32
|
+
registerValidatorCheckpointProposalHandler(_handler) {
|
|
33
|
+
throw new Error('DummyP2P does not implement "registerValidatorCheckpointProposalHandler"');
|
|
34
|
+
}
|
|
35
|
+
registerAllNodesCheckpointProposalHandler(_handler) {
|
|
36
|
+
throw new Error('DummyP2P does not implement "registerAllNodesCheckpointProposalHandler"');
|
|
34
37
|
}
|
|
35
38
|
requestTxs(_txHashes) {
|
|
36
39
|
throw new Error('DummyP2P does not implement "requestTxs"');
|