@aztec/p2p 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0
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 +38 -0
- package/dest/bootstrap/bootstrap.d.ts.map +1 -0
- package/dest/bootstrap/bootstrap.js +29 -41
- package/dest/client/factory.d.ts +19 -0
- package/dest/client/factory.d.ts.map +1 -0
- package/dest/client/factory.js +10 -8
- package/dest/client/index.d.ts +3 -0
- package/dest/client/index.d.ts.map +1 -0
- package/dest/client/index.js +1 -0
- package/dest/client/p2p_client.d.ts +332 -0
- package/dest/client/p2p_client.d.ts.map +1 -0
- package/dest/client/p2p_client.js +535 -513
- package/dest/config.d.ts +171 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +39 -44
- package/dest/errors/reqresp.error.d.ts +28 -0
- package/dest/errors/reqresp.error.d.ts.map +1 -0
- package/dest/errors/reqresp.error.js +10 -6
- package/dest/index.d.ts +9 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +57 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.js +2 -6
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +3 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +32 -64
- package/dest/mem_pools/attestation_pool/index.d.ts +3 -0
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/index.js +1 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +22 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +19 -22
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +17 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +26 -22
- package/dest/mem_pools/attestation_pool/mocks.d.ts +18 -0
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/mocks.js +6 -10
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts +7 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.js +2 -1
- package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts +4 -0
- package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/index.js +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts +12 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +4 -5
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts +8 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.js +3 -2
- package/dest/mem_pools/index.d.ts +5 -0
- package/dest/mem_pools/index.d.ts.map +1 -0
- package/dest/mem_pools/index.js +2 -1
- package/dest/mem_pools/instrumentation.d.ts +31 -0
- package/dest/mem_pools/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/instrumentation.js +42 -37
- package/dest/mem_pools/interface.d.ts +13 -0
- package/dest/mem_pools/interface.d.ts.map +1 -0
- package/dest/mem_pools/interface.js +2 -3
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +66 -0
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +134 -127
- package/dest/mem_pools/tx_pool/index.d.ts +4 -0
- package/dest/mem_pools/tx_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/index.js +1 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +56 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +43 -45
- package/dest/mem_pools/tx_pool/priority.d.ts +8 -0
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/priority.js +3 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +66 -0
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/tx_pool.js +2 -3
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +7 -0
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +37 -107
- package/dest/mocks/index.d.ts +54 -0
- package/dest/mocks/index.d.ts.map +1 -0
- package/dest/mocks/index.js +38 -47
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +8 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.js +3 -3
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -0
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +8 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +2 -2
- package/dest/msg_validators/block_proposal_validator/index.d.ts +2 -0
- package/dest/msg_validators/block_proposal_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/block_proposal_validator/index.js +1 -0
- package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts +8 -0
- package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts.map +1 -0
- package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.js +2 -2
- package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts +2 -0
- package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/epoch_proof_quote_validator/index.js +1 -0
- package/dest/msg_validators/index.d.ts +4 -0
- package/dest/msg_validators/index.d.ts.map +1 -0
- package/dest/msg_validators/index.js +1 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +7 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -9
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +11 -0
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/block_header_validator.js +12 -17
- package/dest/msg_validators/tx_validator/data_validator.d.ts +6 -0
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/data_validator.js +32 -41
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +12 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.js +14 -22
- package/dest/msg_validators/tx_validator/index.d.ts +7 -0
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/index.js +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +10 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.js +26 -29
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +8 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +12 -17
- package/dest/services/data_store.d.ts +27 -0
- package/dest/services/data_store.d.ts.map +1 -0
- package/dest/services/data_store.js +57 -57
- package/dest/services/discv5/discV5_service.d.ts +36 -0
- package/dest/services/discv5/discV5_service.d.ts.map +1 -0
- package/dest/services/discv5/discV5_service.js +23 -31
- package/dest/services/dummy_service.d.ts +82 -0
- package/dest/services/dummy_service.d.ts.map +1 -0
- package/dest/services/dummy_service.js +58 -40
- package/dest/services/encoding.d.ts +31 -0
- package/dest/services/encoding.d.ts.map +1 -0
- package/dest/services/encoding.js +9 -10
- package/dest/services/index.d.ts +3 -0
- package/dest/services/index.d.ts.map +1 -0
- package/dest/services/index.js +1 -0
- package/dest/services/libp2p/libp2p_service.d.ts +225 -0
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -0
- package/dest/services/libp2p/libp2p_service.js +695 -709
- package/dest/services/peer-manager/metrics.d.ts +12 -0
- package/dest/services/peer-manager/metrics.d.ts.map +1 -0
- package/dest/services/peer-manager/metrics.js +7 -14
- package/dest/services/peer-manager/peer_manager.d.ts +76 -0
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -0
- package/dest/services/peer-manager/peer_manager.js +342 -340
- package/dest/services/peer-manager/peer_scoring.d.ts +28 -0
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -0
- package/dest/services/peer-manager/peer_scoring.js +18 -20
- package/dest/services/reqresp/config.d.ts +16 -0
- package/dest/services/reqresp/config.d.ts.map +1 -0
- package/dest/services/reqresp/config.js +5 -4
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +45 -0
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -0
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +28 -35
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +61 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +59 -60
- package/dest/services/reqresp/index.d.ts +6 -0
- package/dest/services/reqresp/index.d.ts.map +1 -0
- package/dest/services/reqresp/index.js +3 -1
- package/dest/services/reqresp/interface.d.ts +107 -0
- package/dest/services/reqresp/interface.d.ts.map +1 -0
- package/dest/services/reqresp/interface.js +30 -25
- package/dest/services/reqresp/metrics.d.ts +15 -0
- package/dest/services/reqresp/metrics.d.ts.map +1 -0
- package/dest/services/reqresp/metrics.js +10 -23
- package/dest/services/reqresp/protocols/block.d.ts +4 -0
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block.js +2 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts +51 -0
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/goodbye.js +40 -35
- package/dest/services/reqresp/protocols/index.d.ts +9 -0
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/index.js +3 -1
- package/dest/services/reqresp/protocols/ping.d.ts +9 -0
- package/dest/services/reqresp/protocols/ping.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/ping.js +3 -1
- package/dest/services/reqresp/protocols/status.d.ts +9 -0
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/status.js +3 -1
- package/dest/services/reqresp/protocols/tx.d.ts +13 -0
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/tx.js +8 -5
- package/dest/services/reqresp/rate-limiter/index.d.ts +2 -0
- package/dest/services/reqresp/rate-limiter/index.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/index.js +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +102 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +36 -42
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +3 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.js +17 -16
- package/dest/services/reqresp/reqresp.d.ts +161 -0
- package/dest/services/reqresp/reqresp.d.ts.map +1 -0
- package/dest/services/reqresp/reqresp.js +395 -461
- package/dest/services/service.d.ts +85 -0
- package/dest/services/service.d.ts.map +1 -0
- package/dest/services/service.js +4 -3
- package/dest/services/types.d.ts +38 -0
- package/dest/services/types.d.ts.map +1 -0
- package/dest/services/types.js +23 -16
- package/dest/util.d.ts +53 -0
- package/dest/util.d.ts.map +1 -0
- package/dest/util.js +34 -23
- package/package.json +8 -8
- package/src/mem_pools/index.ts +3 -3
- package/src/mem_pools/instrumentation.ts +2 -3
- package/src/services/reqresp/interface.ts +0 -11
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +1 -3
- package/src/services/reqresp/rate-limiter/rate_limits.ts +2 -2
- package/src/services/reqresp/reqresp.ts +24 -111
- package/dest/services/reqresp/status.js +0 -51
- package/src/services/reqresp/status.ts +0 -59
|
@@ -1,35 +1,27 @@
|
|
|
1
|
+
var _DoubleSpendTxValidator_log, _DoubleSpendTxValidator_nullifierSource;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
1
3
|
import { Tx } from '@aztec/circuit-types';
|
|
2
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
5
|
export class DoubleSpendTxValidator {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
this
|
|
6
|
+
constructor(nullifierSource) {
|
|
7
|
+
_DoubleSpendTxValidator_log.set(this, createLogger('p2p:tx_validator:tx_double_spend'));
|
|
8
|
+
_DoubleSpendTxValidator_nullifierSource.set(this, void 0);
|
|
9
|
+
__classPrivateFieldSet(this, _DoubleSpendTxValidator_nullifierSource, nullifierSource, "f");
|
|
8
10
|
}
|
|
9
11
|
async validateTx(tx) {
|
|
10
12
|
const nullifiers = tx instanceof Tx ? tx.data.getNonEmptyNullifiers() : tx.txEffect.nullifiers;
|
|
11
13
|
// Ditch this tx if it has repeated nullifiers
|
|
12
14
|
const uniqueNullifiers = new Set(nullifiers);
|
|
13
15
|
if (uniqueNullifiers.size !== nullifiers.length) {
|
|
14
|
-
this
|
|
15
|
-
return {
|
|
16
|
-
result: 'invalid',
|
|
17
|
-
reason: [
|
|
18
|
-
'Duplicate nullifier in tx'
|
|
19
|
-
]
|
|
20
|
-
};
|
|
16
|
+
__classPrivateFieldGet(this, _DoubleSpendTxValidator_log, "f").warn(`Rejecting tx ${await Tx.getHash(tx)} for emitting duplicate nullifiers`);
|
|
17
|
+
return { result: 'invalid', reason: ['Duplicate nullifier in tx'] };
|
|
21
18
|
}
|
|
22
|
-
if ((await this
|
|
23
|
-
this
|
|
24
|
-
return {
|
|
25
|
-
result: 'invalid',
|
|
26
|
-
reason: [
|
|
27
|
-
'Existing nullifier'
|
|
28
|
-
]
|
|
29
|
-
};
|
|
19
|
+
if ((await __classPrivateFieldGet(this, _DoubleSpendTxValidator_nullifierSource, "f").nullifiersExist(nullifiers.map(n => n.toBuffer()))).some(Boolean)) {
|
|
20
|
+
__classPrivateFieldGet(this, _DoubleSpendTxValidator_log, "f").warn(`Rejecting tx ${await Tx.getHash(tx)} for repeating a nullifier`);
|
|
21
|
+
return { result: 'invalid', reason: ['Existing nullifier'] };
|
|
30
22
|
}
|
|
31
|
-
return {
|
|
32
|
-
result: 'valid'
|
|
33
|
-
};
|
|
23
|
+
return { result: 'valid' };
|
|
34
24
|
}
|
|
35
25
|
}
|
|
26
|
+
_DoubleSpendTxValidator_log = new WeakMap(), _DoubleSpendTxValidator_nullifierSource = new WeakMap();
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91YmxlX3NwZW5kX3ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvZG91YmxlX3NwZW5kX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQTZDLE1BQU0sc0JBQXNCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTXJELE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFBWSxlQUFnQztRQUg1QyxzQ0FBTyxZQUFZLENBQUMsa0NBQWtDLENBQUMsRUFBQztRQUN4RCwwREFBa0M7UUFHaEMsdUJBQUEsSUFBSSwyQ0FBb0IsZUFBZSxNQUFBLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBSztRQUNwQixNQUFNLFVBQVUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBRS9GLDhDQUE4QztRQUM5QyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoRCx1QkFBQSxJQUFJLG1DQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDekYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSx1QkFBQSxJQUFJLCtDQUFpQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25HLHVCQUFBLElBQUksbUNBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDL0QsQ0FBQztRQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './aggregate_tx_validator.js';
|
|
2
|
+
export * from './data_validator.js';
|
|
3
|
+
export * from './double_spend_validator.js';
|
|
4
|
+
export * from './metadata_validator.js';
|
|
5
|
+
export * from './tx_proof_validator.js';
|
|
6
|
+
export * from './block_header_validator.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
|
|
@@ -4,3 +4,4 @@ export * from './double_spend_validator.js';
|
|
|
4
4
|
export * from './metadata_validator.js';
|
|
5
5
|
export * from './tx_proof_validator.js';
|
|
6
6
|
export * from './block_header_validator.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvdHhfdmFsaWRhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type AnyTx, type TxValidationResult, type TxValidator } from '@aztec/circuit-types';
|
|
2
|
+
import { type Fr } from '@aztec/circuits.js';
|
|
3
|
+
export declare class MetadataTxValidator<T extends AnyTx> implements TxValidator<T> {
|
|
4
|
+
#private;
|
|
5
|
+
private chainId;
|
|
6
|
+
private blockNumber;
|
|
7
|
+
constructor(chainId: Fr, blockNumber: Fr);
|
|
8
|
+
validateTx(tx: T): Promise<TxValidationResult>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=metadata_validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/metadata_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAM,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAG7C,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAG7D,OAAO,CAAC,OAAO;IAAM,OAAO,CAAC,WAAW;gBAAhC,OAAO,EAAE,EAAE,EAAU,WAAW,EAAE,EAAE;IAElD,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAsCrD"}
|
|
@@ -1,44 +1,41 @@
|
|
|
1
|
+
var _MetadataTxValidator_instances, _MetadataTxValidator_log, _MetadataTxValidator_hasCorrectChainId, _MetadataTxValidator_isValidForBlockNumber;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
1
3
|
import { Tx } from '@aztec/circuit-types';
|
|
2
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
5
|
export class MetadataTxValidator {
|
|
4
|
-
chainId
|
|
5
|
-
|
|
6
|
-
#log;
|
|
7
|
-
constructor(chainId, blockNumber){
|
|
6
|
+
constructor(chainId, blockNumber) {
|
|
7
|
+
_MetadataTxValidator_instances.add(this);
|
|
8
8
|
this.chainId = chainId;
|
|
9
9
|
this.blockNumber = blockNumber;
|
|
10
|
-
this
|
|
10
|
+
_MetadataTxValidator_log.set(this, createLogger('p2p:tx_validator:tx_metadata'));
|
|
11
11
|
}
|
|
12
12
|
async validateTx(tx) {
|
|
13
13
|
const errors = [];
|
|
14
|
-
if (!await this
|
|
14
|
+
if (!(await __classPrivateFieldGet(this, _MetadataTxValidator_instances, "m", _MetadataTxValidator_hasCorrectChainId).call(this, tx))) {
|
|
15
15
|
errors.push('Incorrect chain id');
|
|
16
16
|
}
|
|
17
|
-
if (!await this
|
|
17
|
+
if (!(await __classPrivateFieldGet(this, _MetadataTxValidator_instances, "m", _MetadataTxValidator_isValidForBlockNumber).call(this, tx))) {
|
|
18
18
|
errors.push('Invalid block number');
|
|
19
19
|
}
|
|
20
|
-
return errors.length > 0 ? {
|
|
21
|
-
result: 'invalid',
|
|
22
|
-
reason: errors
|
|
23
|
-
} : {
|
|
24
|
-
result: 'valid'
|
|
25
|
-
};
|
|
20
|
+
return errors.length > 0 ? { result: 'invalid', reason: errors } : { result: 'valid' };
|
|
26
21
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
22
|
+
}
|
|
23
|
+
_MetadataTxValidator_log = new WeakMap(), _MetadataTxValidator_instances = new WeakSet(), _MetadataTxValidator_hasCorrectChainId = async function _MetadataTxValidator_hasCorrectChainId(tx) {
|
|
24
|
+
if (!tx.data.constants.txContext.chainId.equals(this.chainId)) {
|
|
25
|
+
__classPrivateFieldGet(this, _MetadataTxValidator_log, "f").warn(`Rejecting tx ${await Tx.getHash(tx)} because of incorrect chain ${tx.data.constants.txContext.chainId.toNumber()} != ${this.chainId.toNumber()}`);
|
|
26
|
+
return false;
|
|
34
27
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (maxBlockNumber.isSome && maxBlockNumber.value < this.blockNumber) {
|
|
38
|
-
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} for low max block number. Tx max block number: ${maxBlockNumber.value}, current block number: ${this.blockNumber}.`);
|
|
39
|
-
return false;
|
|
40
|
-
} else {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
28
|
+
else {
|
|
29
|
+
return true;
|
|
43
30
|
}
|
|
44
|
-
}
|
|
31
|
+
}, _MetadataTxValidator_isValidForBlockNumber = async function _MetadataTxValidator_isValidForBlockNumber(tx) {
|
|
32
|
+
const maxBlockNumber = tx.data.rollupValidationRequests.maxBlockNumber;
|
|
33
|
+
if (maxBlockNumber.isSome && maxBlockNumber.value < this.blockNumber) {
|
|
34
|
+
__classPrivateFieldGet(this, _MetadataTxValidator_log, "f").warn(`Rejecting tx ${await Tx.getHash(tx)} for low max block number. Tx max block number: ${maxBlockNumber.value}, current block number: ${this.blockNumber}.`);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGFfdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9tZXRhZGF0YV92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWMsRUFBRSxFQUE2QyxNQUFNLHNCQUFzQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW9CLE9BQVcsRUFBVSxXQUFlOztRQUFwQyxZQUFPLEdBQVAsT0FBTyxDQUFJO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQUk7UUFGeEQsbUNBQU8sWUFBWSxDQUFDLDhCQUE4QixDQUFDLEVBQUM7SUFFTyxDQUFDO0lBRTVELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBSztRQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLENBQUMsTUFBTSx1QkFBQSxJQUFJLDhFQUFtQixNQUF2QixJQUFJLEVBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sdUJBQUEsSUFBSSxrRkFBdUIsTUFBM0IsSUFBSSxFQUF3QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN6RixDQUFDO0NBNkJGO21JQTNCQyxLQUFLLGlEQUFvQixFQUFLO0lBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5RCx1QkFBQSxJQUFJLGdDQUFLLENBQUMsSUFBSSxDQUNaLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQzlCLEVBQUUsQ0FDSCwrQkFBK0IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQy9HLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQywrQ0FFRCxLQUFLLHFEQUF3QixFQUFLO0lBQ2hDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDO0lBRXZFLElBQUksY0FBYyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRSx1QkFBQSxJQUFJLGdDQUFLLENBQUMsSUFBSSxDQUNaLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1EQUNsQyxjQUFjLENBQUMsS0FDakIsMkJBQTJCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FDL0MsQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ClientProtocolCircuitVerifier, Tx, type TxValidationResult, type TxValidator } from '@aztec/circuit-types';
|
|
2
|
+
export declare class TxProofValidator implements TxValidator<Tx> {
|
|
3
|
+
#private;
|
|
4
|
+
private verifier;
|
|
5
|
+
constructor(verifier: ClientProtocolCircuitVerifier);
|
|
6
|
+
validateTx(tx: Tx): Promise<TxValidationResult>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=tx_proof_validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx_proof_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/tx_proof_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAClC,EAAE,EACF,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAG9B,qBAAa,gBAAiB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAG1C,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,6BAA6B;IAErD,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQtD"}
|
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
var _TxProofValidator_log;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
+
import { Tx, } from '@aztec/circuit-types';
|
|
2
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
5
|
export class TxProofValidator {
|
|
4
|
-
verifier
|
|
5
|
-
#log;
|
|
6
|
-
constructor(verifier){
|
|
6
|
+
constructor(verifier) {
|
|
7
7
|
this.verifier = verifier;
|
|
8
|
-
this
|
|
8
|
+
_TxProofValidator_log.set(this, createLogger('p2p:tx_validator:private_proof'));
|
|
9
9
|
}
|
|
10
10
|
async validateTx(tx) {
|
|
11
|
-
if (!await this.verifier.verifyProof(tx)) {
|
|
12
|
-
this
|
|
13
|
-
return {
|
|
14
|
-
result: 'invalid',
|
|
15
|
-
reason: [
|
|
16
|
-
'Invalid proof'
|
|
17
|
-
]
|
|
18
|
-
};
|
|
11
|
+
if (!(await this.verifier.verifyProof(tx))) {
|
|
12
|
+
__classPrivateFieldGet(this, _TxProofValidator_log, "f").warn(`Rejecting tx ${Tx.getHash(tx)} for invalid proof`);
|
|
13
|
+
return { result: 'invalid', reason: ['Invalid proof'] };
|
|
19
14
|
}
|
|
20
|
-
this
|
|
21
|
-
return {
|
|
22
|
-
result: 'valid'
|
|
23
|
-
};
|
|
15
|
+
__classPrivateFieldGet(this, _TxProofValidator_log, "f").trace(`Accepted ${Tx.getHash(tx)} with valid proof`);
|
|
16
|
+
return { result: 'valid' };
|
|
24
17
|
}
|
|
25
18
|
}
|
|
19
|
+
_TxProofValidator_log = new WeakMap();
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvb2ZfdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci90eF9wcm9vZl92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsRUFBRSxHQUdILE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBb0IsUUFBdUM7UUFBdkMsYUFBUSxHQUFSLFFBQVEsQ0FBK0I7UUFGM0QsZ0NBQU8sWUFBWSxDQUFDLGdDQUFnQyxDQUFDLEVBQUM7SUFFUSxDQUFDO0lBRS9ELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBTTtRQUNyQixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzQyx1QkFBQSxJQUFJLDZCQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDMUQsQ0FBQztRQUNELHVCQUFBLElBQUksNkJBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
2
|
+
import { type Batch, type Datastore, Key, type KeyQuery, type Pair, type Query } from 'interface-datastore';
|
|
3
|
+
import type { AwaitIterable } from 'interface-store';
|
|
4
|
+
export declare class AztecDatastore implements Datastore {
|
|
5
|
+
#private;
|
|
6
|
+
private maxMemoryItems;
|
|
7
|
+
constructor(db: AztecAsyncKVStore, { maxMemoryItems }?: {
|
|
8
|
+
maxMemoryItems: number;
|
|
9
|
+
});
|
|
10
|
+
has(key: Key): Promise<boolean>;
|
|
11
|
+
get(key: Key): Promise<Uint8Array>;
|
|
12
|
+
put(key: Key, val: Uint8Array): Promise<Key>;
|
|
13
|
+
putMany(source: AwaitIterable<Pair>): AwaitIterable<Key>;
|
|
14
|
+
getMany(source: AwaitIterable<Key>): AwaitIterable<Pair>;
|
|
15
|
+
deleteMany(source: AwaitIterable<Key>): AwaitIterable<Key>;
|
|
16
|
+
delete(key: Key): Promise<void>;
|
|
17
|
+
batch(): Batch;
|
|
18
|
+
query(q: Query): AwaitIterable<Pair>;
|
|
19
|
+
queryKeys(q: KeyQuery): AsyncIterable<Key>;
|
|
20
|
+
private _put;
|
|
21
|
+
private all;
|
|
22
|
+
/**
|
|
23
|
+
* Prune memory store
|
|
24
|
+
*/
|
|
25
|
+
private pruneMemoryDatastore;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data_store.d.ts","sourceRoot":"","sources":["../../src/services/data_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAqBrD,qBAAa,cAAe,YAAW,SAAS;;IAM9C,OAAO,CAAC,cAAc,CAAS;gBAEnB,EAAE,EAAE,iBAAiB,EAAE,EAAE,cAAc,EAAE;;KAAyB;IAOxE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBxC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;IAOxD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;IASxD,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;IAO3D,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,KAAK,IAAI,KAAK;IA4Bd,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC;IA4BpC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC;YA2B5B,IAAI;YAqBH,GAAG;IAkBlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAiB7B"}
|
|
@@ -1,35 +1,33 @@
|
|
|
1
|
+
var _AztecDatastore_memoryDatastore, _AztecDatastore_dbDatastore, _AztecDatastore_batchOps;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
1
3
|
import { filter, map, sort, take } from '@aztec/foundation/iterable';
|
|
2
4
|
import { Key } from 'interface-datastore';
|
|
3
5
|
class KeyNotFoundError extends Error {
|
|
4
|
-
|
|
5
|
-
constructor(message){
|
|
6
|
+
constructor(message) {
|
|
6
7
|
super(message);
|
|
7
8
|
this.code = 'ERR_NOT_FOUND';
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
export class AztecDatastore {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}){
|
|
18
|
-
this.#memoryDatastore = new Map();
|
|
19
|
-
this.#dbDatastore = db.openMap('p2p_datastore');
|
|
12
|
+
constructor(db, { maxMemoryItems } = { maxMemoryItems: 50 }) {
|
|
13
|
+
_AztecDatastore_memoryDatastore.set(this, void 0);
|
|
14
|
+
_AztecDatastore_dbDatastore.set(this, void 0);
|
|
15
|
+
_AztecDatastore_batchOps.set(this, []);
|
|
16
|
+
__classPrivateFieldSet(this, _AztecDatastore_memoryDatastore, new Map(), "f");
|
|
17
|
+
__classPrivateFieldSet(this, _AztecDatastore_dbDatastore, db.openMap('p2p_datastore'), "f");
|
|
20
18
|
this.maxMemoryItems = maxMemoryItems;
|
|
21
19
|
}
|
|
22
20
|
async has(key) {
|
|
23
|
-
return this
|
|
21
|
+
return __classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").has(key.toString()) || (await __classPrivateFieldGet(this, _AztecDatastore_dbDatastore, "f").hasAsync(key.toString()));
|
|
24
22
|
}
|
|
25
23
|
async get(key) {
|
|
26
24
|
const keyStr = key.toString();
|
|
27
|
-
const memoryItem = this
|
|
25
|
+
const memoryItem = __classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").get(keyStr);
|
|
28
26
|
if (memoryItem) {
|
|
29
27
|
memoryItem.lastAccessedMs = Date.now();
|
|
30
28
|
return memoryItem.data;
|
|
31
29
|
}
|
|
32
|
-
const dbItem = await this
|
|
30
|
+
const dbItem = await __classPrivateFieldGet(this, _AztecDatastore_dbDatastore, "f").getAsync(keyStr);
|
|
33
31
|
if (!dbItem) {
|
|
34
32
|
throw new KeyNotFoundError(`Key not found`);
|
|
35
33
|
}
|
|
@@ -39,71 +37,72 @@ export class AztecDatastore {
|
|
|
39
37
|
return this._put(key, val);
|
|
40
38
|
}
|
|
41
39
|
async *putMany(source) {
|
|
42
|
-
for await (const { key, value } of source){
|
|
40
|
+
for await (const { key, value } of source) {
|
|
43
41
|
await this.put(key, value);
|
|
44
42
|
yield key;
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
45
|
async *getMany(source) {
|
|
48
|
-
for await (const key of source){
|
|
46
|
+
for await (const key of source) {
|
|
49
47
|
yield {
|
|
50
48
|
key,
|
|
51
|
-
value: await this.get(key)
|
|
49
|
+
value: await this.get(key),
|
|
52
50
|
};
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
53
|
async *deleteMany(source) {
|
|
56
|
-
for await (const key of source){
|
|
54
|
+
for await (const key of source) {
|
|
57
55
|
await this.delete(key);
|
|
58
56
|
yield key;
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
59
|
async delete(key) {
|
|
62
|
-
this
|
|
63
|
-
await this
|
|
60
|
+
__classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").delete(key.toString());
|
|
61
|
+
await __classPrivateFieldGet(this, _AztecDatastore_dbDatastore, "f").delete(key.toString());
|
|
64
62
|
}
|
|
65
63
|
batch() {
|
|
66
64
|
return {
|
|
67
|
-
put: (key, value)=>{
|
|
68
|
-
this
|
|
65
|
+
put: (key, value) => {
|
|
66
|
+
__classPrivateFieldGet(this, _AztecDatastore_batchOps, "f").push({
|
|
69
67
|
type: 'put',
|
|
70
68
|
key,
|
|
71
|
-
value
|
|
69
|
+
value,
|
|
72
70
|
});
|
|
73
71
|
},
|
|
74
|
-
delete:
|
|
75
|
-
this
|
|
72
|
+
delete: key => {
|
|
73
|
+
__classPrivateFieldGet(this, _AztecDatastore_batchOps, "f").push({
|
|
76
74
|
type: 'del',
|
|
77
|
-
key
|
|
75
|
+
key,
|
|
78
76
|
});
|
|
79
77
|
},
|
|
80
|
-
commit: async ()=>{
|
|
81
|
-
for (const op of this
|
|
78
|
+
commit: async () => {
|
|
79
|
+
for (const op of __classPrivateFieldGet(this, _AztecDatastore_batchOps, "f")) {
|
|
82
80
|
if (op.type === 'put' && op.value) {
|
|
83
81
|
await this.put(op.key, op.value);
|
|
84
|
-
}
|
|
82
|
+
}
|
|
83
|
+
else if (op.type === 'del') {
|
|
85
84
|
await this.delete(op.key);
|
|
86
85
|
}
|
|
87
86
|
}
|
|
88
|
-
this
|
|
89
|
-
}
|
|
87
|
+
__classPrivateFieldSet(this, _AztecDatastore_batchOps, [], "f"); // Clear operations after commit
|
|
88
|
+
},
|
|
90
89
|
};
|
|
91
90
|
}
|
|
92
91
|
query(q) {
|
|
93
92
|
let it = this.all(); //
|
|
94
93
|
const { prefix, filters, orders, offset, limit } = q;
|
|
95
94
|
if (prefix != null) {
|
|
96
|
-
it = filter(it,
|
|
95
|
+
it = filter(it, e => e.key.toString().startsWith(`${prefix}`));
|
|
97
96
|
}
|
|
98
97
|
if (Array.isArray(filters)) {
|
|
99
|
-
it = filters.reduce((it, f)=>filter(it, f), it);
|
|
98
|
+
it = filters.reduce((it, f) => filter(it, f), it);
|
|
100
99
|
}
|
|
101
100
|
if (Array.isArray(orders)) {
|
|
102
|
-
it = orders.reduce((it, f)=>sort(it, f), it);
|
|
101
|
+
it = orders.reduce((it, f) => sort(it, f), it);
|
|
103
102
|
}
|
|
104
103
|
if (offset != null) {
|
|
105
104
|
let i = 0;
|
|
106
|
-
it = filter(it, ()=>i++ >= offset);
|
|
105
|
+
it = filter(it, () => i++ >= offset);
|
|
107
106
|
}
|
|
108
107
|
if (limit != null) {
|
|
109
108
|
it = take(it, limit);
|
|
@@ -111,20 +110,20 @@ export class AztecDatastore {
|
|
|
111
110
|
return it;
|
|
112
111
|
}
|
|
113
112
|
queryKeys(q) {
|
|
114
|
-
let it = map(this.all(), ({ key })=>key);
|
|
113
|
+
let it = map(this.all(), ({ key }) => key);
|
|
115
114
|
const { prefix, filters, orders, offset, limit } = q;
|
|
116
115
|
if (prefix != null) {
|
|
117
|
-
it = filter(it,
|
|
116
|
+
it = filter(it, e => e.toString().startsWith(`${prefix}`));
|
|
118
117
|
}
|
|
119
118
|
if (Array.isArray(filters)) {
|
|
120
|
-
it = filters.reduce((it, f)=>filter(it, f), it);
|
|
119
|
+
it = filters.reduce((it, f) => filter(it, f), it);
|
|
121
120
|
}
|
|
122
121
|
if (Array.isArray(orders)) {
|
|
123
|
-
it = orders.reduce((it, f)=>sort(it, f), it);
|
|
122
|
+
it = orders.reduce((it, f) => sort(it, f), it);
|
|
124
123
|
}
|
|
125
124
|
if (offset != null) {
|
|
126
125
|
let i = 0;
|
|
127
|
-
it = filter(it, ()=>i++ >= offset);
|
|
126
|
+
it = filter(it, () => i++ >= offset);
|
|
128
127
|
}
|
|
129
128
|
if (limit != null) {
|
|
130
129
|
it = take(it, limit);
|
|
@@ -133,48 +132,47 @@ export class AztecDatastore {
|
|
|
133
132
|
}
|
|
134
133
|
async _put(key, val) {
|
|
135
134
|
const keyStr = key.toString();
|
|
136
|
-
while(this
|
|
135
|
+
while (__classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").size >= this.maxMemoryItems) {
|
|
137
136
|
this.pruneMemoryDatastore();
|
|
138
137
|
}
|
|
139
|
-
const memoryItem = this
|
|
138
|
+
const memoryItem = __classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").get(keyStr);
|
|
140
139
|
if (memoryItem) {
|
|
141
140
|
// update existing
|
|
142
141
|
memoryItem.lastAccessedMs = Date.now();
|
|
143
142
|
memoryItem.data = val;
|
|
144
|
-
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
145
|
// new entry
|
|
146
|
-
this
|
|
147
|
-
data: val,
|
|
148
|
-
lastAccessedMs: Date.now()
|
|
149
|
-
});
|
|
146
|
+
__classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").set(keyStr, { data: val, lastAccessedMs: Date.now() });
|
|
150
147
|
}
|
|
151
148
|
// Always add to DB
|
|
152
|
-
await this
|
|
149
|
+
await __classPrivateFieldGet(this, _AztecDatastore_dbDatastore, "f").set(keyStr, val);
|
|
153
150
|
return key;
|
|
154
151
|
}
|
|
155
152
|
async *all() {
|
|
156
|
-
for (const [key, value] of this
|
|
153
|
+
for (const [key, value] of __classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").entries()) {
|
|
157
154
|
yield {
|
|
158
155
|
key: new Key(key),
|
|
159
|
-
value: value.data
|
|
156
|
+
value: value.data,
|
|
160
157
|
};
|
|
161
158
|
}
|
|
162
|
-
for await (const [key, value] of this
|
|
163
|
-
if (!this
|
|
159
|
+
for await (const [key, value] of __classPrivateFieldGet(this, _AztecDatastore_dbDatastore, "f").entriesAsync()) {
|
|
160
|
+
if (!__classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").has(key)) {
|
|
164
161
|
yield {
|
|
165
162
|
key: new Key(key),
|
|
166
|
-
value
|
|
163
|
+
value,
|
|
167
164
|
};
|
|
168
165
|
}
|
|
169
166
|
}
|
|
170
167
|
}
|
|
171
168
|
/**
|
|
172
|
-
|
|
173
|
-
|
|
169
|
+
* Prune memory store
|
|
170
|
+
*/
|
|
171
|
+
pruneMemoryDatastore() {
|
|
174
172
|
let oldestAccessedMs = Date.now() + 1000;
|
|
175
173
|
let oldestKey = undefined;
|
|
176
174
|
let oldestValue = undefined;
|
|
177
|
-
for (const [key, value] of this
|
|
175
|
+
for (const [key, value] of __classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f")) {
|
|
178
176
|
if (value.lastAccessedMs < oldestAccessedMs) {
|
|
179
177
|
oldestAccessedMs = value.lastAccessedMs;
|
|
180
178
|
oldestKey = key;
|
|
@@ -182,7 +180,9 @@ export class AztecDatastore {
|
|
|
182
180
|
}
|
|
183
181
|
}
|
|
184
182
|
if (oldestKey && oldestValue) {
|
|
185
|
-
this
|
|
183
|
+
__classPrivateFieldGet(this, _AztecDatastore_memoryDatastore, "f").delete(oldestKey);
|
|
186
184
|
}
|
|
187
185
|
}
|
|
188
186
|
}
|
|
187
|
+
_AztecDatastore_memoryDatastore = new WeakMap(), _AztecDatastore_dbDatastore = new WeakMap(), _AztecDatastore_batchOps = new WeakMap();
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9kYXRhX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3JFLE9BQU8sRUFBOEIsR0FBRyxFQUF3QyxNQUFNLHFCQUFxQixDQUFDO0FBYzVHLE1BQU0sZ0JBQWlCLFNBQVEsS0FBSztJQUVsQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFBWSxFQUFxQixFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1FBUDlFLGtEQUEwQztRQUMxQyw4Q0FBZ0Q7UUFFaEQsbUNBQXVCLEVBQUUsRUFBQztRQUt4Qix1QkFBQSxJQUFJLG1DQUFvQixJQUFJLEdBQUcsRUFBRSxNQUFBLENBQUM7UUFDbEMsdUJBQUEsSUFBSSwrQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBQSxDQUFDO1FBRWhELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVE7UUFDaEIsT0FBTyx1QkFBQSxJQUFJLHVDQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQUEsSUFBSSxtQ0FBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVE7UUFDaEIsTUFBTSxNQUFN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
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
+
import { ENR } from '@chainsafe/enr';
|
|
4
|
+
import type { PeerId } from '@libp2p/interface';
|
|
5
|
+
import EventEmitter from 'events';
|
|
6
|
+
import type { P2PConfig } from '../../config.js';
|
|
7
|
+
import { type PeerDiscoveryService, PeerDiscoveryState } from '../service.js';
|
|
8
|
+
/**
|
|
9
|
+
* Peer discovery service using Discv5.
|
|
10
|
+
*/
|
|
11
|
+
export declare class DiscV5Service extends EventEmitter implements PeerDiscoveryService {
|
|
12
|
+
private peerId;
|
|
13
|
+
private logger;
|
|
14
|
+
/** The Discv5 instance */
|
|
15
|
+
private discv5;
|
|
16
|
+
/** This instance's ENR */
|
|
17
|
+
private enr;
|
|
18
|
+
/** UDP listen addr */
|
|
19
|
+
private listenMultiAddrUdp;
|
|
20
|
+
private currentState;
|
|
21
|
+
private bootstrapNodes;
|
|
22
|
+
private bootstrapNodePeerIds;
|
|
23
|
+
private startTime;
|
|
24
|
+
constructor(peerId: PeerId, config: P2PConfig, telemetry?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
|
|
25
|
+
start(): Promise<void>;
|
|
26
|
+
runRandomNodesQuery(): Promise<void>;
|
|
27
|
+
getAllPeers(): ENR[];
|
|
28
|
+
getEnr(): ENR;
|
|
29
|
+
getPeerId(): PeerId;
|
|
30
|
+
getStatus(): PeerDiscoveryState;
|
|
31
|
+
isBootstrapPeer(peerId: PeerId): boolean;
|
|
32
|
+
stop(): Promise<void>;
|
|
33
|
+
private onEnrAdded;
|
|
34
|
+
private onDiscovered;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=discV5_service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":";AAEA,OAAO,EAAsB,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGvG,OAAO,EAAE,GAAG,EAAe,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAK9E;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,oBAAoB;IAkB3E,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,MAAM;IApBhB,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAA8B;IAE5C,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAc;IAEzB,sBAAsB;IACtB,OAAO,CAAC,kBAAkB,CAAY;IAEtC,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,oBAAoB,CAAgB;IAE5C,OAAO,CAAC,SAAS,CAAK;gBAGZ,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE,SAAS,EACjB,SAAS,GAAE,eAAsC,EACzC,MAAM,yCAAqC;IA2CxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BtB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB1C,WAAW,IAAI,GAAG,EAAE;IAIpB,MAAM,IAAI,GAAG;IAIb,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,kBAAkB;IAI/B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASpB,UAAU;IAOxB,OAAO,CAAC,YAAY;CAWrB"}
|