@aztec/archiver 3.0.0-nightly.20251202 → 3.0.0-nightly.20251204

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.
Files changed (51) hide show
  1. package/dest/archiver/archiver.d.ts +25 -23
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +32 -19
  4. package/dest/archiver/archiver_store.d.ts +16 -15
  5. package/dest/archiver/archiver_store.d.ts.map +1 -1
  6. package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
  7. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  8. package/dest/archiver/archiver_store_test_suite.js +81 -81
  9. package/dest/archiver/data_retrieval.d.ts +1 -1
  10. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  11. package/dest/archiver/data_retrieval.js +2 -2
  12. package/dest/archiver/kv_archiver_store/block_store.d.ts +9 -8
  13. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  14. package/dest/archiver/kv_archiver_store/block_store.js +8 -7
  15. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +17 -16
  16. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  17. package/dest/archiver/kv_archiver_store/log_store.d.ts +1 -1
  18. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  19. package/dest/archiver/kv_archiver_store/log_store.js +3 -2
  20. package/dest/archiver/structs/inbox_message.d.ts +3 -3
  21. package/dest/archiver/structs/inbox_message.d.ts.map +1 -1
  22. package/dest/archiver/structs/inbox_message.js +2 -1
  23. package/dest/factory.d.ts +1 -1
  24. package/dest/factory.d.ts.map +1 -1
  25. package/dest/factory.js +3 -2
  26. package/dest/test/mock_archiver.d.ts +3 -1
  27. package/dest/test/mock_archiver.d.ts.map +1 -1
  28. package/dest/test/mock_archiver.js +4 -0
  29. package/dest/test/mock_l1_to_l2_message_source.d.ts +4 -2
  30. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  31. package/dest/test/mock_l1_to_l2_message_source.js +7 -2
  32. package/dest/test/mock_l2_block_source.d.ts +8 -5
  33. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  34. package/dest/test/mock_l2_block_source.js +15 -6
  35. package/dest/test/mock_structs.d.ts +1 -1
  36. package/dest/test/mock_structs.d.ts.map +1 -1
  37. package/dest/test/mock_structs.js +3 -2
  38. package/package.json +13 -13
  39. package/src/archiver/archiver.ts +58 -53
  40. package/src/archiver/archiver_store.ts +19 -14
  41. package/src/archiver/archiver_store_test_suite.ts +107 -76
  42. package/src/archiver/data_retrieval.ts +2 -2
  43. package/src/archiver/kv_archiver_store/block_store.ts +17 -16
  44. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +16 -15
  45. package/src/archiver/kv_archiver_store/log_store.ts +3 -2
  46. package/src/archiver/structs/inbox_message.ts +4 -4
  47. package/src/factory.ts +3 -2
  48. package/src/test/mock_archiver.ts +6 -0
  49. package/src/test/mock_l1_to_l2_message_source.ts +9 -3
  50. package/src/test/mock_l2_block_source.ts +19 -8
  51. package/src/test/mock_structs.ts +3 -2
@@ -1,6 +1,6 @@
1
1
  import { INITIAL_L2_BLOCK_NUM, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
- import { EpochNumber } from '@aztec/foundation/branded-types';
3
+ import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
4
4
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
5
5
  import { times, timesParallel } from '@aztec/foundation/collection';
6
6
  import { randomInt } from '@aztec/foundation/crypto';
@@ -74,7 +74,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
74
74
  };
75
75
  beforeEach(async ()=>{
76
76
  store = await getStore();
77
- blocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(i + 1), i + 10));
77
+ blocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(BlockNumber(i + 1)), i + 10));
78
78
  });
79
79
  describe('addBlocks', ()=>{
80
80
  it('returns success when adding blocks', async ()=>{
@@ -85,19 +85,19 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
85
85
  await expect(store.addBlocks(blocks)).resolves.toBe(true);
86
86
  });
87
87
  it('throws an error if the previous block does not exist in the store', async ()=>{
88
- const block = makePublished(await L2Block.random(2), 2);
88
+ const block = makePublished(await L2Block.random(BlockNumber(2)), 2);
89
89
  await expect(store.addBlocks([
90
90
  block
91
91
  ])).rejects.toThrow(InitialBlockNumberNotSequentialError);
92
- await expect(store.getPublishedBlocks(1, 10)).resolves.toEqual([]);
92
+ await expect(store.getPublishedBlocks(BlockNumber(1), 10)).resolves.toEqual([]);
93
93
  });
94
94
  it('throws an error if there is a gap in the blocks being added', async ()=>{
95
95
  const blocks = [
96
- makePublished(await L2Block.random(1), 1),
97
- makePublished(await L2Block.random(3), 3)
96
+ makePublished(await L2Block.random(BlockNumber(1)), 1),
97
+ makePublished(await L2Block.random(BlockNumber(3)), 3)
98
98
  ];
99
99
  await expect(store.addBlocks(blocks)).rejects.toThrow(BlockNumberNotSequentialError);
100
- await expect(store.getPublishedBlocks(1, 10)).resolves.toEqual([]);
100
+ await expect(store.getPublishedBlocks(BlockNumber(1), 10)).resolves.toEqual([]);
101
101
  });
102
102
  });
