@aztec/p2p 3.0.0-nightly.20251127 → 3.0.0-nightly.20251201.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +1 -1
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/client/factory.d.ts +1 -1
  4. package/dest/client/index.d.ts +1 -1
  5. package/dest/client/interface.d.ts +1 -1
  6. package/dest/client/p2p_client.d.ts +3 -22
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +5 -4
  9. package/dest/config.d.ts +56 -56
  10. package/dest/enr/generate-enr.d.ts +1 -1
  11. package/dest/enr/index.d.ts +1 -1
  12. package/dest/errors/attestation-pool.error.d.ts +1 -1
  13. package/dest/errors/attestation-pool.error.d.ts.map +1 -1
  14. package/dest/errors/reqresp.error.d.ts +1 -1
  15. package/dest/errors/reqresp.error.d.ts.map +1 -1
  16. package/dest/index.d.ts +1 -1
  17. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -6
  18. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  19. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  20. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +33 -32
  22. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  23. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +9 -8
  24. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +19 -20
  26. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +9 -8
  27. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  28. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +12 -10
  29. package/dest/mem_pools/attestation_pool/mocks.d.ts +224 -3
  30. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/mocks.js +1 -1
  32. package/dest/mem_pools/index.d.ts +1 -1
  33. package/dest/mem_pools/instrumentation.d.ts +1 -1
  34. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  35. package/dest/mem_pools/interface.d.ts +1 -1
  36. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +1 -36
  37. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  38. package/dest/mem_pools/tx_pool/index.d.ts +1 -1
  39. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +1 -1
  40. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  41. package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
  42. package/dest/mem_pools/tx_pool/tx_pool.d.ts +1 -1
  43. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  44. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +1 -1
  45. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  46. package/dest/msg_validators/attestation_validator/attestation_validator.js +11 -11
  47. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +1 -1
  48. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  49. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +1 -1
  50. package/dest/msg_validators/attestation_validator/index.d.ts +1 -1
  51. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +1 -1
  52. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  53. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +8 -8
  54. package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
  55. package/dest/msg_validators/index.d.ts +1 -1
  56. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  57. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  58. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  59. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  60. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  61. package/dest/msg_validators/tx_validator/archive_cache.d.ts +1 -1
  62. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  63. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +1 -1
  64. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  65. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  66. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  67. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
  68. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  69. package/dest/msg_validators/tx_validator/factory.d.ts +1 -1
  70. package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
  71. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  72. package/dest/msg_validators/tx_validator/index.d.ts +1 -1
  73. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  74. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  75. package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
  76. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  77. package/dest/msg_validators/tx_validator/test_utils.d.ts +1 -1
  78. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +1 -1
  79. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  80. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
  81. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  82. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
  83. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  84. package/dest/services/data_store.d.ts +1 -1
  85. package/dest/services/data_store.d.ts.map +1 -1
  86. package/dest/services/discv5/discV5_service.d.ts +1 -1
  87. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  88. package/dest/services/dummy_service.d.ts +1 -1
  89. package/dest/services/dummy_service.d.ts.map +1 -1
  90. package/dest/services/encoding.d.ts +1 -1
  91. package/dest/services/encoding.d.ts.map +1 -1
  92. package/dest/services/gossipsub/scoring.d.ts +1 -1
  93. package/dest/services/index.d.ts +1 -1
  94. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  95. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  96. package/dest/services/libp2p/libp2p_service.d.ts +1 -76
  97. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  98. package/dest/services/libp2p/libp2p_service.js +14 -13
  99. package/dest/services/peer-manager/interface.d.ts +1 -1
  100. package/dest/services/peer-manager/metrics.d.ts +1 -1
  101. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  102. package/dest/services/peer-manager/peer_manager.d.ts +1 -32
  103. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  104. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  105. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  106. package/dest/services/reqresp/config.d.ts +1 -1
  107. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
  108. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  109. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
  110. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  111. package/dest/services/reqresp/index.d.ts +1 -1
  112. package/dest/services/reqresp/interface.d.ts +1 -1
  113. package/dest/services/reqresp/interface.d.ts.map +1 -1
  114. package/dest/services/reqresp/metrics.d.ts +1 -1
  115. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  116. package/dest/services/reqresp/protocols/auth.d.ts +1 -1
  117. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  118. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  119. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
  120. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  121. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  122. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +3 -5
  123. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  124. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  125. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  126. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  127. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  128. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  129. package/dest/services/reqresp/protocols/status.d.ts +2 -2
  130. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  131. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  132. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  133. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  134. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  135. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  136. package/dest/services/reqresp/reqresp.d.ts +1 -41
  137. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  138. package/dest/services/reqresp/status.d.ts +2 -2
  139. package/dest/services/reqresp/status.d.ts.map +1 -1
  140. package/dest/services/service.d.ts +1 -1
  141. package/dest/services/tx_collection/config.d.ts +1 -1
  142. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -7
  143. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  144. package/dest/services/tx_collection/index.d.ts +1 -1
  145. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  146. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  147. package/dest/services/tx_collection/slow_tx_collection.d.ts +1 -3
  148. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  149. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  150. package/dest/services/tx_collection/tx_collection.d.ts +1 -2
  151. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  152. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  153. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  154. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  155. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  156. package/dest/services/tx_provider.d.ts +1 -1
  157. package/dest/services/tx_provider.d.ts.map +1 -1
  158. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  159. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  160. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  161. package/dest/test-helpers/get-ports.d.ts +1 -1
  162. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  163. package/dest/test-helpers/index.d.ts +1 -1
  164. package/dest/test-helpers/make-enrs.d.ts +1 -1
  165. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  166. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  167. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  168. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  169. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  170. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  171. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  172. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  173. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  174. package/dest/testbench/p2p_client_testbench_worker.js +8 -7
  175. package/dest/testbench/parse_log_file.d.ts +1 -1
  176. package/dest/testbench/testbench.d.ts +1 -1
  177. package/dest/testbench/worker_client_manager.d.ts +1 -1
  178. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  179. package/dest/types/index.d.ts +1 -1
  180. package/dest/util.d.ts +1 -1
  181. package/dest/versioning.d.ts +1 -1
  182. package/package.json +18 -17
  183. package/src/client/p2p_client.ts +6 -5
  184. package/src/mem_pools/attestation_pool/attestation_pool.ts +6 -5
  185. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +45 -32
  186. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +28 -29
  187. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +26 -22
  188. package/src/mem_pools/attestation_pool/mocks.ts +1 -1
  189. package/src/msg_validators/attestation_validator/attestation_validator.ts +11 -13
  190. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +1 -1
  191. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +8 -8
  192. package/src/services/libp2p/libp2p_service.ts +14 -13
  193. package/src/services/tx_collection/slow_tx_collection.ts +3 -2
  194. package/src/testbench/p2p_client_testbench_worker.ts +6 -5
