@aztec/txe 0.0.1-commit.d3ec352c → 0.0.1-commit.d431d1c
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/constants.d.ts +3 -0
- package/dest/constants.d.ts.map +1 -0
- package/dest/constants.js +2 -0
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -2
- package/dest/oracle/interfaces.d.ts +5 -3
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.d.ts +4 -4
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.js +4 -6
- package/dest/oracle/txe_oracle_top_level_context.d.ts +20 -11
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +99 -62
- package/dest/rpc_translator.d.ts +15 -9
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +68 -28
- package/dest/state_machine/archiver.d.ts +21 -57
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +62 -107
- package/dest/state_machine/dummy_p2p_client.d.ts +8 -7
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +16 -11
- package/dest/state_machine/global_variable_builder.d.ts +4 -3
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +13 -1
- package/dest/state_machine/index.d.ts +6 -6
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +23 -20
- package/dest/state_machine/mock_epoch_cache.d.ts +4 -5
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +8 -6
- package/dest/state_machine/synchronizer.d.ts +1 -1
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +2 -2
- package/dest/txe_session.d.ts +18 -10
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +90 -45
- package/dest/util/encoding.d.ts +618 -19
- package/dest/util/encoding.d.ts.map +1 -1
- package/dest/util/encoding.js +1 -1
- package/dest/util/txe_account_store.d.ts +10 -0
- package/dest/util/txe_account_store.d.ts.map +1 -0
- package/dest/util/{txe_account_data_provider.js → txe_account_store.js} +1 -1
- package/dest/util/txe_contract_store.d.ts +12 -0
- package/dest/util/txe_contract_store.d.ts.map +1 -0
- package/dest/util/{txe_contract_data_provider.js → txe_contract_store.js} +3 -3
- package/dest/util/txe_public_contract_data_source.d.ts +5 -5
- package/dest/util/txe_public_contract_data_source.d.ts.map +1 -1
- package/dest/util/txe_public_contract_data_source.js +11 -11
- package/dest/utils/block_creation.d.ts +19 -5
- package/dest/utils/block_creation.d.ts.map +1 -1
- package/dest/utils/block_creation.js +36 -4
- package/dest/utils/tx_effect_creation.d.ts +2 -3
- package/dest/utils/tx_effect_creation.d.ts.map +1 -1
- package/dest/utils/tx_effect_creation.js +4 -7
- package/package.json +16 -16
- package/src/constants.ts +3 -0
- package/src/index.ts +15 -12
- package/src/oracle/interfaces.ts +4 -2
- package/src/oracle/txe_oracle_public_context.ts +5 -10
- package/src/oracle/txe_oracle_top_level_context.ts +148 -88
- package/src/rpc_translator.ts +86 -36
- package/src/state_machine/archiver.ts +60 -130
- package/src/state_machine/dummy_p2p_client.ts +21 -14
- package/src/state_machine/global_variable_builder.ts +19 -2
- package/src/state_machine/index.ts +28 -19
- package/src/state_machine/mock_epoch_cache.ts +8 -10
- package/src/state_machine/synchronizer.ts +1 -2
- package/src/txe_session.ts +179 -76
- package/src/util/encoding.ts +1 -1
- package/src/util/{txe_account_data_provider.ts → txe_account_store.ts} +1 -1
- package/src/util/{txe_contract_data_provider.ts → txe_contract_store.ts} +3 -3
- package/src/util/txe_public_contract_data_source.ts +10 -10
- package/src/utils/block_creation.ts +46 -15
- package/src/utils/tx_effect_creation.ts +4 -12
- package/dest/util/txe_account_data_provider.d.ts +0 -10
- package/dest/util/txe_account_data_provider.d.ts.map +0 -1
- package/dest/util/txe_contract_data_provider.d.ts +0 -12
- package/dest/util/txe_contract_data_provider.d.ts.map +0 -1
package/dest/rpc_translator.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Fr, Point } from '@aztec/aztec.js/fields';
|
|
2
2
|
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX } from '@aztec/constants';
|
|
3
3
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
|
-
import {
|
|
5
|
-
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import { packAsHintedNote } from '@aztec/pxe/simulator';
|
|
5
|
+
import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
6
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
+
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
7
8
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
8
9
|
import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle } from './util/encoding.js';
|
|
10
|
+
const MAX_EVENT_LEN = 12; // This is MAX_MESSAGE_CONTENT_LEN - PRIVATE_EVENT_RESERVED_FIELDS
|
|
11
|
+
const MAX_PRIVATE_EVENTS_PER_TXE_QUERY = 5;
|
|
9
12
|
export class UnavailableOracleError extends Error {
|
|
10
13
|
constructor(oracleName){
|
|
11
14
|
super(`${oracleName} oracles not available with the current handler`);
|
|
@@ -81,6 +84,12 @@ export class RPCTranslator {
|
|
|
81
84
|
}
|
|
82
85
|
// Other oracles - these get handled by the oracle handler
|
|
83
86
|
// TXE-specific oracles
|
|
87
|
+
txeGetDefaultAddress() {
|
|
88
|
+
const defaultAddress = this.handlerAsTxe().txeGetDefaultAddress();
|
|
89
|
+
return toForeignCallResult([
|
|
90
|
+
toSingle(defaultAddress)
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
84
93
|
async txeGetNextBlockNumber() {
|
|
85
94
|
const nextBlockNumber = await this.handlerAsTxe().txeGetNextBlockNumber();
|
|
86
95
|
return toForeignCallResult([
|
|
@@ -164,6 +173,28 @@ export class RPCTranslator {
|
|
|
164
173
|
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX)
|
|
165
174
|
]);
|
|
166
175
|
}
|
|
176
|
+
async txeGetPrivateEvents(foreignSelector, foreignContractAddress, foreignScope) {
|
|
177
|
+
const selector = EventSelector.fromField(fromSingle(foreignSelector));
|
|
178
|
+
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
179
|
+
const scope = addressFromSingle(foreignScope);
|
|
180
|
+
const events = await this.handlerAsTxe().txeGetPrivateEvents(selector, contractAddress, scope);
|
|
181
|
+
if (events.length > MAX_PRIVATE_EVENTS_PER_TXE_QUERY) {
|
|
182
|
+
throw new Error(`Array of length ${events.length} larger than maxLen ${MAX_PRIVATE_EVENTS_PER_TXE_QUERY}`);
|
|
183
|
+
}
|
|
184
|
+
if (events.some((e)=>e.length > MAX_EVENT_LEN)) {
|
|
185
|
+
throw new Error(`Some private event has length larger than maxLen ${MAX_EVENT_LEN}`);
|
|
186
|
+
}
|
|
187
|
+
// This is a workaround as Noir does not currently let us return nested structs with arrays. We instead return a raw
|
|
188
|
+
// multidimensional array in get_private_events_oracle and create the BoundedVecs here.
|
|
189
|
+
const rawArrayStorage = events.map((e)=>e.concat(Array(MAX_EVENT_LEN - e.length).fill(new Fr(0)))).concat(Array(MAX_PRIVATE_EVENTS_PER_TXE_QUERY - events.length).fill(Array(MAX_EVENT_LEN).fill(new Fr(0)))).flat();
|
|
190
|
+
const eventLengths = events.map((e)=>new Fr(e.length)).concat(Array(MAX_PRIVATE_EVENTS_PER_TXE_QUERY - events.length).fill(new Fr(0)));
|
|
191
|
+
const queryLength = new Fr(events.length);
|
|
192
|
+
return toForeignCallResult([
|
|
193
|
+
toArray(rawArrayStorage),
|
|
194
|
+
toArray(eventLengths),
|
|
195
|
+
toSingle(queryLength)
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
167
198
|
privateStoreInExecutionCache(foreignValues, foreignHash) {
|
|
168
199
|
const values = fromArray(foreignValues);
|
|
169
200
|
const hash = fromSingle(foreignHash);
|
|
@@ -186,27 +217,28 @@ export class RPCTranslator {
|
|
|
186
217
|
this.handlerAsMisc().utilityDebugLog(level, message, fields);
|
|
187
218
|
return toForeignCallResult([]);
|
|
188
219
|
}
|
|
189
|
-
async utilityStorageRead(foreignContractAddress, foreignStartStorageSlot,
|
|
220
|
+
async utilityStorageRead(foreignBlockHash, foreignContractAddress, foreignStartStorageSlot, foreignNumberOfElements) {
|
|
221
|
+
const blockHash = L2BlockHash.fromString(foreignBlockHash);
|
|
190
222
|
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
191
223
|
const startStorageSlot = fromSingle(foreignStartStorageSlot);
|
|
192
|
-
const blockNumber = BlockNumber(fromSingle(foreignBlockNumber).toNumber());
|
|
193
224
|
const numberOfElements = fromSingle(foreignNumberOfElements).toNumber();
|
|
194
|
-
const values = await this.handlerAsUtility().utilityStorageRead(contractAddress, startStorageSlot,
|
|
225
|
+
const values = await this.handlerAsUtility().utilityStorageRead(blockHash, contractAddress, startStorageSlot, numberOfElements);
|
|
195
226
|
return toForeignCallResult([
|
|
196
227
|
toArray(values)
|
|
197
228
|
]);
|
|
198
229
|
}
|
|
199
|
-
async utilityGetPublicDataWitness(
|
|
200
|
-
const
|
|
230
|
+
async utilityGetPublicDataWitness(foreignBlockHash, foreignLeafSlot) {
|
|
231
|
+
const blockHash = L2BlockHash.fromString(foreignBlockHash);
|
|
201
232
|
const leafSlot = fromSingle(foreignLeafSlot);
|
|
202
|
-
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
|
|
233
|
+
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(blockHash, leafSlot);
|
|
203
234
|
if (!witness) {
|
|
204
|
-
throw new Error(`Public data witness not found for slot ${leafSlot} at block ${
|
|
235
|
+
throw new Error(`Public data witness not found for slot ${leafSlot} at block ${blockHash.toString()}.`);
|
|
205
236
|
}
|
|
206
237
|
return toForeignCallResult(witness.toNoirRepresentation());
|
|
207
238
|
}
|
|
208
|
-
async utilityGetNotes(
|
|
209
|
-
|
|
239
|
+
async utilityGetNotes(foreignOwnerIsSome, foreignOwnerValue, foreignStorageSlot, foreignNumSelects, foreignSelectByIndexes, foreignSelectByOffsets, foreignSelectByLengths, foreignSelectValues, foreignSelectComparators, foreignSortByIndexes, foreignSortByOffsets, foreignSortByLengths, foreignSortOrder, foreignLimit, foreignOffset, foreignStatus, foreignMaxNotes, foreignPackedHintedNoteLength) {
|
|
240
|
+
// Parse Option<AztecAddress>: ownerIsSome is 0 for None, 1 for Some
|
|
241
|
+
const owner = fromSingle(foreignOwnerIsSome).toBool() ? AztecAddress.fromField(fromSingle(foreignOwnerValue)) : undefined;
|
|
210
242
|
const storageSlot = fromSingle(foreignStorageSlot);
|
|
211
243
|
const numSelects = fromSingle(foreignNumSelects).toNumber();
|
|
212
244
|
const selectByIndexes = fromArray(foreignSelectByIndexes).map((fr)=>fr.toNumber());
|
|
@@ -222,13 +254,21 @@ export class RPCTranslator {
|
|
|
222
254
|
const offset = fromSingle(foreignOffset).toNumber();
|
|
223
255
|
const status = fromSingle(foreignStatus).toNumber();
|
|
224
256
|
const maxNotes = fromSingle(foreignMaxNotes).toNumber();
|
|
225
|
-
const
|
|
257
|
+
const packedHintedNoteLength = fromSingle(foreignPackedHintedNoteLength).toNumber();
|
|
226
258
|
const noteDatas = await this.handlerAsUtility().utilityGetNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status);
|
|
227
|
-
const returnDataAsArrayOfArrays = noteDatas.map(
|
|
259
|
+
const returnDataAsArrayOfArrays = noteDatas.map((noteData)=>packAsHintedNote({
|
|
260
|
+
contractAddress: noteData.contractAddress,
|
|
261
|
+
owner: noteData.owner,
|
|
262
|
+
randomness: noteData.randomness,
|
|
263
|
+
storageSlot: noteData.storageSlot,
|
|
264
|
+
noteNonce: noteData.noteNonce,
|
|
265
|
+
isPending: noteData.isPending,
|
|
266
|
+
note: noteData.note
|
|
267
|
+
}));
|
|
228
268
|
// Now we convert each sub-array to an array of ForeignCallSingles
|
|
229
269
|
const returnDataAsArrayOfForeignCallSingleArrays = returnDataAsArrayOfArrays.map((subArray)=>subArray.map(toSingle));
|
|
230
270
|
// At last we convert the array of arrays to a bounded vec of arrays
|
|
231
|
-
return toForeignCallResult(arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfForeignCallSingleArrays, maxNotes,
|
|
271
|
+
return toForeignCallResult(arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfForeignCallSingleArrays, maxNotes, packedHintedNoteLength));
|
|
232
272
|
}
|
|
233
273
|
privateNotifyCreatedNote(foreignOwner, foreignStorageSlot, foreignRandomness, foreignNoteTypeId, foreignNote, foreignNoteHash, foreignCounter) {
|
|
234
274
|
const owner = addressFromSingle(foreignOwner);
|
|
@@ -289,12 +329,12 @@ export class RPCTranslator {
|
|
|
289
329
|
privateCallPrivateFunction(_foreignTargetContractAddress, _foreignFunctionSelector, _foreignArgsHash, _foreignSideEffectCounter, _foreignIsStaticCall) {
|
|
290
330
|
throw new Error('Contract calls are forbidden inside a `TestEnvironment::private_context`, use `private_call` instead');
|
|
291
331
|
}
|
|
292
|
-
async utilityGetNullifierMembershipWitness(
|
|
293
|
-
const
|
|
332
|
+
async utilityGetNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
|
|
333
|
+
const blockHash = L2BlockHash.fromString(foreignBlockHash);
|
|
294
334
|
const nullifier = fromSingle(foreignNullifier);
|
|
295
|
-
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
335
|
+
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(blockHash, nullifier);
|
|
296
336
|
if (!witness) {
|
|
297
|
-
throw new Error(`Nullifier membership witness not found at block ${
|
|
337
|
+
throw new Error(`Nullifier membership witness not found at block ${blockHash}.`);
|
|
298
338
|
}
|
|
299
339
|
return toForeignCallResult(witness.toNoirRepresentation());
|
|
300
340
|
}
|
|
@@ -324,8 +364,8 @@ export class RPCTranslator {
|
|
|
324
364
|
toSingle(new Fr(isRevertible))
|
|
325
365
|
]);
|
|
326
366
|
}
|
|
327
|
-
|
|
328
|
-
const context =
|
|
367
|
+
utilityGetUtilityContext() {
|
|
368
|
+
const context = this.handlerAsUtility().utilityGetUtilityContext();
|
|
329
369
|
return toForeignCallResult(context.toNoirRepresentation());
|
|
330
370
|
}
|
|
331
371
|
async utilityGetBlockHeader(foreignBlockNumber) {
|
|
@@ -336,25 +376,25 @@ export class RPCTranslator {
|
|
|
336
376
|
}
|
|
337
377
|
return toForeignCallResult(header.toFields().map(toSingle));
|
|
338
378
|
}
|
|
339
|
-
async utilityGetMembershipWitness(
|
|
340
|
-
const
|
|
379
|
+
async utilityGetMembershipWitness(foreignBlockHash, foreignTreeId, foreignLeafValue) {
|
|
380
|
+
const blockHash = L2BlockHash.fromString(foreignBlockHash);
|
|
341
381
|
const treeId = fromSingle(foreignTreeId).toNumber();
|
|
342
382
|
const leafValue = fromSingle(foreignLeafValue);
|
|
343
|
-
const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
|
|
383
|
+
const witness = await this.handlerAsUtility().utilityGetMembershipWitness(blockHash, treeId, leafValue);
|
|
344
384
|
if (!witness) {
|
|
345
|
-
throw new Error(`Membership witness in tree ${MerkleTreeId[treeId]} not found for value ${leafValue} at block ${
|
|
385
|
+
throw new Error(`Membership witness in tree ${MerkleTreeId[treeId]} not found for value ${leafValue} at block ${blockHash}.`);
|
|
346
386
|
}
|
|
347
387
|
return toForeignCallResult([
|
|
348
388
|
toSingle(witness[0]),
|
|
349
389
|
toArray(witness.slice(1))
|
|
350
390
|
]);
|
|
351
391
|
}
|
|
352
|
-
async utilityGetLowNullifierMembershipWitness(
|
|
353
|
-
const
|
|
392
|
+
async utilityGetLowNullifierMembershipWitness(foreignBlockHash, foreignNullifier) {
|
|
393
|
+
const blockHash = L2BlockHash.fromString(foreignBlockHash);
|
|
354
394
|
const nullifier = fromSingle(foreignNullifier);
|
|
355
|
-
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
395
|
+
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(blockHash, nullifier);
|
|
356
396
|
if (!witness) {
|
|
357
|
-
throw new Error(`Low nullifier witness not found for nullifier ${nullifier} at block ${
|
|
397
|
+
throw new Error(`Low nullifier witness not found for nullifier ${nullifier} at block ${blockHash}.`);
|
|
358
398
|
}
|
|
359
399
|
return toForeignCallResult(witness.toNoirRepresentation());
|
|
360
400
|
}
|
|
@@ -1,67 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ArchiverDataSourceBase } from '@aztec/archiver';
|
|
2
|
+
import { type EpochNumber, type SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
8
|
-
import type { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
9
|
-
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
6
|
+
import type { L2Tips, ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
7
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
8
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
/**
|
|
10
|
+
* TXE Archiver implementation.
|
|
11
|
+
* Provides most of the endpoints needed by the node for reading from and writing to state,
|
|
12
|
+
* without needing any of the extra overhead that the Archiver itself requires (i.e. an L1 client).
|
|
13
|
+
*/
|
|
14
|
+
export declare class TXEArchiver extends ArchiverDataSourceBase {
|
|
15
|
+
private readonly updater;
|
|
14
16
|
constructor(db: AztecAsyncKVStore);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* @returns The number of the latest L2 block processed by the block source implementation.
|
|
19
|
-
*/
|
|
20
|
-
getBlockNumber(): Promise<BlockNumber>;
|
|
21
|
-
/**
|
|
22
|
-
* Gets the number of the latest L2 block proven seen by the block source implementation.
|
|
23
|
-
* @returns The number of the latest L2 block proven seen by the block source implementation.
|
|
24
|
-
*/
|
|
25
|
-
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
26
|
-
/**
|
|
27
|
-
* Gets a published l2 block. If a negative number is passed, the block returned is the most recent.
|
|
28
|
-
* @param number - The block number to return (inclusive).
|
|
29
|
-
* @returns The requested L2 block.
|
|
30
|
-
*/
|
|
31
|
-
getPublishedBlock(number: number): Promise<PublishedL2Block | undefined>;
|
|
32
|
-
/**
|
|
33
|
-
* Gets an l2 block. If a negative number is passed, the block returned is the most recent.
|
|
34
|
-
* @param number - The block number to return (inclusive).
|
|
35
|
-
* @returns The requested L2 block.
|
|
36
|
-
*/
|
|
37
|
-
getBlock(number: number | 'latest'): Promise<L2Block | undefined>;
|
|
38
|
-
/**
|
|
39
|
-
* Gets an l2 block header.
|
|
40
|
-
* @param number - The block number to return or 'latest' for the most recent one.
|
|
41
|
-
* @returns The requested L2 block header.
|
|
42
|
-
*/
|
|
43
|
-
getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
|
|
44
|
-
getBlocks(from: number, limit: number, _proven?: boolean): Promise<L2Block[]>;
|
|
45
|
-
getPublishedCheckpoints(_from: CheckpointNumber, _limit: number): Promise<PublishedCheckpoint[]>;
|
|
46
|
-
getCheckpointByArchive(_archive: Fr): Promise<Checkpoint | undefined>;
|
|
47
|
-
getL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
48
|
-
getL2EpochNumber(): Promise<EpochNumber>;
|
|
49
|
-
getCheckpointsForEpoch(_epochNumber: EpochNumber): Promise<Checkpoint[]>;
|
|
50
|
-
getBlocksForEpoch(_epochNumber: EpochNumber): Promise<L2Block[]>;
|
|
51
|
-
getBlockHeadersForEpoch(_epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
52
|
-
getL1ToL2MessagesForCheckpoint(_checkpointNumber: CheckpointNumber): Promise<Fr[]>;
|
|
53
|
-
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
54
|
-
getL2Tips(): Promise<L2Tips>;
|
|
17
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[], result?: ValidateCheckpointResult): Promise<boolean>;
|
|
18
|
+
getRollupAddress(): Promise<EthAddress>;
|
|
19
|
+
getRegistryAddress(): Promise<EthAddress>;
|
|
55
20
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
56
21
|
getGenesisValues(): Promise<{
|
|
57
22
|
genesisArchiveRoot: Fr;
|
|
58
23
|
}>;
|
|
24
|
+
getL1Timestamp(): Promise<bigint | undefined>;
|
|
25
|
+
getL2Tips(): Promise<L2Tips>;
|
|
26
|
+
getL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
27
|
+
getL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
28
|
+
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
59
29
|
syncImmediate(): Promise<void>;
|
|
60
|
-
getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
61
|
-
getRollupAddress(): Promise<EthAddress>;
|
|
62
|
-
getRegistryAddress(): Promise<EthAddress>;
|
|
63
|
-
getL1Timestamp(): Promise<bigint>;
|
|
64
|
-
isPendingChainInvalid(): Promise<boolean>;
|
|
65
|
-
getPendingChainValidationStatus(): Promise<ValidateBlockResult>;
|
|
66
30
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBaUQsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RyxPQUFPLEVBQW9CLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQW9DLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRTs7OztHQUlHO0FBQ0gscUJBQWEsV0FBWSxTQUFRLHNCQUFzQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBNEM7SUFFcEUsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLEVBR2hDO0lBR1ksY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FHbkg7SUFJTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRTdDO0lBRU0sa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUvQztJQUVNLGNBQWMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFbEQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUM7UUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBRTdEO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRW5EO0lBRVksU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0E4QnhDO0lBRU0sZUFBZSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBRXhEO0lBRU0sZ0JBQWdCLElBQUksT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FFMUQ7SUFFTSxlQUFlLENBQUMsWUFBWSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWxFO0lBRU0sYUFBYSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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;IAGY,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnH;IAIM,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,CA8BxC;IAEM,eAAe,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAExD;IAEM,gBAAgB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE1D;IAEM,eAAe,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEM,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;CACF"}
|
|
@@ -1,77 +1,75 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ArchiverDataSourceBase, ArchiverDataStoreUpdater, KVArchiverDataStore } from '@aztec/archiver';
|
|
2
2
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
3
|
-
import {
|
|
4
|
-
import { Fr } from '@aztec/foundation/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
|
+
/**
|
|
6
|
+
* TXE Archiver implementation.
|
|
7
|
+
* Provides most of the endpoints needed by the node for reading from and writing to state,
|
|
8
|
+
* without needing any of the extra overhead that the Archiver itself requires (i.e. an L1 client).
|
|
9
|
+
*/ export class TXEArchiver extends ArchiverDataSourceBase {
|
|
10
|
+
updater = new ArchiverDataStoreUpdater(this.store);
|
|
9
11
|
constructor(db){
|
|
10
|
-
|
|
12
|
+
const store = new KVArchiverDataStore(db, 9999);
|
|
13
|
+
super(store);
|
|
11
14
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]);
|
|
17
|
-
return opResults.every(Boolean);
|
|
15
|
+
// TXE-specific method for adding checkpoints
|
|
16
|
+
async addCheckpoints(checkpoints, result) {
|
|
17
|
+
await this.updater.setNewCheckpointData(checkpoints, result);
|
|
18
|
+
return true;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*/ getBlockNumber() {
|
|
23
|
-
return this.store.getSynchedL2BlockNumber();
|
|
20
|
+
// Abstract method implementations
|
|
21
|
+
getRollupAddress() {
|
|
22
|
+
throw new Error('TXE Archiver does not implement "getRollupAddress"');
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* @returns The number of the latest L2 block proven seen by the block source implementation.
|
|
28
|
-
*/ getProvenBlockNumber() {
|
|
29
|
-
return this.store.getSynchedL2BlockNumber();
|
|
24
|
+
getRegistryAddress() {
|
|
25
|
+
throw new Error('TXE Archiver does not implement "getRegistryAddress"');
|
|
30
26
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
number = await this.store.getSynchedL2BlockNumber();
|
|
39
|
-
}
|
|
40
|
-
if (number == 0) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
const blocks = await this.store.getPublishedBlocks(BlockNumber(number), 1);
|
|
44
|
-
return blocks.length === 0 ? undefined : blocks[0];
|
|
27
|
+
getL1Constants() {
|
|
28
|
+
throw new Error('TXE Archiver does not implement "getL1Constants"');
|
|
29
|
+
}
|
|
30
|
+
getGenesisValues() {
|
|
31
|
+
return Promise.resolve({
|
|
32
|
+
genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
|
|
33
|
+
});
|
|
45
34
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* @param number - The block number to return (inclusive).
|
|
49
|
-
* @returns The requested L2 block.
|
|
50
|
-
*/ getBlock(number) {
|
|
51
|
-
return this.getPublishedBlock(number != 'latest' ? number : -1).then((block)=>block?.block);
|
|
35
|
+
getL1Timestamp() {
|
|
36
|
+
throw new Error('TXE Archiver does not implement "getL1Timestamp"');
|
|
52
37
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
number = await this.store.getSynchedL2BlockNumber();
|
|
38
|
+
async getL2Tips() {
|
|
39
|
+
// In TXE there is no possibility of reorgs and no blocks are ever getting proven so we just set 'latest', 'proven'
|
|
40
|
+
// and 'finalized' to the latest block.
|
|
41
|
+
const blockHeader = await this.getBlockHeader('latest');
|
|
42
|
+
if (!blockHeader) {
|
|
43
|
+
throw new Error('L2Tips requested from TXE Archiver but no block header found');
|
|
60
44
|
}
|
|
61
|
-
|
|
62
|
-
|
|
45
|
+
const number = blockHeader.globalVariables.blockNumber;
|
|
46
|
+
const hash = (await blockHeader.hash()).toString();
|
|
47
|
+
const checkpointedBlock = await this.getCheckpointedBlock(number);
|
|
48
|
+
if (!checkpointedBlock) {
|
|
49
|
+
throw new Error(`L2Tips requested from TXE Archiver but no checkpointed block found for block number ${number}`);
|
|
63
50
|
}
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
51
|
+
const checkpoint = await this.store.getRangeOfCheckpoints(CheckpointNumber(number), 1);
|
|
52
|
+
if (checkpoint.length === 0) {
|
|
53
|
+
throw new Error(`L2Tips requested from TXE Archiver but no checkpoint found for block number ${number}`);
|
|
54
|
+
}
|
|
55
|
+
const blockId = {
|
|
56
|
+
number,
|
|
57
|
+
hash
|
|
58
|
+
};
|
|
59
|
+
const checkpointId = {
|
|
60
|
+
number: checkpoint[0].checkpointNumber,
|
|
61
|
+
hash: checkpoint[0].header.hash().toString()
|
|
62
|
+
};
|
|
63
|
+
const tipId = {
|
|
64
|
+
block: blockId,
|
|
65
|
+
checkpoint: checkpointId
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
proposed: blockId,
|
|
69
|
+
proven: tipId,
|
|
70
|
+
finalized: tipId,
|
|
71
|
+
checkpointed: tipId
|
|
72
|
+
};
|
|
75
73
|
}
|
|
76
74
|
getL2SlotNumber() {
|
|
77
75
|
throw new Error('TXE Archiver does not implement "getL2SlotNumber"');
|
|
@@ -79,53 +77,10 @@ export class TXEArchiver extends ArchiverStoreHelper {
|
|
|
79
77
|
getL2EpochNumber() {
|
|
80
78
|
throw new Error('TXE Archiver does not implement "getL2EpochNumber"');
|
|
81
79
|
}
|
|
82
|
-
getCheckpointsForEpoch(_epochNumber) {
|
|
83
|
-
throw new Error('TXE Archiver does not implement "getCheckpointsForEpoch"');
|
|
84
|
-
}
|
|
85
|
-
getBlocksForEpoch(_epochNumber) {
|
|
86
|
-
throw new Error('TXE Archiver does not implement "getBlocksForEpoch"');
|
|
87
|
-
}
|
|
88
|
-
getBlockHeadersForEpoch(_epochNumber) {
|
|
89
|
-
throw new Error('TXE Archiver does not implement "getBlockHeadersForEpoch"');
|
|
90
|
-
}
|
|
91
|
-
getL1ToL2MessagesForCheckpoint(_checkpointNumber) {
|
|
92
|
-
throw new Error('TXE Archiver does not implement "getL1ToL2MessagesForCheckpoint"');
|
|
93
|
-
}
|
|
94
80
|
isEpochComplete(_epochNumber) {
|
|
95
81
|
throw new Error('TXE Archiver does not implement "isEpochComplete"');
|
|
96
82
|
}
|
|
97
|
-
getL2Tips() {
|
|
98
|
-
throw new Error('TXE Archiver does not implement "getL2Tips"');
|
|
99
|
-
}
|
|
100
|
-
getL1Constants() {
|
|
101
|
-
throw new Error('TXE Archiver does not implement "getL2Constants"');
|
|
102
|
-
}
|
|
103
|
-
getGenesisValues() {
|
|
104
|
-
return Promise.resolve({
|
|
105
|
-
genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
83
|
syncImmediate() {
|
|
109
84
|
throw new Error('TXE Archiver does not implement "syncImmediate"');
|
|
110
85
|
}
|
|
111
|
-
getContract(_address, _timestamp) {
|
|
112
|
-
throw new Error('TXE Archiver does not implement "getContract"');
|
|
113
|
-
}
|
|
114
|
-
getRollupAddress() {
|
|
115
|
-
throw new Error('TXE Archiver does not implement "getRollupAddress"');
|
|
116
|
-
}
|
|
117
|
-
getRegistryAddress() {
|
|
118
|
-
throw new Error('TXE Archiver does not implement "getRegistryAddress"');
|
|
119
|
-
}
|
|
120
|
-
getL1Timestamp() {
|
|
121
|
-
throw new Error('TXE Archiver does not implement "getL1Timestamp"');
|
|
122
|
-
}
|
|
123
|
-
isPendingChainInvalid() {
|
|
124
|
-
return Promise.resolve(false);
|
|
125
|
-
}
|
|
126
|
-
getPendingChainValidationStatus() {
|
|
127
|
-
return Promise.resolve({
|
|
128
|
-
valid: true
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
86
|
}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import type { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PConfig, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, StatusMessage } from '@aztec/p2p';
|
|
2
|
+
import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PConfig, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, StatusMessage } from '@aztec/p2p';
|
|
3
3
|
import type { EthAddress, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
|
|
4
4
|
import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
5
|
-
import type {
|
|
5
|
+
import type { BlockProposal, CheckpointAttestation, CheckpointProposal } from '@aztec/stdlib/p2p';
|
|
6
6
|
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
7
7
|
export declare class DummyP2P implements P2P {
|
|
8
|
-
broadcastAttestations(_attestations: BlockAttestation[]): Promise<void>;
|
|
9
8
|
validate(_txs: Tx[]): Promise<void>;
|
|
10
9
|
clear(): Promise<void>;
|
|
11
10
|
getPendingTxs(): Promise<Tx[]>;
|
|
12
11
|
getEncodedEnr(): Promise<string | undefined>;
|
|
13
12
|
getPeers(_includePending?: boolean): Promise<PeerInfo[]>;
|
|
14
13
|
broadcastProposal(_proposal: BlockProposal): Promise<void>;
|
|
14
|
+
broadcastCheckpointProposal(_proposal: CheckpointProposal): Promise<void>;
|
|
15
|
+
broadcastCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
|
|
15
16
|
registerBlockProposalHandler(_handler: P2PBlockReceivedCallback): void;
|
|
17
|
+
registerCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
|
|
16
18
|
requestTxs(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
|
|
17
19
|
requestTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
|
|
18
20
|
sendTx(_tx: Tx): Promise<void>;
|
|
@@ -30,9 +32,8 @@ export declare class DummyP2P implements P2P {
|
|
|
30
32
|
getEnr(): ENR | undefined;
|
|
31
33
|
isP2PClient(): true;
|
|
32
34
|
getTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
addAttestations(_attestations: BlockAttestation[]): Promise<void>;
|
|
35
|
+
getCheckpointAttestationsForSlot(_slot: SlotNumber, _proposalId?: string): Promise<CheckpointAttestation[]>;
|
|
36
|
+
addCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
|
|
36
37
|
getL2BlockHash(_number: number): Promise<string | undefined>;
|
|
37
38
|
updateP2PConfig(_config: Partial<P2PConfig>): Promise<void>;
|
|
38
39
|
getL2Tips(): Promise<L2Tips>;
|
|
@@ -51,4 +52,4 @@ export declare class DummyP2P implements P2P {
|
|
|
51
52
|
handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
|
|
52
53
|
registerThisValidatorAddresses(_address: EthAddress[]): void;
|
|
53
54
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfcDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvZHVtbXlfcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGFBQWEsRUFDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELHFCQUFhLFFBQVMsWUFBVyxHQUFHO0lBQzNCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUV6QztJQUVNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRU0sYUFBYSxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUVwQztJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVsRDtJQUVNLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBRTlEO0lBRU0saUJBQWlCLENBQUMsU0FBUyxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRWhFO0lBRU0sMkJBQTJCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFL0U7SUFFTSwrQkFBK0IsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVGO0lBRU0sNEJBQTRCLENBQUMsUUFBUSxFQUFFLHdCQUF3QixHQUFHLElBQUksQ0FFNUU7SUFFTSxpQ0FBaUMsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLEdBQUcsSUFBSSxDQUV0RjtJQUVNLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FFbEU7SUFFTSxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUUvRDtJQUVNLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEM7SUFFTSxTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFbkQ7SUFFTSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBRW5FO0lBRU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FFM0Q7SUFFTSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBRW5FO0lBRU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDLENBSTVFO0lBRU0saUJBQWlCLElBQUkscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBRXBEO0lBRU0saUJBQWlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUUxQztJQUVNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFM0I7SUFFTSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVNLFNBQVMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBRXhDO0lBRU0sTUFBTSxJQUFJLEdBQUcsR0FBRyxTQUFTLENBRS9CO0lBRU0sV0FBVyxJQUFJLElBQUksQ0FFekI7SUFFTSxZQUFZLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUV0RDtJQUVNLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBRWpIO0lBRU0seUJBQXlCLENBQUMsYUFBYSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUV0RjtJQUVNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRWxFO0lBRU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVqRTtJQUVNLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRWxDO0lBRU0sc0JBQXNCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFdkU7SUFFTSxJQUFJLFNBRVY7SUFFTSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBRTFEO0lBRU0sTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsU0FBUyxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FFakU7SUFFTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FFNUU7SUFFTSxZQUFZLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUUzRDtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUUvQztJQUVNLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFaEQ7SUFFTSx1QkFBdUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRWhEO0lBRU0sbUJBQW1CLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUU1QztJQUVELHFCQUFxQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRWhEO0lBRUQscUJBQXFCLENBQ25CLFlBQVksRUFBRSxrQkFBa0IsRUFDaEMsUUFBUSxFQUFFLHlCQUF5QixFQUNuQyxVQUFVLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUM1RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBRWY7SUFDRCx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUU1RjtJQUdNLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUc7Q0FDdkUifQ==
|
|
@@ -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,SAAS,EACT,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,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"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"}
|