103
103
  describe('unwindBlocks', ()=>{
@@ -112,12 +112,12 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
112
112
  expect(await store.getPublishedBlocks(blockNumber, 1)).toEqual([]);
113
113
  });
114
114
  it('can unwind multiple empty blocks', async ()=>{
115
- const emptyBlocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(i + 1, 0), i + 10));
115
+ const emptyBlocks = await timesParallel(10, async (i)=>makePublished(await L2Block.random(BlockNumber(i + 1), 0), i + 10));
116
116
  await store.addBlocks(emptyBlocks);
117
117
  expect(await store.getSynchedL2BlockNumber()).toBe(10);
118
- await store.unwindBlocks(10, 3);
118
+ await store.unwindBlocks(BlockNumber(10), 3);
119
119
  expect(await store.getSynchedL2BlockNumber()).toBe(7);
120
- expect((await store.getPublishedBlocks(1, 10)).map((b)=>b.block.number)).toEqual([
120
+ expect((await store.getPublishedBlocks(BlockNumber(1), 10)).map((b)=>b.block.number)).toEqual([
121
121
  1,
122
122
  2,
123
123
  3,
@@ -129,7 +129,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
129
129
  });
130
130
  it('refuses to unwind blocks if the tip is not the last block', async ()=>{
131
131
  await store.addBlocks(blocks);
132
- await expect(store.unwindBlocks(5, 1)).rejects.toThrow(/can only unwind blocks from the tip/i);
132
+ await expect(store.unwindBlocks(BlockNumber(5), 1)).rejects.toThrow(/can only unwind blocks from the tip/i);
133
133
  });
134
134
  it('unwound blocks and headers cannot be retrieved by hash or archive', async ()=>{
135
135
  await store.addBlocks(blocks);
@@ -155,33 +155,33 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
155
155
  await store.addBlocks(blocks);
156
156
  });
157
157
  it.each(blockTests)('retrieves previously stored blocks', async (start, limit, getExpectedBlocks)=>{
158
- expectBlocksEqual(await store.getPublishedBlocks(start, limit), getExpectedBlocks());
158
+ expectBlocksEqual(await store.getPublishedBlocks(BlockNumber(start), limit), getExpectedBlocks());
159
159
  });
160
160
  it('returns an empty array if no blocks are found', async ()=>{
161
- await expect(store.getPublishedBlocks(12, 1)).resolves.toEqual([]);
161
+ await expect(store.getPublishedBlocks(BlockNumber(12), 1)).resolves.toEqual([]);
162
162
  });
163
163
  it('throws an error if limit is invalid', async ()=>{
164
- await expect(store.getPublishedBlocks(1, 0)).rejects.toThrow('Invalid limit: 0');
164
+ await expect(store.getPublishedBlocks(BlockNumber(1), 0)).rejects.toThrow('Invalid limit: 0');
165
165
  });
166
166
  it('throws an error if `from` it is out of range', async ()=>{
167
167
  await expect(store.getPublishedBlocks(INITIAL_L2_BLOCK_NUM - 100, 1)).rejects.toThrow('Invalid start: -99');
168
168
  });
169
169
  it('throws an error if unexpected initial block number is found', async ()=>{
170
170
  await store.addBlocks([
171
- makePublished(await L2Block.random(21), 31)
171
+ makePublished(await L2Block.random(BlockNumber(21)), 31)
172
172
  ], {
173
173
  force: true
174
174
  });
175
- await expect(store.getPublishedBlocks(20, 1)).rejects.toThrow(`mismatch`);
175
+ await expect(store.getPublishedBlocks(BlockNumber(20), 1)).rejects.toThrow(`mismatch`);
176
176
  });
177
177
  it('throws an error if a gap is found', async ()=>{
178
178
  await store.addBlocks([
179
- makePublished(await L2Block.random(20), 30),
180
- makePublished(await L2Block.random(22), 32)
179
+ makePublished(await L2Block.random(BlockNumber(20)), 30),
180
+ makePublished(await L2Block.random(BlockNumber(22)), 32)
181
181
  ], {
182
182
  force: true
183
183
  });
184
- await expect(store.getPublishedBlocks(20, 2)).rejects.toThrow(`mismatch`);
184
+ await expect(store.getPublishedBlocks(BlockNumber(20), 2)).rejects.toThrow(`mismatch`);
185
185
  });
186
186
  });