@@ -1,3 +1,4 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import { Secp256k1Signer } from '@aztec/foundation/crypto';
2
3
  import { Fr } from '@aztec/foundation/fields';
3
4
  import { BlockProposal as BlockProposalClass, ConsensusPayload, SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '@aztec/stdlib/p2p';
@@ -27,7 +28,7 @@ export function describeAttestationPool(getAttestationPool) {
27
28
  };
28
29
  const mockBlockProposal = (signer, slotNumber, archive = Fr.random())=>{
29
30
  const header = makeL2BlockHeader(1, 2, slotNumber);
30
- const payload = new ConsensusPayload(header.toCheckpointHeader(), archive, header.state);
31
+ const payload = new ConsensusPayload(header.toCheckpointHeader(), archive);
31
32
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
32
33
  const signature = signer.sign(hash);
33
34
  const txHashes = [
@@ -49,14 +50,14 @@ export function describeAttestationPool(getAttestationPool) {
49
50
  const archive = Fr.random();
50
51
  const attestations = signers.slice(0, -1).map((signer)=>mockAttestation(signer, slotNumber, archive));
51
52
  await ap.addAttestations(attestations);
52
- const retrievedAttestations = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), archive.toString());
53
+ const retrievedAttestations = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
53
54
  expect(retrievedAttestations.length).toBe(attestations.length);
54
55
  compareAttestations(retrievedAttestations, attestations);
55
56
  // Check hasAttestation for added attestations
56
57
  for (const attestation of attestations){
57
58
  expect(await ap.hasAttestation(attestation)).toBe(true);
58
59
  }
59
- const retrievedAttestationsForSlot = await ap.getAttestationsForSlot(BigInt(slotNumber));
60
+ const retrievedAttestationsForSlot = await ap.getAttestationsForSlot(SlotNumber(slotNumber));
60
61
  expect(retrievedAttestationsForSlot.length).toBe(attestations.length);
61
62
  compareAttestations(retrievedAttestationsForSlot, attestations);
62
63
  // Add another one
@@ -64,22 +65,22 @@ export function describeAttestationPool(getAttestationPool) {
64
65
  await ap.addAttestations([
65
66
  newAttestation
66
67
  ]);
67
- const retrievedAttestationsAfterAdd = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), archive.toString());
68
+ const retrievedAttestationsAfterAdd = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
68
69
  expect(retrievedAttestationsAfterAdd.length).toBe(attestations.length + 1);
69
70
  compareAttestations(retrievedAttestationsAfterAdd, [
70
71
  ...attestations,
71
72
  newAttestation
72
73
  ]);
73
74
  expect(await ap.hasAttestation(newAttestation)).toBe(true);
74
- const retrievedAttestationsForSlotAfterAdd = await ap.getAttestationsForSlot(BigInt(slotNumber));
75
+ const retrievedAttestationsForSlotAfterAdd = await ap.getAttestationsForSlot(SlotNumber(slotNumber));
75
76
  expect(retrievedAttestationsForSlotAfterAdd.length).toBe(attestations.length + 1);
76
77
  compareAttestations(retrievedAttestationsForSlotAfterAdd, [
77
78
  ...attestations,
78
79
  newAttestation
79
80
  ]);
80
81
  // Delete by slot
81
- await ap.deleteAttestationsForSlot(BigInt(slotNumber));
82
- const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), archive.toString());
82
+ await ap.deleteAttestationsForSlot(SlotNumber(slotNumber));
83
+ const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
83
84
  expect(retreivedAttestationsAfterDelete.length).toBe(0);
