@aztec/p2p 0.0.1-commit.b655e406 → 0.0.1-commit.d3ec352c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bootstrap/bootstrap.d.ts +1 -1
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/client/factory.d.ts +1 -1
- package/dest/client/index.d.ts +1 -1
- package/dest/client/interface.d.ts +4 -2
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +8 -26
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +22 -16
- package/dest/config.d.ts +60 -54
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -1
- package/dest/enr/generate-enr.d.ts +1 -1
- package/dest/enr/index.d.ts +1 -1
- package/dest/errors/attestation-pool.error.d.ts +7 -0
- package/dest/errors/attestation-pool.error.d.ts.map +1 -0
- package/dest/errors/attestation-pool.error.js +12 -0
- package/dest/errors/reqresp.error.d.ts +1 -1
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +28 -6
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +33 -32
- package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +13 -6
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +40 -17
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +11 -6
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +30 -8
- package/dest/mem_pools/attestation_pool/mocks.d.ts +224 -3
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +1 -1
- package/dest/mem_pools/index.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts +3 -1
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +11 -2
- package/dest/mem_pools/interface.d.ts +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +4 -38
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/index.d.ts +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +4 -3
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +1 -0
- package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +4 -3
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +5 -4
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -3
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +11 -11
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +21 -9
- package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
- package/dest/msg_validators/index.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
- package/dest/msg_validators/tx_validator/archive_cache.d.ts +1 -1
- package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.d.ts +3 -2
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.d.ts +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
- package/dest/msg_validators/tx_validator/test_utils.d.ts +1 -1
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +3 -2
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/services/data_store.d.ts +1 -1
- package/dest/services/data_store.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.d.ts +1 -1
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/dummy_service.d.ts +1 -1
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/encoding.d.ts +1 -1
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/gossipsub/scoring.d.ts +1 -1
- package/dest/services/index.d.ts +1 -1
- package/dest/services/libp2p/instrumentation.d.ts +3 -1
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
- package/dest/services/libp2p/instrumentation.js +9 -2
- package/dest/services/libp2p/libp2p_service.d.ts +11 -67
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +227 -57
- package/dest/services/peer-manager/interface.d.ts +1 -1
- package/dest/services/peer-manager/metrics.d.ts +3 -1
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +11 -0
- package/dest/services/peer-manager/peer_manager.d.ts +1 -32
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +2 -0
- package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +40 -2
- package/dest/services/reqresp/config.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/index.d.ts +1 -1
- package/dest/services/reqresp/interface.d.ts +1 -1
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.d.ts +1 -1
- package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.d.ts +1 -1
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +2 -1
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +3 -5
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/ping.d.ts +1 -1
- package/dest/services/reqresp/protocols/status.d.ts +6 -5
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +4 -3
- package/dest/services/reqresp/protocols/tx.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/reqresp.d.ts +1 -41
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/status.d.ts +2 -2
- package/dest/services/reqresp/status.d.ts.map +1 -1
- package/dest/services/service.d.ts +1 -1
- package/dest/services/tx_collection/config.d.ts +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/index.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.d.ts +4 -5
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +2 -1
- package/dest/services/tx_collection/tx_collection.d.ts +9 -9
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection.js +1 -1
- package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.d.ts +1 -1
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_provider.d.ts +5 -4
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider_instrumentation.d.ts +1 -1
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts.map +1 -1
- package/dest/test-helpers/index.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.d.ts +4 -4
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
- package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +11 -8
- package/dest/testbench/parse_log_file.d.ts +1 -1
- package/dest/testbench/testbench.d.ts +1 -1
- package/dest/testbench/worker_client_manager.d.ts +1 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/types/index.d.ts +1 -1
- package/dest/util.d.ts +2 -1
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +11 -2
- package/dest/versioning.d.ts +1 -1
- package/package.json +19 -18
- package/src/client/interface.ts +4 -1
- package/src/client/p2p_client.ts +37 -29
- package/src/config.ts +18 -1
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +29 -5
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +45 -32
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +65 -23
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +50 -16
- package/src/mem_pools/attestation_pool/mocks.ts +1 -1
- package/src/mem_pools/instrumentation.ts +13 -0
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +7 -6
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +8 -6
- package/src/mem_pools/tx_pool/tx_pool.ts +3 -2
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +5 -4
- package/src/msg_validators/attestation_validator/attestation_validator.ts +13 -15
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
- package/src/msg_validators/attestation_validator/index.ts +1 -0
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +25 -9
- package/src/msg_validators/tx_validator/factory.ts +2 -1
- package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
- package/src/msg_validators/tx_validator/timestamp_validator.ts +2 -1
- package/src/services/libp2p/instrumentation.ts +10 -1
- package/src/services/libp2p/libp2p_service.ts +255 -66
- package/src/services/peer-manager/metrics.ts +10 -0
- package/src/services/peer-manager/peer_manager.ts +2 -0
- package/src/services/peer-manager/peer_scoring.ts +46 -3
- package/src/services/reqresp/protocols/block.ts +2 -1
- package/src/services/reqresp/protocols/status.ts +9 -8
- package/src/services/tx_collection/fast_tx_collection.ts +3 -2
- package/src/services/tx_collection/slow_tx_collection.ts +5 -4
- package/src/services/tx_collection/tx_collection.ts +9 -8
- package/src/services/tx_provider.ts +4 -3
- package/src/testbench/p2p_client_testbench_worker.ts +8 -5
- package/src/util.ts +12 -2
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
3
3
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
4
|
+
import { ATTESTATION_CAP_BUFFER, MAX_PROPOSALS_PER_SLOT } from './kv_attestation_pool.js';
|
|
4
5
|
export class InMemoryAttestationPool {
|
|
5
6
|
log;
|
|
6
7
|
metrics;
|
|
8
|
+
// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
|
|
7
9
|
attestations;
|
|
8
10
|
proposals;
|
|
9
11
|
constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
|
|
@@ -42,17 +44,17 @@ export class InMemoryAttestationPool {
|
|
|
42
44
|
const sender = attestation.getSender();
|
|
43
45
|
// Skip attestations with invalid signatures
|
|
44
46
|
if (!sender) {
|
|
45
|
-
this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber
|
|
47
|
+
this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber}`, {
|
|
46
48
|
signature: attestation.signature.toString(),
|
|
47
49
|
slotNumber,
|
|
48
50
|
proposalId
|
|
49
51
|
});
|
|
50
52
|
continue;
|
|
51
53
|
}
|
|
52
|
-
const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber
|
|
54
|
+
const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber);
|
|
53
55
|
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
54
56
|
proposalAttestationMap.set(sender.toString(), attestation);
|
|
55
|
-
this.log.verbose(`Added attestation for slot ${slotNumber
|
|
57
|
+
this.log.verbose(`Added attestation for slot ${slotNumber} from ${sender}`, {
|
|
56
58
|
signature: attestation.signature.toString(),
|
|
57
59
|
slotNumber,
|
|
58
60
|
address: sender,
|
|
@@ -117,7 +119,7 @@ export class InMemoryAttestationPool {
|
|
|
117
119
|
deleteAttestations(attestations) {
|
|
118
120
|
for (const attestation of attestations){
|
|
119
121
|
const slotNumber = attestation.payload.header.slotNumber;
|
|
120
|
-
const slotAttestationMap = this.attestations.get(slotNumber
|
|
122
|
+
const slotAttestationMap = this.attestations.get(slotNumber);
|
|
121
123
|
if (slotAttestationMap) {
|
|
122
124
|
const proposalId = attestation.archive.toString();
|
|
123
125
|
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
@@ -125,7 +127,7 @@ export class InMemoryAttestationPool {
|
|
|
125
127
|
const sender = attestation.getSender();
|
|
126
128
|
// Skip attestations with invalid signatures
|
|
127
129
|
if (!sender) {
|
|
128
|
-
this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber
|
|
130
|
+
this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber}`);
|
|
129
131
|
continue;
|
|
130
132
|
}
|
|
131
133
|
proposalAttestationMap.delete(sender.toString());
|
|
@@ -143,7 +145,7 @@ export class InMemoryAttestationPool {
|
|
|
143
145
|
if (!sender) {
|
|
144
146
|
return Promise.resolve(false);
|
|
145
147
|
}
|
|
146
|
-
const slotAttestationMap = this.attestations.get(slotNumber
|
|
148
|
+
const slotAttestationMap = this.attestations.get(slotNumber);
|
|
147
149
|
if (!slotAttestationMap) {
|
|
148
150
|
return Promise.resolve(false);
|
|
149
151
|
}
|
|
@@ -156,7 +158,7 @@ export class InMemoryAttestationPool {
|
|
|
156
158
|
addBlockProposal(blockProposal) {
|
|
157
159
|
// We initialize slot-proposal mapping if it does not exist
|
|
158
160
|
// This is important to ensure we can delete this proposal if there were not attestations for it
|
|
159
|
-
const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber
|
|
161
|
+
const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber);
|
|
160
162
|
slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map());
|
|
161
163
|
this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
|
|
162
164
|
return Promise.resolve();
|
|
@@ -168,6 +170,25 @@ export class InMemoryAttestationPool {
|
|
|
168
170
|
const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
|
|
169
171
|
return Promise.resolve(this.proposals.has(id));
|
|
170
172
|
}
|
|
173
|
+
hasReachedProposalCap(slot) {
|
|
174
|
+
const slotAttestationMap = this.attestations.get(slot);
|
|
175
|
+
const proposalCount = slotAttestationMap?.size ?? 0;
|
|
176
|
+
return Promise.resolve(proposalCount >= MAX_PROPOSALS_PER_SLOT);
|
|
177
|
+
}
|
|
178
|
+
hasReachedAttestationCap(slot, proposalId, committeeSize) {
|
|
179
|
+
const limit = committeeSize + ATTESTATION_CAP_BUFFER;
|
|
180
|
+
const count = this.attestations.get(slot)?.get(proposalId)?.size ?? 0;
|
|
181
|
+
return Promise.resolve(limit <= 0 || count >= limit);
|
|
182
|
+
}
|
|
183
|
+
async canAddProposal(block) {
|
|
184
|
+
return this.proposals.has(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber);
|
|
185
|
+
}
|
|
186
|
+
async canAddAttestation(attestation, committeeSize) {
|
|
187
|
+
const sender = attestation.getSender();
|
|
188
|
+
const slot = attestation.payload.header.slotNumber;
|
|
189
|
+
const pid = attestation.archive.toString();
|
|
190
|
+
return !!sender && ((this.attestations.get(slot)?.get(pid)?.has(sender.toString()) ?? false) || !await this.hasReachedAttestationCap(slot, pid, committeeSize));
|
|
191
|
+
}
|
|
171
192
|
}
|
|
172
193
|
/**
|
|
173
194
|
* Get Slot or Default
|
|
@@ -176,7 +197,8 @@ export class InMemoryAttestationPool {
|
|
|
176
197
|
* @param map - The map to fetch from
|
|
177
198
|
* @param slot - The slot to fetch
|
|
178
199
|
* @returns The slot mapping
|
|
179
|
-
*/ function getSlotOrDefault(
|
|
200
|
+
*/ function getSlotOrDefault(// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
|
|
201
|
+
map, slot) {
|
|
180
202
|
if (!map.has(slot)) {
|
|
181
203
|
map.set(slot, new Map());
|
|
182
204
|
}
|
|
@@ -1,13 +1,234 @@
|
|
|
1
1
|
import type { Secp256k1Signer } from '@aztec/foundation/crypto';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { BlockAttestation } from '@aztec/stdlib/p2p';
|
|
4
|
-
import { type LocalAccount } from 'viem/accounts';
|
|
5
4
|
/** Generate Account
|
|
6
5
|
*
|
|
7
6
|
* Create a random signer
|
|
8
7
|
* @returns A random viem signer
|
|
9
8
|
*/
|
|
10
|
-
export declare const generateAccount: () =>
|
|
9
|
+
export declare const generateAccount: () => {
|
|
10
|
+
address: `0x${string}`;
|
|
11
|
+
nonceManager?: import("viem/accounts").NonceManager | undefined;
|
|
12
|
+
sign?: ((parameters: {
|
|
13
|
+
hash: `0x${string}`;
|
|
14
|
+
}) => Promise<`0x${string}`>) | undefined;
|
|
15
|
+
signAuthorization?: ((parameters: import("viem").AuthorizationRequest) => Promise<import("viem/accounts").SignAuthorizationReturnType>) | undefined;
|
|
16
|
+
signMessage: ({ message }: {
|
|
17
|
+
message: import("viem").SignableMessage;
|
|
18
|
+
}) => Promise<`0x${string}`>;
|
|
19
|
+
signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
|
|
20
|
+
serializer?: serializer | undefined;
|
|
21
|
+
} | undefined) => Promise<`0x${string}`>;
|
|
22
|
+
signTypedData: <const typedData extends Record<string, unknown> | {
|
|
23
|
+
[x: string]: readonly import("viem").TypedDataParameter[];
|
|
24
|
+
[x: `address[${string}]`]: undefined;
|
|
25
|
+
[x: `bool[${string}]`]: undefined;
|
|
26
|
+
[x: `bytes10[${string}]`]: undefined;
|
|
27
|
+
[x: `bytes11[${string}]`]: undefined;
|
|
28
|
+
[x: `bytes12[${string}]`]: undefined;
|
|
29
|
+
[x: `bytes13[${string}]`]: undefined;
|
|
30
|
+
[x: `bytes14[${string}]`]: undefined;
|
|
31
|
+
[x: `bytes15[${string}]`]: undefined;
|
|
32
|
+
[x: `bytes16[${string}]`]: undefined;
|
|
33
|
+
[x: `bytes17[${string}]`]: undefined;
|
|
34
|
+
[x: `bytes18[${string}]`]: undefined;
|
|
35
|
+
[x: `bytes19[${string}]`]: undefined;
|
|
36
|
+
[x: `bytes1[${string}]`]: undefined;
|
|
37
|
+
[x: `bytes20[${string}]`]: undefined;
|
|
38
|
+
[x: `bytes21[${string}]`]: undefined;
|
|
39
|
+
[x: `bytes22[${string}]`]: undefined;
|
|
40
|
+
[x: `bytes23[${string}]`]: undefined;
|
|
41
|
+
[x: `bytes24[${string}]`]: undefined;
|
|
42
|
+
[x: `bytes25[${string}]`]: undefined;
|
|
43
|
+
[x: `bytes26[${string}]`]: undefined;
|
|
44
|
+
[x: `bytes27[${string}]`]: undefined;
|
|
45
|
+
[x: `bytes28[${string}]`]: undefined;
|
|
46
|
+
[x: `bytes29[${string}]`]: undefined;
|
|
47
|
+
[x: `bytes2[${string}]`]: undefined;
|
|
48
|
+
[x: `bytes30[${string}]`]: undefined;
|
|
49
|
+
[x: `bytes31[${string}]`]: undefined;
|
|
50
|
+
[x: `bytes32[${string}]`]: undefined;
|
|
51
|
+
[x: `bytes3[${string}]`]: undefined;
|
|
52
|
+
[x: `bytes4[${string}]`]: undefined;
|
|
53
|
+
[x: `bytes5[${string}]`]: undefined;
|
|
54
|
+
[x: `bytes6[${string}]`]: undefined;
|
|
55
|
+
[x: `bytes7[${string}]`]: undefined;
|
|
56
|
+
[x: `bytes8[${string}]`]: undefined;
|
|
57
|
+
[x: `bytes9[${string}]`]: undefined;
|
|
58
|
+
[x: `bytes[${string}]`]: undefined;
|
|
59
|
+
[x: `function[${string}]`]: undefined;
|
|
60
|
+
[x: `int104[${string}]`]: undefined;
|
|
61
|
+
[x: `int112[${string}]`]: undefined;
|
|
62
|
+
[x: `int120[${string}]`]: undefined;
|
|
63
|
+
[x: `int128[${string}]`]: undefined;
|
|
64
|
+
[x: `int136[${string}]`]: undefined;
|
|
65
|
+
[x: `int144[${string}]`]: undefined;
|
|
66
|
+
[x: `int152[${string}]`]: undefined;
|
|
67
|
+
[x: `int160[${string}]`]: undefined;
|
|
68
|
+
[x: `int168[${string}]`]: undefined;
|
|
69
|
+
[x: `int16[${string}]`]: undefined;
|
|
70
|
+
[x: `int176[${string}]`]: undefined;
|
|
71
|
+
[x: `int184[${string}]`]: undefined;
|
|
72
|
+
[x: `int192[${string}]`]: undefined;
|
|
73
|
+
[x: `int200[${string}]`]: undefined;
|
|
74
|
+
[x: `int208[${string}]`]: undefined;
|
|
75
|
+
[x: `int216[${string}]`]: undefined;
|
|
76
|
+
[x: `int224[${string}]`]: undefined;
|
|
77
|
+
[x: `int232[${string}]`]: undefined;
|
|
78
|
+
[x: `int240[${string}]`]: undefined;
|
|
79
|
+
[x: `int248[${string}]`]: undefined;
|
|
80
|
+
[x: `int24[${string}]`]: undefined;
|
|
81
|
+
[x: `int256[${string}]`]: undefined;
|
|
82
|
+
[x: `int32[${string}]`]: undefined;
|
|
83
|
+
[x: `int40[${string}]`]: undefined;
|
|
84
|
+
[x: `int48[${string}]`]: undefined;
|
|
85
|
+
[x: `int56[${string}]`]: undefined;
|
|
86
|
+
[x: `int64[${string}]`]: undefined;
|
|
87
|
+
[x: `int72[${string}]`]: undefined;
|
|
88
|
+
[x: `int80[${string}]`]: undefined;
|
|
89
|
+
[x: `int88[${string}]`]: undefined;
|
|
90
|
+
[x: `int8[${string}]`]: undefined;
|
|
91
|
+
[x: `int96[${string}]`]: undefined;
|
|
92
|
+
[x: `int[${string}]`]: undefined;
|
|
93
|
+
[x: `string[${string}]`]: undefined;
|
|
94
|
+
[x: `uint104[${string}]`]: undefined;
|
|
95
|
+
[x: `uint112[${string}]`]: undefined;
|
|
96
|
+
[x: `uint120[${string}]`]: undefined;
|
|
97
|
+
[x: `uint128[${string}]`]: undefined;
|
|
98
|
+
[x: `uint136[${string}]`]: undefined;
|
|
99
|
+
[x: `uint144[${string}]`]: undefined;
|
|
100
|
+
[x: `uint152[${string}]`]: undefined;
|
|
101
|
+
[x: `uint160[${string}]`]: undefined;
|
|
102
|
+
[x: `uint168[${string}]`]: undefined;
|
|
103
|
+
[x: `uint16[${string}]`]: undefined;
|
|
104
|
+
[x: `uint176[${string}]`]: undefined;
|
|
105
|
+
[x: `uint184[${string}]`]: undefined;
|
|
106
|
+
[x: `uint192[${string}]`]: undefined;
|
|
107
|
+
[x: `uint200[${string}]`]: undefined;
|
|
108
|
+
[x: `uint208[${string}]`]: undefined;
|
|
109
|
+
[x: `uint216[${string}]`]: undefined;
|
|
110
|
+
[x: `uint224[${string}]`]: undefined;
|
|
111
|
+
[x: `uint232[${string}]`]: undefined;
|
|
112
|
+
[x: `uint240[${string}]`]: undefined;
|
|
113
|
+
[x: `uint248[${string}]`]: undefined;
|
|
114
|
+
[x: `uint24[${string}]`]: undefined;
|
|
115
|
+
[x: `uint256[${string}]`]: undefined;
|
|
116
|
+
[x: `uint32[${string}]`]: undefined;
|
|
117
|
+
[x: `uint40[${string}]`]: undefined;
|
|
118
|
+
[x: `uint48[${string}]`]: undefined;
|
|
119
|
+
[x: `uint56[${string}]`]: undefined;
|
|
120
|
+
[x: `uint64[${string}]`]: undefined;
|
|
121
|
+
[x: `uint72[${string}]`]: undefined;
|
|
122
|
+
[x: `uint80[${string}]`]: undefined;
|
|
123
|
+
[x: `uint88[${string}]`]: undefined;
|
|
124
|
+
[x: `uint8[${string}]`]: undefined;
|
|
125
|
+
[x: `uint96[${string}]`]: undefined;
|
|
126
|
+
[x: `uint[${string}]`]: undefined;
|
|
127
|
+
address?: undefined;
|
|
128
|
+
bool?: undefined;
|
|
129
|
+
bytes?: undefined;
|
|
130
|
+
bytes1?: undefined;
|
|
131
|
+
bytes10?: undefined;
|
|
132
|
+
bytes11?: undefined;
|
|
133
|
+
bytes12?: undefined;
|
|
134
|
+
bytes13?: undefined;
|
|
135
|
+
bytes14?: undefined;
|
|
136
|
+
bytes15?: undefined;
|
|
137
|
+
bytes16?: undefined;
|
|
138
|
+
bytes17?: undefined;
|
|
139
|
+
bytes18?: undefined;
|
|
140
|
+
bytes19?: undefined;
|
|
141
|
+
bytes2?: undefined;
|
|
142
|
+
bytes20?: undefined;
|
|
143
|
+
bytes21?: undefined;
|
|
144
|
+
bytes22?: undefined;
|
|
145
|
+
bytes23?: undefined;
|
|
146
|
+
bytes24?: undefined;
|
|
147
|
+
bytes25?: undefined;
|
|
148
|
+
bytes26?: undefined;
|
|
149
|
+
bytes27?: undefined;
|
|
150
|
+
bytes28?: undefined;
|
|
151
|
+
bytes29?: undefined;
|
|
152
|
+
bytes3?: undefined;
|
|
153
|
+
bytes30?: undefined;
|
|
154
|
+
bytes31?: undefined;
|
|
155
|
+
bytes32?: undefined;
|
|
156
|
+
bytes4?: undefined;
|
|
157
|
+
bytes5?: undefined;
|
|
158
|
+
bytes6?: undefined;
|
|
159
|
+
bytes7?: undefined;
|
|
160
|
+
bytes8?: undefined;
|
|
161
|
+
bytes9?: undefined;
|
|
162
|
+
int104?: undefined;
|
|
163
|
+
int112?: undefined;
|
|
164
|
+
int120?: undefined;
|
|
165
|
+
int128?: undefined;
|
|
166
|
+
int136?: undefined;
|
|
167
|
+
int144?: undefined;
|
|
168
|
+
int152?: undefined;
|
|
169
|
+
int16?: undefined;
|
|
170
|
+
int160?: undefined;
|
|
171
|
+
int168?: undefined;
|
|
172
|
+
int176?: undefined;
|
|
173
|
+
int184?: undefined;
|
|
174
|
+
int192?: undefined;
|
|
175
|
+
int200?: undefined;
|
|
176
|
+
int208?: undefined;
|
|
177
|
+
int216?: undefined;
|
|
178
|
+
int224?: undefined;
|
|
179
|
+
int232?: undefined;
|
|
180
|
+
int24?: undefined;
|
|
181
|
+
int240?: undefined;
|
|
182
|
+
int248?: undefined;
|
|
183
|
+
int256?: undefined;
|
|
184
|
+
int32?: undefined;
|
|
185
|
+
int40?: undefined;
|
|
186
|
+
int48?: undefined;
|
|
187
|
+
int56?: undefined;
|
|
188
|
+
int64?: undefined;
|
|
189
|
+
int72?: undefined;
|
|
190
|
+
int8?: undefined;
|
|
191
|
+
int80?: undefined;
|
|
192
|
+
int88?: undefined;
|
|
193
|
+
int96?: undefined;
|
|
194
|
+
string?: undefined;
|
|
195
|
+
uint104?: undefined;
|
|
196
|
+
uint112?: undefined;
|
|
197
|
+
uint120?: undefined;
|
|
198
|
+
uint128?: undefined;
|
|
199
|
+
uint136?: undefined;
|
|
200
|
+
uint144?: undefined;
|
|
201
|
+
uint152?: undefined;
|
|
202
|
+
uint16?: undefined;
|
|
203
|
+
uint160?: undefined;
|
|
204
|
+
uint168?: undefined;
|
|
205
|
+
uint176?: undefined;
|
|
206
|
+
uint184?: undefined;
|
|
207
|
+
uint192?: undefined;
|
|
208
|
+
uint200?: undefined;
|
|
209
|
+
uint208?: undefined;
|
|
210
|
+
uint216?: undefined;
|
|
211
|
+
uint224?: undefined;
|
|
212
|
+
uint232?: undefined;
|
|
213
|
+
uint24?: undefined;
|
|
214
|
+
uint240?: undefined;
|
|
215
|
+
uint248?: undefined;
|
|
216
|
+
uint256?: undefined;
|
|
217
|
+
uint32?: undefined;
|
|
218
|
+
uint40?: undefined;
|
|
219
|
+
uint48?: undefined;
|
|
220
|
+
uint56?: undefined;
|
|
221
|
+
uint64?: undefined;
|
|
222
|
+
uint72?: undefined;
|
|
223
|
+
uint8?: undefined;
|
|
224
|
+
uint80?: undefined;
|
|
225
|
+
uint88?: undefined;
|
|
226
|
+
uint96?: undefined;
|
|
227
|
+
}, primaryType extends "EIP712Domain" | keyof typedData = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>;
|
|
228
|
+
publicKey: `0x${string}`;
|
|
229
|
+
source: string;
|
|
230
|
+
type: "local";
|
|
231
|
+
};
|
|
11
232
|
/** Mock Attestation
|
|
12
233
|
*
|
|
13
234
|
* @param signer A viem signer to create a signature
|
|
@@ -15,4 +236,4 @@ export declare const generateAccount: () => LocalAccount;
|
|
|
15
236
|
* @returns A Block Attestation
|
|
16
237
|
*/
|
|
17
238
|
export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr) => BlockAttestation;
|
|
18
|
-
//# sourceMappingURL=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUNMLGdCQUFnQixFQUlqQixNQUFNLG1CQUFtQixDQUFDO0FBSzNCOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBRzNCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSxlQUFlLDRFQWdCM0IsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAIjB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAIjB,MAAM,mBAAmB,CAAC;AAK3B;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,4EAgB3B,CAAC"}
|
|
@@ -18,7 +18,7 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
|
18
18
|
*/ export const mockAttestation = (signer, slot = 0, archive = Fr.random())=>{
|
|
19
19
|
// Use arbitrary numbers for all other than slot
|
|
20
20
|
const header = makeL2BlockHeader(1, 2, slot);
|
|
21
|
-
const payload = new ConsensusPayload(header.toCheckpointHeader(), archive
|
|
21
|
+
const payload = new ConsensusPayload(header.toCheckpointHeader(), archive);
|
|
22
22
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
|
|
23
23
|
const attestationSignature = signer.sign(attestationHash);
|
|
24
24
|
const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { type AttestationPool } from './attestation_pool/attestation_pool.js';
|
|
2
2
|
export { type MemPools } from './interface.js';
|
|
3
3
|
export { type TxPool } from './tx_pool/tx_pool.js';
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUMifQ==
|
|
@@ -14,6 +14,7 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
|
|
|
14
14
|
private poolStats;
|
|
15
15
|
/** The number of txs in the mempool */
|
|
16
16
|
private objectsInMempool;
|
|
17
|
+
private addObjectCounter;
|
|
17
18
|
/** Tracks tx size */
|
|
18
19
|
private objectSize;
|
|
19
20
|
private dbMetrics;
|
|
@@ -21,6 +22,7 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
|
|
|
21
22
|
private meter;
|
|
22
23
|
constructor(telemetry: TelemetryClient, name: PoolName, poolStats: PoolStatsCallback, dbStats?: LmdbStatsCallback);
|
|
23
24
|
recordSize(poolObject: PoolObject): void;
|
|
25
|
+
incrementAddedObjects(count: number): void;
|
|
24
26
|
private observeStats;
|
|
25
27
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBRXJCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQStCRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFlMUQsT0FBTyxDQUFDLFNBQVM7SUFkbkIsdUNBQXVDO0lBQ3ZDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBa0I7SUFDMUMsT0FBTyxDQUFDLGdCQUFnQixDQUFnQjtJQUN4QyxxQkFBcUI7SUFDckIsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUU5QixPQUFPLENBQUMsU0FBUyxDQUFjO0lBRS9CLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUMxQixPQUFPLENBQUMsS0FBSyxDQUFRO0lBRXJCLFlBQ0UsU0FBUyxFQUFFLGVBQWUsRUFDMUIsSUFBSSxFQUFFLFFBQVEsRUFDTixTQUFTLEVBQUUsaUJBQWlCLEVBQ3BDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixFQTZCNUI7SUFFTSxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsUUFFdkM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxRQUV6QztJQUVELE9BQU8sQ0FBQyxZQUFZLENBWWxCO0NBQ0gifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAErB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AA+BD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAe1D,OAAO,CAAC,SAAS;IAdnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EA6B5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
|
|
@@ -12,12 +12,14 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
12
12
|
if (name === "TxPool") {
|
|
13
13
|
return {
|
|
14
14
|
objectInMempool: Metrics.MEMPOOL_TX_COUNT,
|
|
15
|
-
objectSize: Metrics.MEMPOOL_TX_SIZE
|
|
15
|
+
objectSize: Metrics.MEMPOOL_TX_SIZE,
|
|
16
|
+
itemsAdded: Metrics.MEMPOOL_TX_ADDED_COUNT
|
|
16
17
|
};
|
|
17
18
|
} else if (name === "AttestationPool") {
|
|
18
19
|
return {
|
|
19
20
|
objectInMempool: Metrics.MEMPOOL_ATTESTATIONS_COUNT,
|
|
20
|
-
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE
|
|
21
|
+
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE,
|
|
22
|
+
itemsAdded: Metrics.MEMPOOL_ATTESTATIONS_ADDED_COUNT
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
throw new Error('Invalid pool type');
|
|
@@ -27,6 +29,7 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
27
29
|
*/ export class PoolInstrumentation {
|
|
28
30
|
poolStats;
|
|
29
31
|
/** The number of txs in the mempool */ objectsInMempool;
|
|
32
|
+
addObjectCounter;
|
|
30
33
|
/** Tracks tx size */ objectSize;
|
|
31
34
|
dbMetrics;
|
|
32
35
|
defaultAttributes;
|
|
@@ -61,6 +64,9 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
61
64
|
this.dbMetrics = new LmdbMetrics(this.meter, {
|
|
62
65
|
[Attributes.DB_DATA_TYPE]: 'tx-pool'
|
|
63
66
|
}, dbStats);
|
|
67
|
+
this.addObjectCounter = this.meter.createUpDownCounter(metricsLabels.itemsAdded, {
|
|
68
|
+
description: 'The number of transactions added to the mempool'
|
|
69
|
+
});
|
|
64
70
|
this.meter.addBatchObservableCallback(this.observeStats, [
|
|
65
71
|
this.objectsInMempool
|
|
66
72
|
]);
|
|
@@ -68,5 +74,8 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
|
68
74
|
recordSize(poolObject) {
|
|
69
75
|
this.objectSize.record(poolObject.getSize());
|
|
70
76
|
}
|
|
77
|
+
incrementAddedObjects(count) {
|
|
78
|
+
this.addObjectCounter.add(count);
|
|
79
|
+
}
|
|
71
80
|
observeStats;
|
|
72
81
|
}
|
|
@@ -8,4 +8,4 @@ export type MemPools<T extends P2PClientType = P2PClientType.Full> = {
|
|
|
8
8
|
txPool: TxPool;
|
|
9
9
|
attestationPool?: T extends P2PClientType.Full ? AttestationPool : undefined;
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sTUFBTSxRQUFRLENBQUMsQ0FBQyxTQUFTLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxJQUFJO0lBQ25FLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixlQUFlLENBQUMsRUFBRSxDQUFDLFNBQVMsYUFBYSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsU0FBUyxDQUFDO0NBQzlFLENBQUMifQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
3
|
import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
3
4
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
@@ -36,7 +37,7 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
36
37
|
markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
|
|
37
38
|
markMinedAsPending(txHashes: TxHash[]): Promise<void>;
|
|
38
39
|
getPendingTxHashes(): Promise<TxHash[]>;
|
|
39
|
-
getMinedTxHashes(): Promise<[TxHash,
|
|
40
|
+
getMinedTxHashes(): Promise<[TxHash, BlockNumber][]>;
|
|
40
41
|
getPendingTxCount(): Promise<number>;
|
|
41
42
|
getMinedTxCount(): Promise<number>;
|
|
42
43
|
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
@@ -90,7 +91,7 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
90
91
|
* @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
|
|
91
92
|
* @returns The number of transactions permanently deleted.
|
|
92
93
|
*/
|
|
93
|
-
cleanupDeletedMinedTxs(blockNumber:
|
|
94
|
+
cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
|
|
94
95
|
/**
|
|
95
96
|
* Creates a GasTxValidator instance.
|
|
96
97
|
* @param db - DB for the validator to use
|
|
@@ -103,48 +104,13 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
|
|
|
103
104
|
* @returns An ArchiveCache instance
|
|
104
105
|
*/
|
|
105
106
|
protected createArchiveCache(db: MerkleTreeReadOperations): ArchiveCache;
|
|
106
|
-
/**
|
|
107
|
-
* Checks if a cached transaction exists in the in-memory pending tx pool and returns it.
|
|
108
|
-
* Otherwise, it checks the tx pool, updates the pending tx pool, and returns the tx.
|
|
109
|
-
* @param txHash - The generated tx hash.
|
|
110
|
-
* @returns The transaction, if found, 'undefined' otherwise.
|
|
111
|
-
*/
|
|
112
107
|
private getPendingTxByHash;
|
|
113
|
-
/**
|
|
114
|
-
* Archives a list of txs for future reference. The number of archived txs is limited by the specified archivedTxLimit.
|
|
115
|
-
* @param txs - The list of transactions to archive.
|
|
116
|
-
* @returns Empty promise.
|
|
117
|
-
*/
|
|
118
108
|
private archiveTxs;
|
|
119
|
-
/**
|
|
120
|
-
* Evicts pending txs with the lowest priority fees from the pool to accomodate the max tx count and cumulative max tx size
|
|
121
|
-
* after new txs are added.
|
|
122
|
-
*
|
|
123
|
-
* @param newTxHashes - The tx hashes of the new txs added to the pool.
|
|
124
|
-
* @returns The total number of txs evicted from the pool and the number of new txs that were evicted.
|
|
125
|
-
*/
|
|
126
109
|
private evictLowPriorityTxs;
|
|
127
|
-
/**
|
|
128
|
-
* Evicts invalid pending txs from the pool after a txs from a block are mined.
|
|
129
|
-
* Eviction criteria includes:
|
|
130
|
-
* - txs with nullifiers that are already included in the mined block
|
|
131
|
-
* - txs with an insufficient fee payer balance
|
|
132
|
-
* - txs with an expiration timestamp lower than that of the mined block
|
|
133
|
-
*
|
|
134
|
-
* @param minedTxHashes - The tx hashes of the txs mined in the block.
|
|
135
|
-
* @param blockHeader - The header of the mined block.
|
|
136
|
-
* @returns The total number of txs evicted from the pool.
|
|
137
|
-
*/
|
|
138
110
|
private evictInvalidTxsAfterMining;
|
|
139
|
-
/**
|
|
140
|
-
* Evicts pending txs that no longer have valid archive roots or fee payer balances from the pool after a reorg.
|
|
141
|
-
*
|
|
142
|
-
* @param txHashes - The tx hashes of the txs that were moved from mined to pending.
|
|
143
|
-
* @returns The total number of txs evicted from the pool.
|
|
144
|
-
*/
|
|
145
111
|
private evictInvalidTxsAfterReorg;
|
|
146
112
|
private addPendingTxIndices;
|
|
147
113
|
private removePendingTxIndices;
|
|
148
114
|
}
|
|
149
115
|
export {};
|
|
150
|
-
//# sourceMappingURL=
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUEwRCxNQUFNLGlCQUFpQixDQUFDO0FBR2pILE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBS25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHcEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhFOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxTQUFRLGtCQUE0RCxZQUFXLE1BQU07O0lBUzlHLDBHQUEwRztJQUMxRyxvQkFBb0IsRUFBRSxNQUFNLENBQUs7SUFnRGpDOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsT0FBTyxFQUFFLGlCQUFpQixFQUMxQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsU0FBUyxHQUFFLGVBQXNDLEVBQ2pELE1BQU0sR0FBRSxhQUFrQixFQUMx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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './tx_pool.js';
|
|
2
2
|
export * from './memory_tx_pool.js';
|
|
3
3
|
export * from './aztec_kv_tx_pool.js';
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUMifQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
2
3
|
import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
3
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -27,7 +28,7 @@ export declare class InMemoryTxPool extends InMemoryTxPool_base implements TxPoo
|
|
|
27
28
|
markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
|
|
28
29
|
markMinedAsPending(txHashes: TxHash[]): Promise<void>;
|
|
29
30
|
getPendingTxHashes(): Promise<TxHash[]>;
|
|
30
|
-
getMinedTxHashes(): Promise<[TxHash,
|
|
31
|
+
getMinedTxHashes(): Promise<[TxHash, BlockNumber][]>;
|
|
31
32
|
getPendingTxCount(): Promise<number>;
|
|
32
33
|
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
33
34
|
/**
|
|
@@ -74,7 +75,7 @@ export declare class InMemoryTxPool extends InMemoryTxPool_base implements TxPoo
|
|
|
74
75
|
* @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
|
|
75
76
|
* @returns The number of transactions permanently deleted.
|
|
76
77
|
*/
|
|
77
|
-
cleanupDeletedMinedTxs(blockNumber:
|
|
78
|
+
cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
|
|
78
79
|
}
|
|
79
80
|
export {};
|
|
80
|
-
//# sourceMappingURL=
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X3R4X3Bvb2wuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9tZW1vcnlfdHhfcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFNbkYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhFOztHQUVHO0FBQ0gscUJBQWEsY0FBZSxTQUFRLG1CQUE0RCxZQUFXLE1BQU07SUFtQjdHLE9BQU8sQ0FBQyxHQUFHO0lBbEJiOztPQUVHO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBa0I7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBMkI7SUFDM0MsT0FBTyxDQUFDLFVBQVUsQ0FBYztJQUNoQyxPQUFPLENBQUMsb0JBQW9CLENBQTJCO0lBRXZELE9BQU8sQ0FBQyx5QkFBeUIsQ0FBZ0M7SUFFakUsT0FBTyxDQUFDLE9BQU8sQ0FBMEI7SUFFekM7OztPQUdHO0lBQ0gsWUFDRSxTQUFTLEdBQUUsZUFBc0MsRUFDekMsR0FBRyx5Q0FBOEIsRUFTMUM7SUFFRCxPQUFPLENBQUMsT0FBTyxDQU9iO0lBRUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFakM7SUFFTSxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9COUU7SUFFTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWdCM0Q7SUFFWSxrQkFBa0IsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FXbkQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUkxRDtJQUVNLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FHMUM7SUFFTSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBYXZGO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBRzFEO0lBRUQsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUU1RDtJQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBRTdDO0lBRUssS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc1QztJQUVNLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBRXBEO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxHQUFFO1FBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBd0J4RTtJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUFFLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQTJCcEY7SUFFRDs7O09BR0c7SUFDSSxTQUFTLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBRWhDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUV6QztJQUVELFlBQVksQ0FBQyxPQUFPLEVBQUUsYUFBYSxHQUFHLElBQUksQ0FBRztJQUU3QyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0EwQnZFO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;AAExE;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAA4D,YAAW,MAAM;IAmB7G,OAAO,CAAC,GAAG;IAlBb;;OAEG;IACH,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,yBAAyB,CAAgC;IAEjE,OAAO,CAAC,OAAO,CAA0B;IAEzC;;;OAGG;IACH,YACE,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAA8B,EAS1C;IAED,OAAO,CAAC,OAAO,CAOb;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjC;IAEM,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB9E;IAEM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3D;IAEY,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnD;IAEM,gBAAgB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAI1D;IAEM,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAG1C;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAavF;IAED;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAG1D;IAED,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAE5D;IACD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAE7C;IAEK,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5C;IAEM,mBAAmB,IAAI,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAEpD;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBxE;IAED;;;;;OAKG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BpF;IAED;;;OAGG;IACI,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAEhC;IAED;;;OAGG;IACI,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEzC;IAED,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAG;IAE7C,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAED;;;;OAIG;IACI,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BvE;CACF"}
|
|
@@ -5,4 +5,4 @@ import type { Tx } from '@aztec/stdlib/tx';
|
|
|
5
5
|
* We currently use the sum of the priority fees for the tx for this value, represented as hex.
|
|
6
6
|
*/
|
|
7
7
|
export declare function getPendingTxPriority(tx: Tx): string;
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpb3JpdHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9wcmlvcml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUluRCJ9
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
2
3
|
import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
3
4
|
export type TxPoolOptions = {
|
|
@@ -93,7 +94,7 @@ export interface TxPool extends TypedEventEmitter<TxPoolEvents> {
|
|
|
93
94
|
* Gets the hashes of mined transactions currently in the tx pool.
|
|
94
95
|
* @returns An array of mined transaction hashes found in the tx pool.
|
|
95
96
|
*/
|
|
96
|
-
getMinedTxHashes(): Promise<[tx: TxHash, blockNumber:
|
|
97
|
+
getMinedTxHashes(): Promise<[tx: TxHash, blockNumber: BlockNumber][]>;
|
|
97
98
|
/**
|
|
98
99
|
* Returns whether the given tx hash is flagged as pending, mined, or deleted.
|
|
99
100
|
* @param txHash - Hash of the tx to query.
|
|
@@ -117,6 +118,6 @@ export interface TxPool extends TypedEventEmitter<TxPoolEvents> {
|
|
|
117
118
|
* @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
|
|
118
119
|
* @returns The number of transactions permanently deleted.
|
|
119
120
|
*/
|
|
120
|
-
cleanupDeletedMinedTxs(blockNumber:
|
|
121
|
+
cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
|
|
121
122
|
}
|
|
122
|
-
//# sourceMappingURL=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLG9CQUFvQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzlCLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMxQixDQUFDO0FBRUYsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFO1FBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsS0FBSyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQy9FLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxNQUFPLFNBQVEsaUJBQWlCLENBQUMsWUFBWSxDQUFDO0lBQzdEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU5RDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUvQzs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXhDOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFN0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekU7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUFFLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9FOzs7T0FHRztJQUNILFNBQVMsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUzQjs7O09BR0c7SUFDSCxjQUFjLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFcEM7OztPQUdHO0lBQ0gsa0JBQWtCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFeEMscURBQXFEO0lBQ3JELGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdEU7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUVsRjs7O09BR0c7SUFDSCxZQUFZLENBQUMsTUFBTSxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFFMUMseUNBQXlDO0lBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUI7OztPQUdHO0lBQ0gscUJBQXFCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RDs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDbkUifQ==
|