187
187
  describe('getPublishedBlockByHash', ()=>{
@@ -340,17 +340,17 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
340
340
  await expect(store.addLogs([
341
341
  block
342
342
  ])).resolves.toEqual(true);
343
- expect((await store.getPrivateLogs(1, 1)).length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat().length);
343
+ expect((await store.getPrivateLogs(BlockNumber(1), 1)).length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat().length);
344
344
  expect((await store.getPublicLogs({
345
- fromBlock: 1
345
+ fromBlock: BlockNumber(1)
346
346
  })).logs.length).toEqual(block.body.txEffects.map((txEffect)=>txEffect.publicLogs).flat().length);
347
347
  // This one is a pain for memory as we would never want to just delete memory in the middle.
348
348
  await store.deleteLogs([
349
349
  block
350
350
  ]);
351
- expect((await store.getPrivateLogs(1, 1)).length).toEqual(0);
351
+ expect((await store.getPrivateLogs(BlockNumber(1), 1)).length).toEqual(0);
352
352
  expect((await store.getPublicLogs({
353
- fromBlock: 1
353
+ fromBlock: BlockNumber(1)
354
354
  })).logs.length).toEqual(0);
355
355
  });
356
356
  });
@@ -363,7 +363,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
363
363
  await store.addLogs([
364
364
  block
365
365
  ]);
366
- const privateLogs = await store.getPrivateLogs(1, 1);
366
+ const privateLogs = await store.getPrivateLogs(BlockNumber(1), 1);
367
367
  expect(privateLogs).toEqual(block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat());
368
368
  });
369
369
  });
@@ -419,7 +419,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
419
419
  ()=>wrapInBlock(blocks[5].block.body.txEffects[2], blocks[5].block),
420
420
  ()=>wrapInBlock(blocks[1].block.body.txEffects[0], blocks[1].block)
421
421
  ])('tries to retrieves a previously stored transaction after deleted', async (getExpectedTx)=>{
422
- await store.unwindBlocks(blocks.length, blocks.length);
422
+ await store.unwindBlocks(BlockNumber(blocks.length), blocks.length);
423
423
  const expectedTx = await getExpectedTx();
424
424
  const actualTx = await store.getTxEffect(expectedTx.data.txHash);
425
425
  expect(actualTx).toEqual(undefined);
@@ -436,7 +436,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
436
436
  await sleep(1);
437
437
  }
438
438
  })();
439
- await store.unwindBlocks(blocks.length, blocks.length);
439
+ await store.unwindBlocks(BlockNumber(blocks.length), blocks.length);
440
440
  done = true;
441
441
  expect(await store.getTxEffect(expectedTx.data.txHash)).toEqual(undefined);
442
442
  });
@@ -450,7 +450,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
450
450
  };