84
85
  // Check hasAttestation after deletion
85
86
  for (const attestation of attestations){
@@ -98,7 +99,7 @@ export function describeAttestationPool(getAttestationPool) {
98
99
  }
99
100
  // Add them to store and check we end up with only one
100
101
  await ap.addAttestations(attestations);
101
- const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), archive.toString());
102
+ const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
102
103
  expect(retreivedAttestations.length).toBe(1);
103
104
  expect(retreivedAttestations[0].toBuffer()).toEqual(attestations[0].toBuffer());
104
105
  expect(retreivedAttestations[0].getSender()?.toString()).toEqual(signer.address.toString());
@@ -106,7 +107,7 @@ export function describeAttestationPool(getAttestationPool) {
106
107
  await ap.addAttestations([
107
108
  attestations[0]
108
109
  ]);
109
- expect(await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), archive.toString())).toHaveLength(1);
110
+ expect(await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString())).toHaveLength(1);
110
111
  });
111
112
  it('should store attestations by differing slot', async ()=>{
112
113
  const slotNumbers = [
@@ -120,7 +121,7 @@ export function describeAttestationPool(getAttestationPool) {
120
121
  for (const attestation of attestations){
121
122
  const slot = attestation.payload.header.slotNumber;
122
123
  const archive = attestation.archive.toString();
123
- const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(slot.toBigInt(), archive);
124
+ const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(slot, archive);
124
125
  expect(retreivedAttestations.length).toBe(1);
125
126
  expect(retreivedAttestations[0].toBuffer()).toEqual(attestation.toBuffer());
126
127
  expect(retreivedAttestations[0].payload.header.slotNumber).toEqual(slot);
@@ -144,7 +145,7 @@ export function describeAttestationPool(getAttestationPool) {
144
145
  for (const attestation of attestations){
145
146
  const slot = attestation.payload.header.slotNumber;
146
147
  const proposalId = attestation.archive.toString();
147
- const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(slot.toBigInt(), proposalId);
148
+ const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(slot, proposalId);
148
149
  expect(retreivedAttestations.length).toBe(1);
149
150
  expect(retreivedAttestations[0].toBuffer()).toEqual(attestation.toBuffer());
150
151
  expect(retreivedAttestations[0].payload.header.slotNumber).toEqual(slot);
@@ -156,7 +157,7 @@ export function describeAttestationPool(getAttestationPool) {
156
157
  const attestations = signers.map((signer)=>mockAttestation(signer, slotNumber, archive));
157
158
  const proposalId = attestations[0].archive.toString();
158
159
  await ap.addAttestations(attestations);
159
- const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
160
+ const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
160
161
  expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
161
162
  compareAttestations(retreivedAttestations, attestations);
162
163
  // Check hasAttestation before deletion
@@ -164,7 +165,7 @@ export function describeAttestationPool(getAttestationPool) {
164
165
  expect(await ap.hasAttestation(attestation)).toBe(true);
165
166
  }
166
167
  await ap.deleteAttestations(attestations);
167
- const gottenAfterDelete = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
168
+ const gottenAfterDelete = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
168
169
  expect(gottenAfterDelete.length).toBe(0);
169
170
  // Check hasAttestation after deletion
170
171
  for (const attestation of attestations){
@@ -177,11 +178,11 @@ export function describeAttestationPool(getAttestationPool) {
177
178
  const attestations = signers.map((signer)=>mockAttestation(signer, slotNumber, archive));
178
179
  const proposalId = attestations[0].archive.toString();
179
180
  await ap.addAttestations(attestations);
180
- const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
181
+ const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
181
182
  expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
182
183
  compareAttestations(retreivedAttestations, attestations);
183
- await ap.deleteAttestationsForSlot(BigInt(slotNumber));
184
- const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
184
+ await ap.deleteAttestationsForSlot(SlotNumber(slotNumber));
185
+ const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
185
186
  expect(retreivedAttestationsAfterDelete.length).toBe(0);
186
187
  });
187
188
  it('should blanket delete attestations per slot and proposal', async ()=>{
@@ -195,13 +196,13 @@ export function describeAttestationPool(getAttestationPool) {
195
196
  const proposalId2 = attestations2[0].archive.toString();
196
197
  await ap.addAttestations(attestations);
197
198
  await ap.addAttestations(attestations2);
198
- const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
199
+ const retreivedAttestations = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
199
200
  expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
200
201
  compareAttestations(retreivedAttestations, attestations);
201
- await ap.deleteAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
202
- const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
202
+ await ap.deleteAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
203
+ const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
203
204
  expect(retreivedAttestationsAfterDelete.length).toBe(0);
204
- const retreivedAttestationsAfterDeleteForOtherProposal = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId2);
205
+ const retreivedAttestationsAfterDeleteForOtherProposal = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId2);
205
206
  expect(retreivedAttestationsAfterDeleteForOtherProposal.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
206
207
  compareAttestations(retreivedAttestationsAfterDeleteForOtherProposal, attestations2);
207
208
  });
@@ -219,18 +220,18 @@ export function describeAttestationPool(getAttestationPool) {
219
220
  const attestations = (await Promise.all(slotNumbers.map((slotNumber)=>createAttestationsForSlot(slotNumber)))).flat();
220
221
  const proposalId = attestations[0].archive.toString();
221
222
  await ap.addAttestations(attestations);
222
- const attestationsForSlot1 = await ap.getAttestationsForSlotAndProposal(BigInt(1), proposalId);
223
+ const attestationsForSlot1 = await ap.getAttestationsForSlotAndProposal(SlotNumber(1), proposalId);
223
224
  expect(attestationsForSlot1.length).toBe(signers.length);
224
225
  const deleteAttestationsSpy = jest.spyOn(ap, 'deleteAttestationsForSlot');
225
- await ap.deleteAttestationsOlderThan(BigInt(73));
226
- const attestationsForSlot1AfterDelete = await ap.getAttestationsForSlotAndProposal(BigInt(1), proposalId);
226
+ await ap.deleteAttestationsOlderThan(SlotNumber(73));
227
+ const attestationsForSlot1AfterDelete = await ap.getAttestationsForSlotAndProposal(SlotNumber(1), proposalId);
227
228
  expect(attestationsForSlot1AfterDelete.length).toBe(0);
228
229
  expect(deleteAttestationsSpy).toHaveBeenCalledTimes(5);
229
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(1));
230
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(2));
231
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(3));
232
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(69));
233
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(72));
230
+ expect(deleteAttestationsSpy).toHaveBeenCalledWith(SlotNumber(1));
231
+ expect(deleteAttestationsSpy).toHaveBeenCalledWith(SlotNumber(2));
232
+ expect(deleteAttestationsSpy).toHaveBeenCalledWith(SlotNumber(3));
233
+ expect(deleteAttestationsSpy).toHaveBeenCalledWith(SlotNumber(69));
234
+ expect(deleteAttestationsSpy).toHaveBeenCalledWith(SlotNumber(72));
234
235
  });
235
236
  describe('BlockProposal in attestation pool', ()=>{
236
237
  it('should add and retrieve block proposal', async ()=>{
@@ -279,7 +280,7 @@ export function describeAttestationPool(getAttestationPool) {
279
280
  const retrievedProposal = await ap.getBlockProposal(proposalId);
280
281
  expect(retrievedProposal).toBeDefined();
281
282
  expect(retrievedProposal.toBuffer()).toEqual(proposal2.toBuffer());
282
- expect(retrievedProposal.slotNumber.toBigInt()).toBe(BigInt(200));
283
+ expect(retrievedProposal.slotNumber).toBe(SlotNumber(200));
283
284
  });
284
285
  it('should delete block proposal when deleting attestations for slot and proposal', async ()=>{
285
286
  const slotNumber = 420;
@@ -295,7 +296,7 @@ export function describeAttestationPool(getAttestationPool) {
295
296
  expect(retrievedProposal).toBeDefined();
296
297
  expect(await ap.hasBlockProposal(proposalId)).toBe(true);
297
298
  // Delete attestations for slot and proposal
298
- await ap.deleteAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
299
+ await ap.deleteAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
299
300
  // Proposal should be deleted
300
301
  retrievedProposal = await ap.getBlockProposal(proposalId);
301
302
  expect(retrievedProposal).toBeUndefined();
@@ -313,7 +314,7 @@ export function describeAttestationPool(getAttestationPool) {
313
314
  expect(retrievedProposal).toBeDefined();
314
315
  expect(await ap.hasBlockProposal(proposal)).toBe(true);
315
316
  // Delete attestations for slot
316
- await ap.deleteAttestationsForSlot(BigInt(slotNumber));
317
+ await ap.deleteAttestationsForSlot(SlotNumber(slotNumber));
317
318
  // Proposal should be deleted
318
319
  retrievedProposal = await ap.getBlockProposal(proposalId);
319
320
  expect(retrievedProposal).toBeUndefined();
@@ -331,7 +332,7 @@ export function describeAttestationPool(getAttestationPool) {
331
332
  await ap.addAttestations(attestations);
332
333
  // Retrieve both proposal and attestations
333
334
  const retrievedProposal = await ap.getBlockProposal(proposalId);
334
- const retrievedAttestations = await ap.getAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
335
+ const retrievedAttestations = await ap.getAttestationsForSlotAndProposal(SlotNumber(slotNumber), proposalId);
335
336
  expect(retrievedProposal).toBeDefined();
336
337
  expect(retrievedProposal).toEqual(proposal);
337
338
  expect(await ap.hasBlockProposal(proposalId)).toBe(true);
@@ -1,3 +1,3 @@
1
1
  export * from './attestation_pool.js';
2
2
  export * from './memory_attestation_pool.js';
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUMifQ==
@@ -1,3 +1,4 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
3
  import { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
3
4
  import { type TelemetryClient } from '@aztec/telemetry-client';
@@ -18,19 +19,19 @@ export declare class KvAttestationPool implements AttestationPool {
18
19
  private getProposalKey;
19
20
  private getAttestationKey;
20
21
  addAttestations(attestations: BlockAttestation[]): Promise<void>;
21
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
22
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
23
- deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
24
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
25
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
22
+ getAttestationsForSlot(slot: SlotNumber): Promise<BlockAttestation[]>;
23
+ getAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<BlockAttestation[]>;
24
+ deleteAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
25
+ deleteAttestationsForSlot(slot: SlotNumber): Promise<void>;
26
+ deleteAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<void>;
26
27
  deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
27
28
  hasAttestation(attestation: BlockAttestation): Promise<boolean>;
28
29
  getBlockProposal(id: string): Promise<BlockProposal | undefined>;
29
30
  hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
30
31
  addBlockProposal(blockProposal: BlockProposal): Promise<void>;
31
- hasReachedProposalCap(slot: bigint): Promise<boolean>;
32
- hasReachedAttestationCap(slot: bigint, proposalId: string, committeeSize: number): Promise<boolean>;
32
+ hasReachedProposalCap(slot: SlotNumber): Promise<boolean>;
33
+ hasReachedAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
33
34
  canAddProposal(block: BlockProposal): Promise<boolean>;
34
35
  canAddAttestation(attestation: BlockAttestation, committeeSize: number): Promise<boolean>;
35
36
  }
36
- //# sourceMappingURL=kv_attestation_pool.d.ts.map
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2t2X2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTdELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFJbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0QsZUFBTyxNQUFNLHNCQUFzQixJQUFJLENBQUM7QUFDeEMsZUFBTyxNQUFNLHNCQUFzQixLQUFLLENBQUM7QUFFekMscUJBQWEsaUJBQWtCLFlBQVcsZUFBZTtJQVlyRCxPQUFPLENBQUMsS0FBSztJQUViLE9BQU8sQ0FBQyxHQUFHO0lBYmIsT0FBTyxDQUFDLE9BQU8sQ0FBd0M7SUFFdkQsT0FBTyxDQUFDLFlBQVksQ0FBZ0M7SUFDcEQsT0FBTyxDQUFDLFNBQVMsQ0FHZjtJQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBcUM7SUFDN0QsT0FBTyxDQUFDLHVCQUF1QixDQUFxQztJQUVwRSxZQUNVLEtBQUssRUFBRSxpQkFBaUIsRUFDaEMsU0FBUyxHQUFFLGVBQXNDLEVBQ3pDLEdBQUcseUNBQXlDLEVBUXJEO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FJZjtJQUVXLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBS3ZDO0lBRUQsT0FBTyxDQUFDLGNBQWM7SUFZdEIsT0FBTyxDQUFDLGlCQUFpQjtJQUlaLGVBQWUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBbUM1RTtJQUVZLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FTakY7SUFFWSxpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FvQmhIO0lBRVksMkJBQTJCLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzlFO0lBRVkseUJBQXlCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBdUJ0RTtJQUVZLG9DQUFvQyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBa0JyRztJQUVZLGtCQUFrQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E0Qi9FO0lBRVksY0FBYyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYzNFO0lBRVksZ0JBQWdCLENBQUMsRUFBRSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQVc1RTtJQUVZLGdCQUFnQixDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FHcEY7SUFFWSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FlekU7SUFFWSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FHckU7SUFFWSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBR25IO0lBRVksY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUlsRTtJQUVZLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FTckc7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,qBAAa,iBAAkB,YAAW,eAAe;IAYrD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAbb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,SAAS,CAGf;IACF,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,uBAAuB,CAAqC;gBAG1D,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC;IAUtD,OAAO,CAAC,SAAS,CAIf;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAOxC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqChE,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAYjE,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBhG,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnE,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB/D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAahE,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnG,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtD,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAUvG"}
1
+ {"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,qBAAa,iBAAkB,YAAW,eAAe;IAYrD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAbb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,SAAS,CAGf;IACF,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,uBAAuB,CAAqC;IAEpE,YACU,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC,EAQrD;IAED,OAAO,CAAC,SAAS,CAIf;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAKvC;IAED,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC5E;IAEY,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CASjF;IAEY,iCAAiC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoBhH;IAEY,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;IAEY,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtE;IAEY,oCAAoC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBrG;IAEY,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B/E;IAEY,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAc3E;IAEY,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAW5E;IAEY,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;IAEY,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAezE;IAEY,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrE;IAEY,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnH;IAEY,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAIlE;IAEY,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrG;CACF"}
@@ -1,3 +1,4 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import { Fr } from '@aztec/foundation/fields';
2
3
  import { toArray } from '@aztec/foundation/iterable';
3
4
  import { createLogger } from '@aztec/foundation/log';
@@ -52,7 +53,7 @@ export class KvAttestationPool {
52
53
  const sender = attestation.getSender();
53
54
  // Skip attestations with invalid signatures
54
55
  if (!sender) {
55
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
56
+ this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber}`, {
56
57
  signature: attestation.signature.toString(),
57
58
  slotNumber,
58
59
  proposalId
@@ -61,9 +62,9 @@ export class KvAttestationPool {
61
62
  }
62
63
  const address = sender.toString();
63
64
  await this.attestations.set(this.getAttestationKey(slotNumber, proposalId, address), attestation.toBuffer());
64
- await this.proposalsForSlot.set(slotNumber.toString(), proposalId.toString());
65
+ await this.proposalsForSlot.set(slotNumber, proposalId.toString());
65
66
  await this.attestationsForProposal.set(this.getProposalKey(slotNumber, proposalId), this.getAttestationKey(slotNumber, proposalId, address));
66
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${address}`, {
67
+ this.log.verbose(`Added attestation for slot ${slotNumber} from ${address}`, {
67
68
  signature: attestation.signature.toString(),
68
69
  slotNumber,
69
70
  address,
@@ -73,8 +74,7 @@ export class KvAttestationPool {
73
74
  });
74
75
  }
75
76
  async getAttestationsForSlot(slot) {
76
- const slotFr = new Fr(slot);
77
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
77
+ const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slot));
78
78
  const attestations = [];
79
79
  for (const proposalId of proposalIds){
80
80
  attestations.push(...await this.getAttestationsForSlotAndProposal(slot, proposalId));
@@ -98,41 +98,41 @@ export class KvAttestationPool {
98
98
  }
99
99
  async deleteAttestationsOlderThan(oldestSlot) {
100
100
  const olderThan = await toArray(this.proposalsForSlot.keysAsync({
101
- end: new Fr(oldestSlot).toString()
101
+ end: oldestSlot
102
102
  }));
103
103
  for (const oldSlot of olderThan){
104
- await this.deleteAttestationsForSlot(BigInt(oldSlot));
104
+ await this.deleteAttestationsForSlot(SlotNumber(oldSlot));
105
105
  }
106
106
  }
107
107
  async deleteAttestationsForSlot(slot) {
108
- const slotFr = new Fr(slot);
109
108
  let numberOfAttestations = 0;
110
109
  await this.store.transactionAsync(async ()=>{
111
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
110
+ const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slot));
112
111
  for (const proposalId of proposalIds){
113
- const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slotFr, proposalId)));
112
+ const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
114
113
  numberOfAttestations += attestations.length;
115
114
  for (const attestation of attestations){
116
115
  await this.attestations.delete(attestation);
117
116
  }
118
117
  await this.proposals.delete(proposalId);
119
- await this.attestationsForProposal.delete(this.getProposalKey(slotFr, proposalId));
118
+ await this.attestationsForProposal.delete(this.getProposalKey(slot, proposalId));
120
119
  }
120
+ // Delete from proposalsForSlot
121
+ await this.proposalsForSlot.delete(slot);
121
122
  this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
122
123
  });
123
124
  }
124
125
  async deleteAttestationsForSlotAndProposal(slot, proposalId) {
125
126
  let numberOfAttestations = 0;
126
127
  await this.store.transactionAsync(async ()=>{
127
- const slotString = new Fr(slot).toString();
128
128
  const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
129
129
  numberOfAttestations += attestations.length;
130
130
  for (const attestation of attestations){
131
131
  await this.attestations.delete(attestation);
132
132
  }
133
133
  await this.proposals.delete(proposalId);
134
- await this.proposalsForSlot.deleteValue(slotString, proposalId);
135
- await this.attestationsForProposal.delete(this.getProposalKey(slotString, proposalId));
134
+ await this.proposalsForSlot.deleteValue(slot, proposalId);
135
+ await this.attestationsForProposal.delete(this.getProposalKey(slot, proposalId));
136
136
  this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
137
137
  });
138
138
  }
@@ -144,7 +144,7 @@ export class KvAttestationPool {
144
144
  const sender = attestation.getSender();
145
145
  // Skip attestations with invalid signatures
146
146
  if (!sender) {
147
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
147
+ this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber}`);
148
148
  continue;
149
149
  }
150
150
  const address = sender.toString();
@@ -186,7 +186,7 @@ export class KvAttestationPool {
186
186
  }
187
187
  async addBlockProposal(blockProposal) {
188
188
  await this.store.transactionAsync(async ()=>{
189
- const slotKey = blockProposal.slotNumber.toString();
189
+ const slotKey = blockProposal.slotNumber;
190
190
  const proposalId = blockProposal.archive.toString();
191
191
  if (!await this.canAddProposal(blockProposal)) {
192
192
  throw new ProposalSlotCapExceededError(`Maximum proposals per slot reached: slot=${slotKey} cap=${MAX_PROPOSALS_PER_SLOT} proposal=${proposalId}`);
@@ -197,8 +197,7 @@ export class KvAttestationPool {
197
197
  });
198
198
  }
199
199
  async hasReachedProposalCap(slot) {
200
- const slotKey = new Fr(slot).toString();
201
- const uniqueProposalCount = await this.proposalsForSlot.getValueCountAsync(slotKey);
200
+ const uniqueProposalCount = await this.proposalsForSlot.getValueCountAsync(slot);
202
201
  return uniqueProposalCount >= MAX_PROPOSALS_PER_SLOT;
203
202
  }
204
203
  async hasReachedAttestationCap(slot, proposalId, committeeSize) {
@@ -206,9 +205,9 @@ export class KvAttestationPool {
206
205
  return await this.attestationsForProposal.getValueCountAsync(this.getProposalKey(slot, proposalId)) >= limit;
207
206
  }
208
207
  async canAddProposal(block) {
209
- return await this.proposals.hasAsync(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber.toBigInt());
208
+ return await this.proposals.hasAsync(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber);
210
209
  }
211
210
  async canAddAttestation(attestation, committeeSize) {
212
- return await this.hasAttestation(attestation) || !await this.hasReachedAttestationCap(attestation.payload.header.slotNumber.toBigInt(), attestation.archive.toString(), committeeSize);
211
+ return await this.hasAttestation(attestation) || !await this.hasReachedAttestationCap(attestation.payload.header.slotNumber, attestation.archive.toString(), committeeSize);
213
212
  }
214
213
  }
@@ -1,3 +1,4 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
2
3
  import { type TelemetryClient } from '@aztec/telemetry-client';
3
4
  import type { AttestationPool } from './attestation_pool.js';
@@ -10,20 +11,20 @@ export declare class InMemoryAttestationPool implements AttestationPool {
10
11
  constructor(telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
11
12
  private poolStats;
12
13
  isEmpty(): Promise<boolean>;
13
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
14
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
14
+ getAttestationsForSlot(slot: SlotNumber): Promise<BlockAttestation[]>;
15
+ getAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<BlockAttestation[]>;
15
16
  addAttestations(attestations: BlockAttestation[]): Promise<void>;
16
- deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
17
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
18
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
17
+ deleteAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
18
+ deleteAttestationsForSlot(slot: SlotNumber): Promise<void>;
19
+ deleteAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<void>;
19
20
  deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
20
21
  hasAttestation(attestation: BlockAttestation): Promise<boolean>;
21
22
  addBlockProposal(blockProposal: BlockProposal): Promise<void>;
22
23
  getBlockProposal(id: string): Promise<BlockProposal | undefined>;
23
24
  hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
24
- hasReachedProposalCap(slot: bigint): Promise<boolean>;
25
- hasReachedAttestationCap(slot: bigint, proposalId: string, committeeSize: number): Promise<boolean>;
25
+ hasReachedProposalCap(slot: SlotNumber): Promise<boolean>;
26
+ hasReachedAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
26
27
  canAddProposal(block: BlockProposal): Promise<boolean>;
27
28
  canAddAttestation(attestation: BlockAttestation, committeeSize: number): Promise<boolean>;
28
29
  }
29
- //# sourceMappingURL=memory_attestation_pool.d.ts.map
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tZW1vcnlfYXR0ZXN0YXRpb25fcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFHbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHN0QscUJBQWEsdUJBQXdCLFlBQVcsZUFBZTs7SUFZM0QsT0FBTyxDQUFDLEdBQUc7SUFYYixPQUFPLENBQUMsT0FBTyxDQUF3QztJQUd2RCxPQUFPLENBQUMsWUFBWSxDQUdsQjtJQUNGLE9BQU8sQ0FBQyxTQUFTLENBQTZCO0lBRTlDLFlBQ0UsU0FBUyxHQUFFLGVBQXNDLEVBQ3pDLEdBQUcseUNBQXVDLEVBS25EO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FJZjtJQUVLLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWpDO0lBRU0sc0JBQXNCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQU0zRTtJQUVNLGlDQUFpQyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQVMxRztJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBK0J0RTtJQWNZLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1COUU7SUFFTSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQmhFO0lBRU0sb0NBQW9DLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjL0Y7SUFFTSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBc0J6RTtJQUVNLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQXFCckU7SUFFTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FRbkU7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBRXRFO0lBRU0sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc5RTtJQUVNLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUkvRDtJQUVNLHdCQUF3QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FJN0c7SUFFWSxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWxFO0lBRVksaUJBQWlCLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVNyRztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,qBAAa,uBAAwB,YAAW,eAAe;;IAQ3D,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgG;IACpH,OAAO,CAAC,SAAS,CAA6B;gBAG5C,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAuC;IAOpD,OAAO,CAAC,SAAS,CAIf;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQjE,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWhG,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C1D,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnE,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/D,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAIhE,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7F,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtD,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAUvG"}
1
+ {"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,qBAAa,uBAAwB,YAAW,eAAe;;IAY3D,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,OAAO,CAAwC;IAGvD,OAAO,CAAC,YAAY,CAGlB;IACF,OAAO,CAAC,SAAS,CAA6B;IAE9C,YACE,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAuC,EAKnD;IAED,OAAO,CAAC,SAAS,CAIf;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjC;IAEM,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAM3E;IAEM,iCAAiC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAS1G;IAEM,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtE;IAcY,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9E;IAEM,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE;IAEM,oCAAoC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/F;IAEM,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzE;IAEM,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBrE;IAEM,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnE;IAEM,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEtE;IAEM,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9E;IAEM,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/D;IAEM,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7G;IAEY,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEY,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrG;CACF"}
@@ -5,6 +5,7 @@ import { ATTESTATION_CAP_BUFFER, MAX_PROPOSALS_PER_SLOT } from './kv_attestation
5
5
  export class InMemoryAttestationPool {
6
6
  log;
7
7
  metrics;
8
+ // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
8
9
  attestations;
9
10
  proposals;
10
11
  constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
@@ -43,17 +44,17 @@ export class InMemoryAttestationPool {
43
44
  const sender = attestation.getSender();
44
45
  // Skip attestations with invalid signatures
45
46
  if (!sender) {
46
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
47
+ this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber}`, {
47
48
  signature: attestation.signature.toString(),
48
49
  slotNumber,
49
50
  proposalId
50
51
  });
51
52
  continue;
52
53
  }
53
- const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
54
+ const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber);
54
55
  const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
55
56
  proposalAttestationMap.set(sender.toString(), attestation);
56
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${sender}`, {
57
+ this.log.verbose(`Added attestation for slot ${slotNumber} from ${sender}`, {
57
58
  signature: attestation.signature.toString(),
58
59
  slotNumber,
59
60
  address: sender,
@@ -118,7 +119,7 @@ export class InMemoryAttestationPool {
118
119
  deleteAttestations(attestations) {
119
120
  for (const attestation of attestations){
120
121
  const slotNumber = attestation.payload.header.slotNumber;
121
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
122
+ const slotAttestationMap = this.attestations.get(slotNumber);
122
123
  if (slotAttestationMap) {
123
124
  const proposalId = attestation.archive.toString();
124
125
  const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
@@ -126,7 +127,7 @@ export class InMemoryAttestationPool {
126
127
  const sender = attestation.getSender();
127
128
  // Skip attestations with invalid signatures
128
129
  if (!sender) {
129
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
130
+ this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber}`);
130
131
  continue;
131
132
  }
132
133
  proposalAttestationMap.delete(sender.toString());
@@ -144,7 +145,7 @@ export class InMemoryAttestationPool {
144
145
  if (!sender) {
145
146
  return Promise.resolve(false);
146
147
  }
147
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
148
+ const slotAttestationMap = this.attestations.get(slotNumber);
148
149
  if (!slotAttestationMap) {
149
150
  return Promise.resolve(false);
150
151
  }
@@ -157,7 +158,7 @@ export class InMemoryAttestationPool {
157
158
  addBlockProposal(blockProposal) {
158
159
  // We initialize slot-proposal mapping if it does not exist
159
160
  // This is important to ensure we can delete this proposal if there were not attestations for it
160
- const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber.toBigInt());
161
+ const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber);
161
162
  slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map());
162
163
  this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
163
164
  return Promise.resolve();
@@ -180,11 +181,11 @@ export class InMemoryAttestationPool {
180
181
  return Promise.resolve(limit <= 0 || count >= limit);
181
182
  }
182
183
  async canAddProposal(block) {
183
- return this.proposals.has(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber.toBigInt());
184
+ return this.proposals.has(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber);
184
185
  }
185
186
  async canAddAttestation(attestation, committeeSize) {
186
187
  const sender = attestation.getSender();
187
- const slot = attestation.payload.header.slotNumber.toBigInt();
188
+ const slot = attestation.payload.header.slotNumber;
188
189
  const pid = attestation.archive.toString();
189
190
  return !!sender && ((this.attestations.get(slot)?.get(pid)?.has(sender.toString()) ?? false) || !await this.hasReachedAttestationCap(slot, pid, committeeSize));
190
191
  }
@@ -196,7 +197,8 @@ export class InMemoryAttestationPool {
196
197
  * @param map - The map to fetch from
197
198
  * @param slot - The slot to fetch
198
199
  * @returns The slot mapping
199
- */ function getSlotOrDefault(map, slot) {
200
+ */ function getSlotOrDefault(// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
201
+ map, slot) {
200
202
  if (!map.has(slot)) {
201
203
  map.set(slot, new Map());
202
204
  }