451
451
  const makeInboxMessagesWithFullBlocks = (blockCount, opts = {})=>makeInboxMessages(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * blockCount, {
452
452
  overrideFn: (msg, i)=>{
453
- const l2BlockNumber = (opts.initialL2BlockNumber ?? initialL2BlockNumber) + Math.floor(i / NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
453
+ const l2BlockNumber = BlockNumber((opts.initialL2BlockNumber ?? initialL2BlockNumber) + Math.floor(i / NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
454
454
  const index = InboxLeaf.smallestIndexFromL2Block(l2BlockNumber) + BigInt(i % NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
455
455
  return {
456
456
  ...msg,
@@ -462,7 +462,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
462
462
  it('stores first message ever', async ()=>{
463
463
  const msg = makeInboxMessage(Buffer16.ZERO, {
464
464
  index: 0n,
465
- l2BlockNumber: 1
465
+ l2BlockNumber: BlockNumber(1)
466
466
  });
467
467
  await store.addL1ToL2Messages([
468
468
  msg
@@ -470,13 +470,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
470
470
  await checkMessages([
471
471
  msg
472
472
  ]);
473
- expect(await store.getL1ToL2Messages(1)).toEqual([
473
+ expect(await store.getL1ToL2Messages(BlockNumber(1))).toEqual([
474
474
  msg.leaf
475
475
  ]);
476
476
  });
477
477
  it('stores single message', async ()=>{
478
478
  const msg = makeInboxMessage(Buffer16.ZERO, {
479
- l2BlockNumber: 2
479
+ l2BlockNumber: BlockNumber(2)
480
480
  });
481
481
  await store.addL1ToL2Messages([
482
482
  msg
@@ -484,7 +484,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
484
484
  await checkMessages([
485
485
  msg
486
486
  ]);
487
- expect(await store.getL1ToL2Messages(2)).toEqual([
487
+ expect(await store.getL1ToL2Messages(BlockNumber(2))).toEqual([
488
488
  msg.leaf
489
489
  ]);
490
490
  });
@@ -494,7 +494,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
494
494
  });
495
495
  await store.addL1ToL2Messages(msgs);
496
496
  await checkMessages(msgs);
497
- expect(await store.getL1ToL2Messages(initialL2BlockNumber + 2)).toEqual([
497
+ expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 2))).toEqual([
498
498
  msgs[2]
499
499
  ].map((m)=>m.leaf));
500
500
  });
@@ -520,14 +520,14 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
520
520
  ...msgs1,
521
521
  ...msgs2
522
522
  ]);
523
- expect(await store.getL1ToL2Messages(1)).toEqual([
523
+ expect(await store.getL1ToL2Messages(BlockNumber(1))).toEqual([
524
524
  msgs1[0].leaf
525
525
  ]);
526
- expect(await store.getL1ToL2Messages(4)).toEqual([]);
527
- expect(await store.getL1ToL2Messages(20)).toEqual([
526
+ expect(await store.getL1ToL2Messages(BlockNumber(4))).toEqual([]);
527
+ expect(await store.getL1ToL2Messages(BlockNumber(20))).toEqual([
528
528
  msgs2[0].leaf
529
529
  ]);
530
- expect(await store.getL1ToL2Messages(24)).toEqual([]);
530
+ expect(await store.getL1ToL2Messages(BlockNumber(24))).toEqual([]);
531
531
  });
532
532
  it('stores and returns messages with block numbers larger than a byte', async ()=>{
533
533
  const msgs = makeInboxMessages(5, {
@@ -535,7 +535,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
535
535
  });
536
536
  await store.addL1ToL2Messages(msgs);
537
537
  await checkMessages(msgs);
538
- expect(await store.getL1ToL2Messages(1002)).toEqual([
538
+ expect(await store.getL1ToL2Messages(BlockNumber(1002))).toEqual([
539
539
  msgs[2]
540
540
  ].map((m)=>m.leaf));
541
541
  });
@@ -543,7 +543,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
543
543
  const msgs = makeInboxMessagesWithFullBlocks(4);
544
544
  await store.addL1ToL2Messages(msgs);
545
545
  await checkMessages(msgs);
546
- const blockMessages = await store.getL1ToL2Messages(initialL2BlockNumber + 1);
546
+ const blockMessages = await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 1));
547
547
  expect(blockMessages).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
548
548
  expect(blockMessages).toEqual(msgs.slice(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2).map((m)=>m.leaf));
549
549
  });
@@ -553,10 +553,10 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
553
553
  });
554
554
  await store.addL1ToL2Messages(msgs.slice(0, 10));
555
555
  await store.addL1ToL2Messages(msgs.slice(10, 20));
556
- expect(await store.getL1ToL2Messages(initialL2BlockNumber + 2)).toEqual([
556
+ expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 2))).toEqual([
557
557
  msgs[2]
558
558
  ].map((m)=>m.leaf));
559
- expect(await store.getL1ToL2Messages(initialL2BlockNumber + 12)).toEqual([
559
+ expect(await store.getL1ToL2Messages(BlockNumber(initialL2BlockNumber + 12))).toEqual([
560
560
  msgs[12]
561
561
  ].map((m)=>m.leaf));
562
562
  await checkMessages(msgs);
@@ -595,7 +595,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
595
595
  const msgs = makeInboxMessages(4, {
596
596
  initialL2BlockNumber
597
597
  });
598
- msgs[2].l2BlockNumber = initialL2BlockNumber - 1;
598
+ msgs[2].l2BlockNumber = BlockNumber(initialL2BlockNumber - 1);
599
599
  await store.addL1ToL2Messages(msgs.slice(0, 2));
600
600
  await expect(store.addL1ToL2Messages(msgs.slice(2, 4))).rejects.toThrow(MessageStoreError);
601
601
  });
@@ -607,7 +607,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
607
607
  it('throws if rolling hash for first message is not correct', async ()=>{
608
608
  const msgs = makeInboxMessages(4);
609
609
  msgs[2].rollingHash = Buffer16.random();
610
- await store.addL1ToL2Messages(msgs.slice(0, 2));
610
+ await store.addL1ToL2Messages(msgs.slice(0, BlockNumber(2)));
611
611
  await expect(store.addL1ToL2Messages(msgs.slice(2, 4))).rejects.toThrow(MessageStoreError);
612
612
  });
613
613
  it('throws if index is not in the correct range', async ()=>{
@@ -629,7 +629,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
629
629
  initialL2BlockNumber,
630
630
  overrideFn: (msg, i)=>({
631
631
  ...msg,
632
- l2BlockNumber: 2,
632
+ l2BlockNumber: BlockNumber(2),
633
633
  index: BigInt(i + NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2)
634
634
  })
635
635
  });
@@ -642,15 +642,15 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
642
642
  });
643
643
  await store.addL1ToL2Messages(msgs);
644
644
  await checkMessages(msgs);
645
- expect(await store.getL1ToL2Messages(1)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
646
- expect(await store.getL1ToL2Messages(2)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
647
- expect(await store.getL1ToL2Messages(3)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
648
- expect(await store.getL1ToL2Messages(4)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
649
- await store.rollbackL1ToL2MessagesToL2Block(2);
650
- expect(await store.getL1ToL2Messages(1)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
651
- expect(await store.getL1ToL2Messages(2)).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
652
- expect(await store.getL1ToL2Messages(3)).toHaveLength(0);
653
- expect(await store.getL1ToL2Messages(4)).toHaveLength(0);
645
+ expect(await store.getL1ToL2Messages(BlockNumber(1))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
646
+ expect(await store.getL1ToL2Messages(BlockNumber(2))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
647
+ expect(await store.getL1ToL2Messages(BlockNumber(3))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
648
+ expect(await store.getL1ToL2Messages(BlockNumber(4))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
649
+ await store.rollbackL1ToL2MessagesToL2Block(BlockNumber(2));
650
+ expect(await store.getL1ToL2Messages(BlockNumber(1))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
651
+ expect(await store.getL1ToL2Messages(BlockNumber(2))).toHaveLength(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
652
+ expect(await store.getL1ToL2Messages(BlockNumber(3))).toHaveLength(0);
653
+ expect(await store.getL1ToL2Messages(BlockNumber(4))).toHaveLength(0);
654
654
  await checkMessages(msgs.slice(0, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * 2));
655
655
  });
656
656
  it('removes messages starting with the given index', async ()=>{
@@ -678,7 +678,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
678
678
  };
679
679
  await store.addContractInstances([
680
680
  contractInstance
681
- ], blockNum);
681
+ ], BlockNumber(blockNum));
682
682
  });
683
683
  it('returns previously stored contract instances', async ()=>{
684
684
  await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toMatchObject(contractInstance);
@@ -689,7 +689,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
689
689
  it('returns undefined if previously stored contract instances was deleted', async ()=>{
690
690
  await store.deleteContractInstances([
691
691
  contractInstance
692
- ], blockNum);
692
+ ], BlockNumber(blockNum));
693
693
  await expect(store.getContractInstance(contractInstance.address, timestamp)).resolves.toBeUndefined();
694
694
  });
695
695
  });
@@ -711,7 +711,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
711
711
  };
712
712
  await store.addContractInstances([
713
713
  contractInstance
714
- ], 1);
714
+ ], BlockNumber(1));
715
715
  await store.addContractInstanceUpdates([
716
716
  {
717
717
  prevContractClassId: classId,
@@ -748,7 +748,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
748
748
  };
749
749
  await store.addContractInstances([
750
750
  otherContractInstance
751
- ], 1);
751
+ ], BlockNumber(1));
752
752
  const fetchedInstance = await store.getContractInstance(otherContractInstance.address, timestampOfChange + 1n);
753
753
  expect(fetchedInstance?.originalContractClassId).toEqual(otherClassId);
754
754
  expect(fetchedInstance?.currentContractClassId).toEqual(otherClassId);
@@ -766,7 +766,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
766
766
  };
767
767
  await store.addContractInstances([
768
768
  otherContractInstance
769
- ], 1);
769
+ ], BlockNumber(1));
770
770
  await store.addContractInstanceUpdates([
771
771
  {
772
772
  prevContractClassId: otherClassId,
@@ -789,7 +789,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
789
789
  contractClass
790
790
  ], [
791
791
  await computePublicBytecodeCommitment(contractClass.packedBytecode)
792
- ], blockNum);
792
+ ], BlockNumber(blockNum));
793
793
  });
794
794
  it('returns previously stored contract class', async ()=>{
795
795
  await expect(store.getContractClass(contractClass.id)).resolves.toMatchObject(contractClass);
@@ -797,7 +797,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
797
797
  it('returns undefined if the initial deployed contract class was deleted', async ()=>{
798
798
  await store.deleteContractClasses([
799
799
  contractClass
800
- ], blockNum);
800
+ ], BlockNumber(blockNum));
801
801
  await expect(store.getContractClass(contractClass.id)).resolves.toBeUndefined();
802
802
  });
803
803
  it('returns contract class if later "deployment" class was deleted', async ()=>{
@@ -805,10 +805,10 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
805
805
  contractClass
806
806
  ], [
807
807
  await computePublicBytecodeCommitment(contractClass.packedBytecode)
808
- ], blockNum + 1);
808
+ ], BlockNumber(blockNum + 1));
809
809
  await store.deleteContractClasses([
810
810
  contractClass
811
- ], blockNum + 1);
811
+ ], BlockNumber(blockNum + 1));
812
812
  await expect(store.getContractClass(contractClass.id)).resolves.toMatchObject(contractClass);
813
813
  });
814
814
  it('returns undefined if contract class is not found', async ()=>{
@@ -871,8 +871,8 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
871
871
  });
872
872
  };
873
873
  const mockBlockWithLogs = async (blockNumber)=>{
874
- const block = await L2Block.random(blockNumber);
875
- block.header.globalVariables.blockNumber = blockNumber;
874
+ const block = await L2Block.random(BlockNumber(blockNumber));
875
+ block.header.globalVariables.blockNumber = BlockNumber(blockNumber);
876
876
  block.body.txEffects = await timesParallel(numTxsPerBlock, async (txIndex)=>{
877
877
  const txEffect = await TxEffect.random();
878
878
  txEffect.privateLogs = mockPrivateLogs(blockNumber, txIndex);
@@ -996,7 +996,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
996
996
  let blocks;
997
997
  beforeEach(async ()=>{
998
998
  blocks = await timesParallel(numBlocks, async (index)=>PublishedL2Block.fromFields({
999
- block: await L2Block.random(index + 1, txsPerBlock, numPublicFunctionCalls, numPublicLogs),
999
+ block: await L2Block.random(BlockNumber(index + 1), txsPerBlock, numPublicFunctionCalls, numPublicLogs),
1000
1000
  l1: {
1001
1001
  blockNumber: BigInt(index),
1002
1002
  blockHash: makeBlockHash(index),
@@ -1013,7 +1013,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1013
1013
  const targetTxIndex = randomInt(txsPerBlock);
1014
1014
  const targetTxHash = blocks[targetBlockIndex].block.body.txEffects[targetTxIndex].txHash;
1015
1015
  await Promise.all([
1016
- store.unwindBlocks(blocks.length, blocks.length),
1016
+ store.unwindBlocks(BlockNumber(blocks.length), blocks.length),
1017
1017
  store.deleteLogs(blocks.map((b)=>b.block))
1018
1018
  ]);
1019
1019
  const response = await store.getPublicLogs({
@@ -1078,7 +1078,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1078
1078
  const targetBlockIndex = randomInt(numBlocks);
1079
1079
  const targetTxIndex = randomInt(txsPerBlock);
1080
1080
  const targetLogIndex = randomInt(numPublicLogs);
1081
- const afterLog = new LogId(targetBlockIndex + INITIAL_L2_BLOCK_NUM, targetTxIndex, targetLogIndex);
1081
+ const afterLog = new LogId(BlockNumber(targetBlockIndex + INITIAL_L2_BLOCK_NUM), targetTxIndex, targetLogIndex);
1082
1082
  const response = await store.getPublicLogs({
1083
1083
  afterLog
1084
1084
  });
@@ -1098,7 +1098,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1098
1098
  it('"txHash" filter param is ignored when "afterLog" is set', async ()=>{
1099
1099
  // Get random txHash
1100
1100
  const txHash = TxHash.random();
1101
- const afterLog = new LogId(1, 0, 0);
1101
+ const afterLog = new LogId(BlockNumber(1), 0, 0);
1102
1102
  const response = await store.getPublicLogs({
1103
1103
  txHash,
1104
1104
  afterLog
@@ -1114,7 +1114,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1114
1114
  // "fromBlock" gets correctly trimmed to range and "toBlock" is exclusive
1115
1115
  logs = (await store.getPublicLogs({
1116
1116
  fromBlock: -10,
1117
- toBlock: 5
1117
+ toBlock: BlockNumber(5)
1118
1118
  })).logs;
1119
1119
  let blockNumbers = new Set(logs.map((log)=>log.id.blockNumber));
1120
1120
  expect(blockNumbers).toEqual(new Set([
@@ -1125,13 +1125,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1125
1125
  ]));
1126
1126
  // "toBlock" should be exclusive
1127
1127
  logs = (await store.getPublicLogs({
1128
- fromBlock: 1,
1129
- toBlock: 1
1128
+ fromBlock: BlockNumber(1),
1129
+ toBlock: BlockNumber(1)
1130
1130
  })).logs;
1131
1131
  expect(logs.length).toBe(0);
1132
1132
  logs = (await store.getPublicLogs({
1133
- fromBlock: 10,
1134
- toBlock: 5
1133
+ fromBlock: BlockNumber(10),
1134
+ toBlock: BlockNumber(5)
1135
1135
  })).logs;
1136
1136
  expect(logs.length).toBe(0);
1137
1137
  // both "fromBlock" and "toBlock" get correctly capped to range and logs from all blocks are returned
@@ -1143,23 +1143,23 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1143
1143
  expect(blockNumbers.size).toBe(numBlocks);
1144
1144
  // intersecting with "afterLog" works
1145
1145
  logs = (await store.getPublicLogs({
1146
- fromBlock: 2,
1147
- toBlock: 5,
1148
- afterLog: new LogId(4, 0, 0)
1146
+ fromBlock: BlockNumber(2),
1147
+ toBlock: BlockNumber(5),
1148
+ afterLog: new LogId(BlockNumber(4), 0, 0)
1149
1149
  })).logs;
1150
1150
  blockNumbers = new Set(logs.map((log)=>log.id.blockNumber));
1151
1151
  expect(blockNumbers).toEqual(new Set([
1152
1152
  4
1153
1153
  ]));
1154
1154
  logs = (await store.getPublicLogs({
1155
- toBlock: 5,
1156
- afterLog: new LogId(5, 1, 0)
1155
+ toBlock: BlockNumber(5),
1156
+ afterLog: new LogId(BlockNumber(5), 1, 0)
1157
1157
  })).logs;
1158
1158
  expect(logs.length).toBe(0);
1159
1159
  logs = (await store.getPublicLogs({
1160
- fromBlock: 2,
1161
- toBlock: 5,
1162
- afterLog: new LogId(100, 0, 0)
1160
+ fromBlock: BlockNumber(2),
1161
+ toBlock: BlockNumber(5),
1162
+ afterLog: new LogId(BlockNumber(100), 0, 0)
1163
1163
  })).logs;
1164
1164
  expect(logs.length).toBe(0);
1165
1165
  });
@@ -1168,7 +1168,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
1168
1168
  const targetBlockIndex = randomInt(numBlocks);
1169
1169
  const targetTxIndex = randomInt(txsPerBlock);
1170
1170
  const targetLogIndex = randomInt(numPublicLogs);
1171
- const afterLog = new LogId(targetBlockIndex + INITIAL_L2_BLOCK_NUM, targetTxIndex, targetLogIndex);
1171
+ const afterLog = new LogId(BlockNumber(targetBlockIndex + INITIAL_L2_BLOCK_NUM), targetTxIndex, targetLogIndex);
1172
1172
  const response = await store.getPublicLogs({
1173
1173
  afterLog,
1174
1174
  fromBlock: afterLog.blockNumber
@@ -77,4 +77,4 @@ export type SubmitEpochProof = {
77
77
  * @returns Epoch proof metadata from the calldata, deserialized.
78
78
  */
79
79
  export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUVWLFVBQVUsRUFHVixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUVMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUtULE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxF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
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUVWLFVBQVUsRUFHVixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUVMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUtULE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxF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
@@ -1 +1 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { BlobDeserializationError, SpongeBlob, decodeCheckpointBlobDataFromBlobs, encodeBlockBlobData } from '@aztec/blob-lib';
2
2
  import { asyncPool } from '@aztec/foundation/async-pool';
3
- import { CheckpointNumber } from '@aztec/foundation/branded-types';
3
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
4
4
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
5
5
  import { Fr } from '@aztec/foundation/fields';
6
6
  import { createLogger } from '@aztec/foundation/log';
@@ -308,7 +308,7 @@ function mapLogsInboxMessage(logs) {
308
308
  leaf: Fr.fromHexString(hash),
309
309
  l1BlockNumber: log.blockNumber,
310
310
  l1BlockHash: Buffer32.fromString(log.blockHash),
311
- l2BlockNumber: Number(checkpointNumber),
311
+ l2BlockNumber: BlockNumber(Number(checkpointNumber)),
312
312
  rollingHash: Buffer16.fromString(rollingHash)
313
313
  };
314
314
  });
@@ -1,3 +1,4 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
1
2
  import { Fr } from '@aztec/foundation/fields';
2
3
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
4
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
@@ -26,20 +27,20 @@ export declare class BlockStore {
26
27
  * @param blocksToUnwind - The number of blocks we are to unwind
27
28
  * @returns True if the operation is successful
28
29
  */
29
- unwindBlocks(from: number, blocksToUnwind: number): Promise<boolean>;
30
+ unwindBlocks(from: BlockNumber, blocksToUnwind: number): Promise<boolean>;
30
31
  /**
31
32
  * Gets up to `limit` amount of L2 blocks starting from `from`.
32
33
  * @param start - Number of the first block to return (inclusive).
33
34
  * @param limit - The number of blocks to return.
34
35
  * @returns The requested L2 blocks
35
36
  */
36
- getBlocks(start: number, limit: number): AsyncIterableIterator<PublishedL2Block>;
37
+ getBlocks(start: BlockNumber, limit: number): AsyncIterableIterator<PublishedL2Block>;
37
38
  /**
38
39
  * Gets an L2 block.
39
40
  * @param blockNumber - The number of the block to return.
40
41
  * @returns The requested L2 block.
41
42
  */
42
- getBlock(blockNumber: number): Promise<PublishedL2Block | undefined>;
43
+ getBlock(blockNumber: BlockNumber): Promise<PublishedL2Block | undefined>;
43
44
  /**
44
45
  * Gets an L2 block by its hash.
45
46
  * @param blockHash - The hash of the block to return.
@@ -70,7 +71,7 @@ export declare class BlockStore {
70
71
  * @param limit - The number of blocks to return.
71
72
  * @returns The requested L2 block headers
72
73
  */
73
- getBlockHeaders(start: number, limit: number): AsyncIterableIterator<BlockHeader>;
74
+ getBlockHeaders(start: BlockNumber, limit: number): AsyncIterableIterator<BlockHeader>;
74
75
  private getBlockStorages;
75
76
  private getBlockFromBlockStorage;
76
77
  /**
@@ -101,15 +102,15 @@ export declare class BlockStore {
101
102
  * Gets the number of the latest L2 block processed.
102
103
  * @returns The number of the latest L2 block processed.
103
104
  */
104
- getSynchedL2BlockNumber(): Promise<number>;
105
+ getSynchedL2BlockNumber(): Promise<BlockNumber>;
105
106
  /**
106
107
  * Gets the most recent L1 block processed.
107
108
  * @returns The L1 block that published the latest L2 block
108
109
  */
109
110
  getSynchedL1BlockNumber(): Promise<bigint | undefined>;
110
111
  setSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<boolean>;
111
- getProvenL2BlockNumber(): Promise<number>;
112
- setProvenL2BlockNumber(blockNumber: number): Promise<boolean>;
112
+ getProvenL2BlockNumber(): Promise<BlockNumber>;
113
+ setProvenL2BlockNumber(blockNumber: BlockNumber): Promise<boolean>;
113
114
  /**
114
115
  * Gets the pending chain validation status.
115
116
  * @returns The validation status or undefined if not set.
@@ -121,4 +122,4 @@ export declare class BlockStore {
121
122
  */
122
123
  setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void>;
123
124
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9ibG9ja19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLOUMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQTZDLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUlMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsS0FBSyxtQkFBbUIsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUc3QixPQUFPLEVBQ0wsV0FBVyxFQUNYLEtBQUssZUFBZSxFQUVwQixNQUFNLEVBQ04sU0FBUyxFQUdWLE1BQU0sa0JBQWtCLENBQUM7QUFLMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBWXpFOztHQUVHO0FBQ0gscUJBQWEsVUFBVTs7SUE4QlQsT0FBTyxDQUFDLEVBQUU7SUFBdEIsWUFBb0IsRUFBRSxFQUFFLGlCQUFpQixFQVV4QztJQUVEOzs7O09BSUc7SUFDRyxTQUFTLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxHQUFFO1FBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBMEQ1RjtJQUVEOzs7Ozs7T0FNRztJQUNHLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQWtDdEQ7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FPdEY7SUFFRDs7OztPQUlHO0lBQ0csUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQU16RTtJQUVEOzs7O09BSUc7SUFDRyxjQUFjLENBQUMsU0FBUyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBTWxGO0lBRUQ7Ozs7T0FJRztJQUNHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQU0xRTtJQUVEOzs7O09BSUc7SUFDRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBVW5GO0lBRUQ7Ozs7T0FJRztJQUNHLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FVM0U7SUFFRDs7Ozs7T0FLRztJQUNJLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBVXZGO1lBRWMsZ0JBQWdCO1lBYWpCLHdCQUF3QjtJQXVDdEM7Ozs7T0FJRztJQUNHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLENBTXRFO0lBRUQ7Ozs7T0FJRztJQUNHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FjeEU7SUFFRDs7OztPQUlHO0lBQ1UsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBT3RHO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLGVBQWUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBRTVHO0lBRUQ7OztPQUdHO0lBQ0csdUJBQXVCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUcvQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRXJEO0lBRUQsdUJBQXVCLENBQUMsYUFBYSxFQUFFLE1BQU0sb0JBRTVDO0lBRUssc0JBQXNCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU05QztJQUVELHNCQUFzQixDQUFDLFdBQVcsRUFBRSxNQUFNLG9CQUV6QztJQWNEOzs7T0FHRztJQUNHLCtCQUErQixJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsQ0FNaEY7SUFFRDs7O09BR0c7SUFDRywrQkFBK0IsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FPNUY7Q0FDRiJ9
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9ibG9ja19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSzlDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUE2QyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFJTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLEtBQUssbUJBQW1CLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFHN0IsT0FBTyxFQUNMLFdBQVcsRUFDWCxLQUFLLGVBQWUsRUFFcEIsTUFBTSxFQUNOLFNBQVMsRUFHVixNQUFNLGtCQUFrQixDQUFDO0FBSzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxRQUFRLEVBQUUsS0FBSyxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVl6RTs7R0FFRztBQUNILHFCQUFhLFVBQVU7O0lBOEJULE9BQU8sQ0FBQyxFQUFFO0lBQXRCLFlBQW9CLEVBQUUsRUFBRSxpQkFBaUIsRUFVeEM7SUFFRDs7OztPQUlHO0lBQ0csU0FBUyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksR0FBRTtRQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQTBENUY7SUFFRDs7Ozs7O09BTUc7SUFDRyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFrQzNEO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBTzNGO0lBRUQ7Ozs7T0FJRztJQUNHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FNOUU7SUFFRDs7OztPQUlHO0lBQ0csY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQU1sRjtJQUVEOzs7O09BSUc7SUFDRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FNMUU7SUFFRDs7OztPQUlHO0lBQ0csb0JBQW9CLENBQUMsU0FBUyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQVVuRjtJQUVEOzs7O09BSUc7SUFDRyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBVTNFO0lBRUQ7Ozs7O09BS0c7SUFDSSxlQUFlLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQVU1RjtZQUVjLGdCQUFnQjtZQWFqQix3QkFBd0I7SUF1Q3RDOzs7O09BSUc7SUFDRyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQU10RTtJQUVEOzs7O09BSUc7SUFDRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBY3hFO0lBRUQ7Ozs7T0FJRztJQUNVLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQU90RztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUU1RztJQUVEOzs7T0FHRztJQUNHLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FHcEQ7SUFFRDs7O09BR0c7SUFDSCx1QkFBdUIsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVyRDtJQUVELHVCQUF1QixDQUFDLGFBQWEsRUFBRSxNQUFNLG9CQUU1QztJQUVLLHNCQUFzQixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FNbkQ7SUFFRCxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxvQkFFOUM7SUFjRDs7O09BR0c7SUFDRywrQkFBK0IsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLENBTWhGO0lBRUQ7OztPQUdHO0lBQ0csK0JBQStCLENBQUMsTUFBTSxFQUFFLG1CQUFtQixHQUFHLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTzVGO0NBQ0YifQ==