@lodestar/beacon-node 1.47.0-dev.9c75ac2a0f → 1.47.0-dev.9ecc10f386
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/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +44 -12
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +21 -2
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -1
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/events/index.d.ts.map +1 -1
- package/lib/api/impl/events/index.js +2 -0
- package/lib/api/impl/events/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +1 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +232 -49
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/impl/validator/utils.js +1 -1
- package/lib/api/impl/validator/utils.js.map +1 -1
- package/lib/api/rest/base.d.ts.map +1 -1
- package/lib/api/rest/base.js +7 -0
- package/lib/api/rest/base.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +1 -1
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts +3 -2
- package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.js +11 -9
- package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
- package/lib/chain/blocks/index.d.ts.map +1 -1
- package/lib/chain/blocks/index.js +14 -6
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +2 -1
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +6 -2
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +14 -5
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/types.js +5 -0
- package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +22 -12
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +2 -2
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
- package/lib/chain/bls/index.d.ts +1 -1
- package/lib/chain/bls/index.d.ts.map +1 -1
- package/lib/chain/bls/interface.d.ts +5 -5
- package/lib/chain/bls/interface.d.ts.map +1 -1
- package/lib/chain/bls/multithread/index.d.ts +5 -11
- package/lib/chain/bls/multithread/index.d.ts.map +1 -1
- package/lib/chain/bls/multithread/index.js +116 -101
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/multithread/jobItem.d.ts +5 -19
- package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
- package/lib/chain/bls/multithread/jobItem.js +10 -65
- package/lib/chain/bls/multithread/jobItem.js.map +1 -1
- package/lib/chain/bls/multithread/types.d.ts +29 -8
- package/lib/chain/bls/multithread/types.d.ts.map +1 -1
- package/lib/chain/bls/multithread/types.js +12 -0
- package/lib/chain/bls/multithread/types.js.map +1 -1
- package/lib/chain/bls/multithread/utils.d.ts +4 -0
- package/lib/chain/bls/multithread/utils.d.ts.map +1 -1
- package/lib/chain/bls/multithread/utils.js +10 -0
- package/lib/chain/bls/multithread/utils.js.map +1 -1
- package/lib/chain/bls/multithread/worker.js +49 -23
- package/lib/chain/bls/multithread/worker.js.map +1 -1
- package/lib/chain/bls/singleThread.d.ts +4 -10
- package/lib/chain/bls/singleThread.d.ts.map +1 -1
- package/lib/chain/bls/singleThread.js +8 -45
- package/lib/chain/bls/singleThread.js.map +1 -1
- package/lib/chain/bls/utils.d.ts +4 -4
- package/lib/chain/bls/utils.d.ts.map +1 -1
- package/lib/chain/bls/utils.js +18 -19
- package/lib/chain/bls/utils.js.map +1 -1
- package/lib/chain/chain.d.ts +8 -3
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +20 -7
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/errors/blockError.d.ts +1 -0
- package/lib/chain/errors/blockError.d.ts.map +1 -1
- package/lib/chain/errors/blockError.js +6 -1
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +4 -0
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +6 -2
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.d.ts +1 -1
- package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
- package/lib/chain/opPools/attestationPool.js +1 -1
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/deferredVoluntaryExitPool.d.ts +16 -0
- package/lib/chain/opPools/deferredVoluntaryExitPool.d.ts.map +1 -0
- package/lib/chain/opPools/deferredVoluntaryExitPool.js +57 -0
- package/lib/chain/opPools/deferredVoluntaryExitPool.js.map +1 -0
- package/lib/chain/opPools/executionPayloadBidPool.d.ts +7 -2
- package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
- package/lib/chain/opPools/executionPayloadBidPool.js +4 -4
- package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
- package/lib/chain/opPools/index.d.ts +2 -1
- package/lib/chain/opPools/index.d.ts.map +1 -1
- package/lib/chain/opPools/index.js +1 -0
- package/lib/chain/opPools/index.js.map +1 -1
- package/lib/chain/opPools/payloadAttestationPool.js +3 -3
- package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.js +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.js +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
- package/lib/chain/opPools/utils.d.ts +1 -1
- package/lib/chain/opPools/utils.d.ts.map +1 -1
- package/lib/chain/opPools/utils.js +1 -1
- package/lib/chain/opPools/utils.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +23 -5
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +5 -2
- package/lib/chain/regen/interface.d.ts.map +1 -1
- package/lib/chain/regen/interface.js +3 -0
- package/lib/chain/regen/interface.js.map +1 -1
- package/lib/chain/regen/queued.d.ts +2 -2
- package/lib/chain/regen/queued.d.ts.map +1 -1
- package/lib/chain/regen/queued.js +5 -5
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/seenCache/seenAttesters.d.ts +9 -5
- package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
- package/lib/chain/seenCache/seenAttesters.js +25 -4
- package/lib/chain/seenCache/seenAttesters.js.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +28 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +121 -13
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +5 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +6 -0
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +47 -5
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +117 -7
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/types.d.ts +3 -3
- package/lib/chain/stateCache/types.d.ts.map +1 -1
- package/lib/chain/validation/attestation.d.ts.map +1 -1
- package/lib/chain/validation/attestation.js +1 -4
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
- package/lib/chain/validation/attesterSlashing.js +1 -1
- package/lib/chain/validation/attesterSlashing.js.map +1 -1
- package/lib/chain/validation/executionPayloadBid.d.ts +13 -3
- package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadBid.js +135 -5
- package/lib/chain/validation/executionPayloadBid.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.js +5 -14
- package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
- package/lib/chain/validation/proposerPreferences.js +2 -2
- package/lib/chain/validation/proposerPreferences.js.map +1 -1
- package/lib/chain/validation/proposerSlashing.js +1 -1
- package/lib/chain/validation/proposerSlashing.js.map +1 -1
- package/lib/chain/validation/voluntaryExit.d.ts +9 -1
- package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
- package/lib/chain/validation/voluntaryExit.js +46 -1
- package/lib/chain/validation/voluntaryExit.js.map +1 -1
- package/lib/execution/builder/apiClient.d.ts +64 -0
- package/lib/execution/builder/apiClient.d.ts.map +1 -0
- package/lib/execution/builder/apiClient.js +184 -0
- package/lib/execution/builder/apiClient.js.map +1 -0
- package/lib/execution/builder/validateBid.d.ts +22 -0
- package/lib/execution/builder/validateBid.d.ts.map +1 -0
- package/lib/execution/builder/validateBid.js +111 -0
- package/lib/execution/builder/validateBid.js.map +1 -0
- package/lib/metrics/metrics/lodestar.d.ts +78 -23
- package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
- package/lib/metrics/metrics/lodestar.js +148 -52
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +13 -0
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/gossip/topic.js +37 -0
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/network.d.ts.map +1 -1
- package/lib/network/network.js +23 -43
- package/lib/network/network.js.map +1 -1
- package/lib/network/processor/constants.d.ts +7 -0
- package/lib/network/processor/constants.d.ts.map +1 -0
- package/lib/network/processor/constants.js +7 -0
- package/lib/network/processor/constants.js.map +1 -0
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +6 -2
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.js +0 -1
- package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
- package/lib/network/processor/index.d.ts +3 -0
- package/lib/network/processor/index.d.ts.map +1 -1
- package/lib/network/processor/index.js +41 -17
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/util.d.ts +0 -1
- package/lib/network/util.d.ts.map +1 -1
- package/lib/network/util.js +0 -4
- package/lib/network/util.js.map +1 -1
- package/lib/node/deferredVoluntaryExitPublisher.d.ts +15 -0
- package/lib/node/deferredVoluntaryExitPublisher.d.ts.map +1 -0
- package/lib/node/deferredVoluntaryExitPublisher.js +38 -0
- package/lib/node/deferredVoluntaryExitPublisher.js.map +1 -0
- package/lib/node/nodejs.d.ts +2 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +7 -0
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/range/batch.d.ts +23 -5
- package/lib/sync/range/batch.d.ts.map +1 -1
- package/lib/sync/range/batch.js +61 -22
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +2 -1
- package/lib/sync/range/chain.d.ts.map +1 -1
- package/lib/sync/range/chain.js +23 -10
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/types.d.ts +32 -0
- package/lib/sync/types.d.ts.map +1 -1
- package/lib/sync/types.js +33 -0
- package/lib/sync/types.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +6 -2
- package/lib/sync/unknownBlock.d.ts.map +1 -1
- package/lib/sync/unknownBlock.js +143 -68
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
- package/lib/sync/utils/downloadByRange.js +16 -11
- package/lib/sync/utils/downloadByRange.js.map +1 -1
- package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
- package/lib/sync/utils/downloadByRoot.js +3 -1
- package/lib/sync/utils/downloadByRoot.js.map +1 -1
- package/package.json +35 -35
- package/src/api/impl/beacon/blocks/index.ts +51 -15
- package/src/api/impl/beacon/pool/index.ts +22 -2
- package/src/api/impl/beacon/state/utils.ts +2 -1
- package/src/api/impl/events/index.ts +3 -1
- package/src/api/impl/lodestar/index.ts +1 -1
- package/src/api/impl/validator/index.ts +285 -49
- package/src/api/impl/validator/utils.ts +1 -1
- package/src/api/rest/base.ts +7 -0
- package/src/chain/archiveStore/archiveStore.ts +1 -1
- package/src/chain/blocks/importExecutionPayload.ts +12 -11
- package/src/chain/blocks/index.ts +18 -6
- package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +8 -2
- package/src/chain/blocks/payloadEnvelopeInput/types.ts +17 -4
- package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +25 -16
- package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +1 -9
- package/src/chain/bls/index.ts +1 -1
- package/src/chain/bls/interface.ts +7 -3
- package/src/chain/bls/multithread/index.ts +148 -120
- package/src/chain/bls/multithread/jobItem.ts +12 -82
- package/src/chain/bls/multithread/types.ts +33 -8
- package/src/chain/bls/multithread/utils.ts +11 -0
- package/src/chain/bls/multithread/worker.ts +85 -27
- package/src/chain/bls/singleThread.ts +11 -55
- package/src/chain/bls/utils.ts +23 -24
- package/src/chain/chain.ts +23 -6
- package/src/chain/errors/blockError.ts +8 -2
- package/src/chain/forkChoice/index.ts +4 -0
- package/src/chain/interface.ts +6 -1
- package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
- package/src/chain/opPools/attestationPool.ts +1 -1
- package/src/chain/opPools/deferredVoluntaryExitPool.ts +65 -0
- package/src/chain/opPools/executionPayloadBidPool.ts +13 -7
- package/src/chain/opPools/index.ts +2 -1
- package/src/chain/opPools/payloadAttestationPool.ts +3 -3
- package/src/chain/opPools/syncCommitteeMessagePool.ts +1 -1
- package/src/chain/opPools/syncContributionAndProofPool.ts +1 -1
- package/src/chain/opPools/utils.ts +1 -1
- package/src/chain/prepareNextSlot.ts +23 -5
- package/src/chain/produceBlock/produceBlockBody.ts +1 -1
- package/src/chain/regen/interface.ts +5 -2
- package/src/chain/regen/queued.ts +5 -5
- package/src/chain/seenCache/seenAttesters.ts +31 -5
- package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +143 -14
- package/src/chain/stateCache/fifoBlockStateCache.ts +8 -1
- package/src/chain/stateCache/persistentCheckpointsCache.ts +133 -8
- package/src/chain/stateCache/types.ts +3 -3
- package/src/chain/validation/attestation.ts +1 -7
- package/src/chain/validation/attesterSlashing.ts +1 -8
- package/src/chain/validation/executionPayloadBid.ts +155 -6
- package/src/chain/validation/executionPayloadEnvelope.ts +0 -1
- package/src/chain/validation/payloadAttestationMessage.ts +6 -17
- package/src/chain/validation/proposerPreferences.ts +3 -3
- package/src/chain/validation/proposerSlashing.ts +1 -1
- package/src/chain/validation/voluntaryExit.ts +59 -2
- package/src/execution/builder/apiClient.ts +244 -0
- package/src/execution/builder/validateBid.ts +166 -0
- package/src/metrics/metrics/lodestar.ts +162 -58
- package/src/network/gossip/topic.ts +38 -0
- package/src/network/network.ts +29 -54
- package/src/network/processor/constants.ts +6 -0
- package/src/network/processor/gossipHandlers.ts +6 -2
- package/src/network/processor/gossipQueues/indexed.ts +0 -1
- package/src/network/processor/index.ts +53 -21
- package/src/network/util.ts +0 -5
- package/src/node/deferredVoluntaryExitPublisher.ts +54 -0
- package/src/node/nodejs.ts +10 -1
- package/src/sync/range/batch.ts +83 -28
- package/src/sync/range/chain.ts +26 -11
- package/src/sync/types.ts +33 -0
- package/src/sync/unknownBlock.ts +167 -73
- package/src/sync/utils/downloadByRange.ts +21 -12
- package/src/sync/utils/downloadByRoot.ts +3 -1
- package/lib/chain/bls/maybeBatch.d.ts +0 -12
- package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
- package/lib/chain/bls/maybeBatch.js +0 -35
- package/lib/chain/bls/maybeBatch.js.map +0 -1
- package/src/chain/bls/maybeBatch.ts +0 -45
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { MAX_EXECUTION_PAYMENT, PAYLOAD_BUILDER_VERSION } from "@lodestar/params";
|
|
2
|
+
import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getExecutionPayloadBidSigningRoot, isActiveBuilder, isGasLimitTargetCompatible, isStatePostGloas, } from "@lodestar/state-transition";
|
|
3
|
+
import { bigIntMin, byteArrayEquals, prettyGweiToEth, toHex, toRootHex } from "@lodestar/utils";
|
|
4
|
+
import { RegenCaller } from "../../chain/regen/index.js";
|
|
5
|
+
import { getShufflingDependentRoot } from "../../util/dependentRoot.js";
|
|
6
|
+
/** Return the counted bid payment in Gwei, saturated at uint64 max. */
|
|
7
|
+
export function getBuilderBidTotalGwei(bid, maxExecutionPayment) {
|
|
8
|
+
return bigIntMin(MAX_EXECUTION_PAYMENT, BigInt(bid.value) + bigIntMin(bid.executionPayment, maxExecutionPayment));
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Validate a bid received from a builder over the builder API in response to a bid request
|
|
12
|
+
* made during block production. Unlike gossip validation, the bid must match the requested
|
|
13
|
+
* slot and parent exactly, may carry a non-zero `executionPayment` which is counted at most at
|
|
14
|
+
* the entry's `maxExecutionPayment`, and is not subject to gossip anti-spam rules.
|
|
15
|
+
*
|
|
16
|
+
* Throws with a description of the failure, the caller drops the bid.
|
|
17
|
+
*/
|
|
18
|
+
export async function validateBuilderApiExecutionPayloadBid(chain, signedExecutionPayloadBid, request) {
|
|
19
|
+
const bid = signedExecutionPayloadBid.message;
|
|
20
|
+
const { slot, parentBlock, parentBlockHash, parentBlockRoot, entry } = request;
|
|
21
|
+
if (bid.slot !== slot) {
|
|
22
|
+
throw Error(`Bid slot=${bid.slot} does not match requested slot=${slot}`);
|
|
23
|
+
}
|
|
24
|
+
const bidParentBlockHash = toRootHex(bid.parentBlockHash);
|
|
25
|
+
const bidParentBlockRoot = toRootHex(bid.parentBlockRoot);
|
|
26
|
+
if (bidParentBlockHash !== parentBlockHash || bidParentBlockRoot !== parentBlockRoot) {
|
|
27
|
+
throw Error(`Bid parent parentBlockHash=${bidParentBlockHash} parentBlockRoot=${bidParentBlockRoot} does not match ` +
|
|
28
|
+
`requested parentBlockHash=${parentBlockHash} parentBlockRoot=${parentBlockRoot}`);
|
|
29
|
+
}
|
|
30
|
+
const totalPayment = getBuilderBidTotalGwei(bid, entry.maxExecutionPayment);
|
|
31
|
+
if (totalPayment < entry.minBid) {
|
|
32
|
+
throw Error(`Bid total payment=${prettyGweiToEth(totalPayment)} ` +
|
|
33
|
+
`(value=${prettyGweiToEth(bid.value)} ` +
|
|
34
|
+
`executionPayment=${prettyGweiToEth(bid.executionPayment)}) ` +
|
|
35
|
+
`is below minBid=${prettyGweiToEth(entry.minBid)}`);
|
|
36
|
+
}
|
|
37
|
+
const state = await chain.regen
|
|
38
|
+
.getBlockSlotState(parentBlock, slot, { dontTransferCache: true }, RegenCaller.validateGossipExecutionPayloadBid)
|
|
39
|
+
.catch((e) => {
|
|
40
|
+
throw Error(`Unable to regenerate state to validate bid: ${e.message}`);
|
|
41
|
+
});
|
|
42
|
+
if (!isStatePostGloas(state)) {
|
|
43
|
+
throw Error(`Expected gloas+ state for execution payload bid validation, got fork=${state.forkName}`);
|
|
44
|
+
}
|
|
45
|
+
if (bid.builderIndex >= state.getBuildersLength()) {
|
|
46
|
+
throw Error(`Bid builderIndex=${bid.builderIndex} is out of bounds`);
|
|
47
|
+
}
|
|
48
|
+
const builder = state.getBuilder(bid.builderIndex);
|
|
49
|
+
if (!isActiveBuilder(builder, state.finalizedCheckpoint.epoch)) {
|
|
50
|
+
throw Error(`Bid builderIndex=${bid.builderIndex} is not an active builder`);
|
|
51
|
+
}
|
|
52
|
+
if (builder.version !== PAYLOAD_BUILDER_VERSION) {
|
|
53
|
+
throw Error(`Invalid builder version=${builder.version} expected=${PAYLOAD_BUILDER_VERSION}`);
|
|
54
|
+
}
|
|
55
|
+
// A bid not signed by one of the builder pubkeys the entry accepts bids from must not be accepted
|
|
56
|
+
if (entry.builderPubkeys.length > 0 &&
|
|
57
|
+
!entry.builderPubkeys.some((pubkey) => byteArrayEquals(pubkey, builder.pubkey))) {
|
|
58
|
+
throw Error(`Bid builder pubkey=${toHex(builder.pubkey)} is not in the entry's ` +
|
|
59
|
+
`builderPubkeys=${entry.builderPubkeys.map(toHex).join(",")}`);
|
|
60
|
+
}
|
|
61
|
+
const blobKzgCommitmentsLen = bid.blobKzgCommitments.length;
|
|
62
|
+
const maxBlobsPerBlock = chain.config.getMaxBlobsPerBlock(computeEpochAtSlot(bid.slot));
|
|
63
|
+
if (blobKzgCommitmentsLen > maxBlobsPerBlock) {
|
|
64
|
+
throw Error(`Bid has too many KZG commitments len=${blobKzgCommitmentsLen} limit=${maxBlobsPerBlock}`);
|
|
65
|
+
}
|
|
66
|
+
// The coverage check only applies to the staked collateral payment, a pure execution
|
|
67
|
+
// layer payment bid has nothing to cover on-chain
|
|
68
|
+
if (bid.value > 0 && !state.canBuilderCoverBid(bid.builderIndex, bid.value)) {
|
|
69
|
+
throw Error(`Builder cannot cover bid value=${prettyGweiToEth(bid.value)} ` + `balance=${prettyGweiToEth(builder.balance)}`);
|
|
70
|
+
}
|
|
71
|
+
const randaoMix = state.getRandaoMix(computeEpochAtSlot(state.slot));
|
|
72
|
+
if (!byteArrayEquals(bid.prevRandao, randaoMix)) {
|
|
73
|
+
throw Error(`Invalid bid prevRandao=${toHex(bid.prevRandao)} expected=${toHex(randaoMix)}`);
|
|
74
|
+
}
|
|
75
|
+
// The builder must honor the proposer preferences it learned over gossip
|
|
76
|
+
const bidEpoch = computeEpochAtSlot(bid.slot);
|
|
77
|
+
const dependentRootHex = (() => {
|
|
78
|
+
try {
|
|
79
|
+
return getShufflingDependentRoot(chain.forkChoice, bidEpoch, computeEpochAtSlot(parentBlock.slot), parentBlock);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
})();
|
|
85
|
+
if (dependentRootHex === null) {
|
|
86
|
+
throw Error(`Unable to resolve proposer preferences dependent root for bid slot=${bid.slot}`);
|
|
87
|
+
}
|
|
88
|
+
const proposerPreferences = chain.proposerPreferencesPool.get(bid.slot, dependentRootHex);
|
|
89
|
+
if (proposerPreferences === null) {
|
|
90
|
+
throw Error(`No proposer preferences found for bid slot=${bid.slot} dependentRoot=${dependentRootHex}`);
|
|
91
|
+
}
|
|
92
|
+
if (!byteArrayEquals(bid.feeRecipient, proposerPreferences.message.feeRecipient)) {
|
|
93
|
+
throw Error(`Bid feeRecipient=${toHex(bid.feeRecipient)} does not match ` +
|
|
94
|
+
`proposer preferences feeRecipient=${toHex(proposerPreferences.message.feeRecipient)}`);
|
|
95
|
+
}
|
|
96
|
+
const parentPayloadVariant = chain.forkChoice.getBlockHexAndBlockHash(bidParentBlockRoot, bidParentBlockHash);
|
|
97
|
+
if (parentPayloadVariant === null || parentPayloadVariant.executionPayloadBlockHash === null) {
|
|
98
|
+
throw Error(`Unable to resolve parent payload gas limit for bid parentBlockHash=${bidParentBlockHash}`);
|
|
99
|
+
}
|
|
100
|
+
const parentGasLimit = BigInt(parentPayloadVariant.executionPayloadGasLimit);
|
|
101
|
+
const targetGasLimit = proposerPreferences.message.targetGasLimit;
|
|
102
|
+
if (!isGasLimitTargetCompatible(parentGasLimit, bid.gasLimit, targetGasLimit)) {
|
|
103
|
+
throw Error(`Bid gasLimit=${bid.gasLimit} is not compatible with ` +
|
|
104
|
+
`parentGasLimit=${parentGasLimit} targetGasLimit=${targetGasLimit}`);
|
|
105
|
+
}
|
|
106
|
+
const signatureSet = createSingleSignatureSetFromComponents(builder.pubkey, getExecutionPayloadBidSigningRoot(chain.config, bid), signedExecutionPayloadBid.signature);
|
|
107
|
+
if (!(await chain.bls.verifySignatureSets([signatureSet]))) {
|
|
108
|
+
throw Error(`Invalid bid signature builderIndex=${bid.builderIndex}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=validateBid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateBid.js","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { ArchiveStoreTask } from "../../chain/archiveStore/archiveStore.js";
|
|
|
4
4
|
import { FrequencyStateArchiveStep } from "../../chain/archiveStore/strategies/frequencyStateArchiveStrategy.js";
|
|
5
5
|
import { BlockInputSource } from "../../chain/blocks/blockInput/index.js";
|
|
6
6
|
import { PayloadErrorCode } from "../../chain/blocks/importExecutionPayload.js";
|
|
7
|
-
import { PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/index.js";
|
|
7
|
+
import { PayloadEnvelopeInputPruneReason, PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/index.js";
|
|
8
8
|
import { JobQueueItemType } from "../../chain/bls/index.js";
|
|
9
9
|
import { AttestationErrorCode, BlockErrorCode } from "../../chain/errors/index.js";
|
|
10
10
|
import { type InvalidAttestationData, ScannedSlotsTerminationReason } from "../../chain/opPools/aggregatedAttestationPool.js";
|
|
@@ -18,7 +18,7 @@ import { ExecutionPayloadStatus } from "../../execution/index.js";
|
|
|
18
18
|
import { GossipType } from "../../network/index.js";
|
|
19
19
|
import { CannotAcceptWorkReason, ReprocessRejectReason } from "../../network/processor/index.js";
|
|
20
20
|
import { BackfillSyncMethod } from "../../sync/backfill/backfill.js";
|
|
21
|
-
import { PendingBlockType } from "../../sync/types.js";
|
|
21
|
+
import { DroppedItemReason, PendingBlockType } from "../../sync/types.js";
|
|
22
22
|
import { PeerSyncType, RangeSyncType } from "../../sync/utils/remoteSyncType.js";
|
|
23
23
|
import { AllocSource } from "../../util/bufferPool.js";
|
|
24
24
|
import { DataColumnReconstructionCode } from "../../util/dataColumns.js";
|
|
@@ -26,6 +26,9 @@ import { DataColumnEngineResult } from "../../util/execution.js";
|
|
|
26
26
|
import { LodestarMetadata } from "../options.js";
|
|
27
27
|
import { RegistryMetricCreator } from "../utils/registryMetricCreator.js";
|
|
28
28
|
export type LodestarMetrics = ReturnType<typeof createLodestarMetrics>;
|
|
29
|
+
type BlsJobOutcome = "valid" | "invalid" | "prepError" | "verifyError" | "workerError";
|
|
30
|
+
type BlsBufferFlushReason = "size" | "timeout";
|
|
31
|
+
type BlsVerificationCallOperation = "batch" | "single" | "fallback" | "same_message";
|
|
29
32
|
/**
|
|
30
33
|
* Extra Lodestar custom metrics
|
|
31
34
|
*/
|
|
@@ -50,7 +53,9 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
50
53
|
topic: GossipType;
|
|
51
54
|
}>;
|
|
52
55
|
keyAge: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
53
|
-
queueTime: import("@lodestar/utils").Histogram<
|
|
56
|
+
queueTime: import("@lodestar/utils").Histogram<{
|
|
57
|
+
topic: GossipType;
|
|
58
|
+
}>;
|
|
54
59
|
};
|
|
55
60
|
networkProcessor: {
|
|
56
61
|
gossipValidationAccept: import("@lodestar/utils").GaugeExtra<{
|
|
@@ -153,40 +158,56 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
153
158
|
caller: RegenCaller;
|
|
154
159
|
}>;
|
|
155
160
|
bls: {
|
|
156
|
-
aggregatedPubkeys: import("@lodestar/utils").
|
|
161
|
+
aggregatedPubkeys: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
162
|
+
pubkeyCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
163
|
+
pubkeyCacheCapacity: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
157
164
|
};
|
|
158
165
|
blsThreadPool: {
|
|
159
|
-
jobsWorkerTime: import("@lodestar/utils").
|
|
166
|
+
jobsWorkerTime: import("@lodestar/utils").Counter<{
|
|
160
167
|
workerId: number;
|
|
161
168
|
}>;
|
|
162
|
-
successJobsSignatureSetsCount: import("@lodestar/utils").
|
|
163
|
-
|
|
169
|
+
successJobsSignatureSetsCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
170
|
+
errorJobsSignatureSetsCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
171
|
+
jobWaitTime: import("@lodestar/utils").Histogram<{
|
|
172
|
+
type: JobQueueItemType;
|
|
173
|
+
}>;
|
|
174
|
+
jobDuration: import("@lodestar/utils").Histogram<{
|
|
164
175
|
type: JobQueueItemType;
|
|
165
176
|
}>;
|
|
166
|
-
|
|
167
|
-
|
|
177
|
+
jobResults: import("@lodestar/utils").Counter<{
|
|
178
|
+
type: JobQueueItemType;
|
|
179
|
+
outcome: BlsJobOutcome;
|
|
180
|
+
}>;
|
|
168
181
|
queueLength: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
182
|
+
bufferedQueueLength: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
169
183
|
workersBusy: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
170
|
-
totalJobsGroupsStarted: import("@lodestar/utils").
|
|
171
|
-
totalJobsStarted: import("@lodestar/utils").
|
|
184
|
+
totalJobsGroupsStarted: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
185
|
+
totalJobsStarted: import("@lodestar/utils").Counter<{
|
|
172
186
|
type: JobQueueItemType;
|
|
173
187
|
}>;
|
|
174
|
-
totalSigSetsStarted: import("@lodestar/utils").
|
|
188
|
+
totalSigSetsStarted: import("@lodestar/utils").Counter<{
|
|
175
189
|
type: JobQueueItemType;
|
|
176
190
|
}>;
|
|
177
|
-
batchRetries: import("@lodestar/utils").
|
|
178
|
-
batchSigsSuccess: import("@lodestar/utils").
|
|
179
|
-
|
|
180
|
-
|
|
191
|
+
batchRetries: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
192
|
+
batchSigsSuccess: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
193
|
+
bufferFlushes: import("@lodestar/utils").Counter<{
|
|
194
|
+
reason: BlsBufferFlushReason;
|
|
195
|
+
}>;
|
|
196
|
+
bufferedSignatureSets: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
181
197
|
latencyToWorker: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
182
198
|
latencyFromWorker: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
183
199
|
mainThreadDurationInThreadPool: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
184
200
|
timePerSigSet: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
201
|
+
workRequestPreparationDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
202
|
+
verificationCallDuration: import("@lodestar/utils").Histogram<{
|
|
203
|
+
operation: BlsVerificationCallOperation;
|
|
204
|
+
}>;
|
|
205
|
+
verificationCallSignatureSets: import("@lodestar/utils").Counter<{
|
|
206
|
+
operation: BlsVerificationCallOperation;
|
|
207
|
+
}>;
|
|
208
|
+
totalSigSets: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
209
|
+
prioritizedSigSets: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
210
|
+
batchableSigSets: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
190
211
|
};
|
|
191
212
|
blsSingleThread: {
|
|
192
213
|
singleThreadDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
@@ -249,7 +270,12 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
249
270
|
processedBlocksError: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
250
271
|
downloadedBlocksSuccess: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
251
272
|
downloadedBlocksError: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
252
|
-
removedBlocks: import("@lodestar/utils").GaugeExtra<
|
|
273
|
+
removedBlocks: import("@lodestar/utils").GaugeExtra<{
|
|
274
|
+
reason: DroppedItemReason;
|
|
275
|
+
}>;
|
|
276
|
+
removedPayloads: import("@lodestar/utils").GaugeExtra<{
|
|
277
|
+
reason: DroppedItemReason;
|
|
278
|
+
}>;
|
|
253
279
|
elapsedTimeTillReceived: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
254
280
|
resolveAvailabilitySource: import("@lodestar/utils").GaugeExtra<{
|
|
255
281
|
source: BlockInputSource;
|
|
@@ -494,6 +520,9 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
494
520
|
getAggregateCacheMisses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
495
521
|
};
|
|
496
522
|
attesterSlashingPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
523
|
+
deferredVoluntaryExitPool: {
|
|
524
|
+
size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
525
|
+
};
|
|
497
526
|
proposerSlashingPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
498
527
|
proposerSlashingsProduced: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
499
528
|
voluntaryExitPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
@@ -541,6 +570,7 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
541
570
|
apiInsertOutcome: import("@lodestar/utils").Counter<{
|
|
542
571
|
insertOutcome: InsertOutcome;
|
|
543
572
|
}>;
|
|
573
|
+
apiValidationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
544
574
|
};
|
|
545
575
|
};
|
|
546
576
|
chain: {
|
|
@@ -576,6 +606,12 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
576
606
|
epochSize: import("@lodestar/utils").GaugeExtra<{
|
|
577
607
|
type: CacheItemType;
|
|
578
608
|
}>;
|
|
609
|
+
persistentTierEpochs: import("@lodestar/utils").GaugeExtra<{
|
|
610
|
+
tier: number;
|
|
611
|
+
}>;
|
|
612
|
+
persistentTierStates: import("@lodestar/utils").GaugeExtra<{
|
|
613
|
+
tier: number;
|
|
614
|
+
}>;
|
|
579
615
|
reads: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
|
|
580
616
|
secondsSinceLastRead: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
|
|
581
617
|
stateClonedCount: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
@@ -646,7 +682,12 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
646
682
|
payloadEnvelopeInput: {
|
|
647
683
|
count: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
648
684
|
serializedObjectRefs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
649
|
-
created: import("@lodestar/utils").Counter<
|
|
685
|
+
created: import("@lodestar/utils").Counter<{
|
|
686
|
+
source: PayloadEnvelopeInputSource;
|
|
687
|
+
}>;
|
|
688
|
+
pruned: import("@lodestar/utils").Counter<{
|
|
689
|
+
reason: PayloadEnvelopeInputPruneReason;
|
|
690
|
+
}>;
|
|
650
691
|
};
|
|
651
692
|
};
|
|
652
693
|
processFinalizedCheckpoint: {
|
|
@@ -700,6 +741,7 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
700
741
|
}>;
|
|
701
742
|
hits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
|
|
702
743
|
waste: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
744
|
+
predictedReorg: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
703
745
|
duration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
704
746
|
};
|
|
705
747
|
builderDepositPreVerify: {
|
|
@@ -819,6 +861,18 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
819
861
|
baseUrl: string;
|
|
820
862
|
}>;
|
|
821
863
|
};
|
|
864
|
+
builderApi: {
|
|
865
|
+
bidRequests: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
866
|
+
bidRequestErrors: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
867
|
+
bidsReceived: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
868
|
+
bidsDiscarded: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
|
|
869
|
+
blockSubmissions: import("@lodestar/utils").Counter<{
|
|
870
|
+
status: "success" | "error";
|
|
871
|
+
}>;
|
|
872
|
+
preferencesForwarded: import("@lodestar/utils").Counter<{
|
|
873
|
+
status: "success" | "error";
|
|
874
|
+
}>;
|
|
875
|
+
};
|
|
822
876
|
db: {
|
|
823
877
|
dbReadReq: import("@lodestar/utils").GaugeExtra<{
|
|
824
878
|
bucket: string;
|
|
@@ -841,4 +895,5 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
|
|
|
841
895
|
pruneKeys: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
|
|
842
896
|
};
|
|
843
897
|
};
|
|
898
|
+
export {};
|
|
844
899
|
//# sourceMappingURL=lodestar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lodestar.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/lodestar.ts"],"names":[],"mappings":"AAAA,+HAA+H;AAC/H,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAC,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAC,gBAAgB,EAAC,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAC,MAAM,8CAA8C,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"lodestar.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/lodestar.ts"],"names":[],"mappings":"AAAA,+HAA+H;AAC/H,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAC,yBAAyB,EAAC,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAC,gBAAgB,EAAC,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAC,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAE,cAAc,EAAC,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,KAAK,sBAAsB,EAC3B,6BAA6B,EAC9B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,8CAA8C,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAC,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,KAAK,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;AACvF,KAAK,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAC;AAC/C,KAAK,4BAA4B,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AAErF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,MAAM;IAqBlB,qBAAqB;QACnB,MAAM;mBAAyB,UAAU;;QAKzC,OAAO;mBAAyB,UAAU;;QAK1C,WAAW;mBAAyB,UAAU;;QAK9C,OAAO;mBAA6B,UAAU;;QAM9C,WAAW;mBAA6B,UAAU;;QAMlD,WAAW;mBAAyB,UAAU;;QAM9C,MAAM;QAKN,SAAS;mBAA6B,UAAU;;;IAQlD,gBAAgB;QACd,sBAAsB;mBAAyB,UAAU;;QAKzD,sBAAsB;mBAAyB,UAAU;;QAKzD,sBAAsB;mBAAyB,UAAU;;QAKzD,qBAAqB;mBAAyB,UAAU;mBAAS,MAAM;;QAKvE,+BAA+B;oBAA0B,oBAAoB;;QAK7E,+BAA+B;oBAA0B,oBAAoB;;QAK7E,gBAAgB;QAIhB,aAAa;QAKb,gBAAgB;oBAA0B,sBAAsB;;;IAOlE,oBAAoB;QAClB,6BAA6B;;IAK/B,0CAA0C;mBAAiC,MAAM;;IAOjF,UAAU;QACR,MAAM;QAIN,WAAW;QAIX,OAAO;QAKP,WAAW;QAKX,WAAW;;IAMb,mBAAmB;QACjB,MAAM;QAIN,WAAW;QAIX,OAAO;QAKP,WAAW;QAKX,WAAW;;IAMb,2BAA2B;QACzB,MAAM;QAIN,WAAW;QAIX,OAAO;QAKP,WAAW;QAKX,WAAW;;IAMb,6BAA6B;QAC3B,MAAM;QAIN,WAAW;QAIX,OAAO;QAKP,WAAW;QAKX,WAAW;;IAMb,qCAAqC;QACnC,MAAM;QAIN,WAAW;QAIX,OAAO;QAKP,WAAW;QAKX,WAAW;;IAMb,wBAAwB;QACtB,MAAM;QAIN,WAAW;QAIX,OAAO;QAMP,WAAW;QAMX,WAAW;;IAMb,OAAO;QACL,YAAY;yBAAmC,MAAM;;QAOrD,QAAQ;yBAA+B,MAAM;;QAK7C,MAAM;yBAA+B,MAAM;;QAM3C,aAAa;QAIb,gBAAgB;QAIhB,mBAAmB;;IAMrB,UAAU;QACR,6BAA6B;QAQ7B,oCAAoC;QAOpC,iCAAiC;;IASnC,MAAM;QACJ,iCAAiC;QAIjC,kCAAkC;;IAQpC,uBAAuB;gBAA0B,WAAW;;IAQ5D,GAAG;QACD,iBAAiB;QAIjB,eAAe;QAIf,mBAAmB;;IAMrB,aAAa;QACX,cAAc;sBAA8B,MAAM;;QAKlD,6BAA6B;QAI7B,2BAA2B;QAI3B,WAAW;kBAA4B,gBAAgB;;QAMvD,WAAW;kBAA4B,gBAAgB;;QAMvD,UAAU;kBAA0B,gBAAgB;qBAAW,aAAa;;QAK5E,WAAW;QAIX,mBAAmB;QAInB,WAAW;QAIX,sBAAsB;QAItB,gBAAgB;kBAA0B,gBAAgB;;QAK1D,mBAAmB;kBAA0B,gBAAgB;;QAM7D,YAAY;QAKZ,gBAAgB;QAIhB,aAAa;oBAA4B,oBAAoB;;QAK7D,qBAAqB;QAMrB,eAAe;QAMf,iBAAiB;QAKjB,8BAA8B;QAM9B,aAAa;QAMb,8BAA8B;QAM9B,wBAAwB;uBAAiC,4BAA4B;;QAOrF,6BAA6B;uBAA+B,4BAA4B;;QAKxF,YAAY;QAIZ,kBAAkB;QAIlB,gBAAgB;;IAOlB,eAAe;QACb,oBAAoB;QAKpB,aAAa;;IAUf,UAAU;IAIV,mBAAmB;kBAA4B,YAAY;;IAK3D,6BAA6B;gBAA0B,MAAM;;IAM7D,SAAS;QACP,gBAAgB;sBAA4B,aAAa;mBAAS,MAAM;;QAKxE,UAAU;sBAA4B,aAAa;;QAKnD,eAAe;sBAAgC,aAAa;;QAM5D,mCAAmC;QAInC,aAAa;yBAA+B,MAAM;;QAKlD,kBAAkB;yBAA+B,MAAM;;QAKvD,eAAe;YACb,OAAO;YAIP,KAAK;sBAAwB,MAAM;wBAAU,MAAM;;YAKnD,IAAI;sBAAwB,MAAM;wBAAU,MAAM;;;;IAQtD,cAAc;QACZ,0BAA0B;oBAA0B,MAAM;;QAK1D,QAAQ;kBAAwB,gBAAgB;;QAKhD,MAAM;oBAA0B,gBAAgB;;QAKhD,aAAa;oBAA4B,gBAAgB;;QAKzD,aAAa;QAIb,eAAe;QAIf,cAAc;QAId,sBAAsB;QAItB,oBAAoB;QAIpB,uBAAuB;QAIvB,qBAAqB;QAIrB,aAAa;oBAA0B,iBAAiB;;QAKxD,eAAe;oBAA0B,iBAAiB;;QAK1D,uBAAuB;QAKvB,yBAAyB;oBAA0B,gBAAgB;;QAKnE,UAAU;QAMV,YAAY;oBAA8B,MAAM;;QAMhD,UAAU;oBAA0B,MAAM;;QAK1C,cAAc;YACZ,OAAO;YAIP,KAAK;sBAAwB,MAAM;wBAAU,MAAM;;YAKnD,IAAI;sBAAwB,MAAM;wBAAU,MAAM;;;QAMpD,YAAY;YACV,cAAc;YAId,uBAAuB;YAIvB,mBAAmB;;;IAQvB,mBAAmB;QACjB,iBAAiB;QAIjB,uBAAuB;;IAOzB,iBAAiB;QACf,iBAAiB;oBAA0B,WAAW;;QAKtD,oCAAoC;oBAA0B,WAAW;;QAKzE,yBAAyB;oBAA8B,WAAW;;QAMlE,iBAAiB;oBAA0B,WAAW;;QAKtD,kBAAkB;oBAA0B,WAAW;;QAKvD,sBAAsB;oBAA0B,WAAW;;QAK3D,uBAAuB;oBAA0B,WAAW;;QAK5D,0BAA0B;oBAA8B,WAAW;;QAMnE,yBAAyB;QAKzB,wBAAwB;;IAO1B,WAAW;QACT,uBAAuB;oBAA8B,QAAQ;;QAM7D,wBAAwB;QAMxB,gBAAgB;YACd,gBAAgB;YAKhB,cAAc;;QAMhB,eAAe;YACb,gBAAgB;YAKhB,cAAc;;QAMhB,qBAAqB;YACnB,gBAAgB;YAKhB,cAAc;;QAMhB,gBAAgB;YACd,gBAAgB;YAKhB,cAAc;;QAMhB,WAAW;YACT,gBAAgB;YAKhB,cAAc;;QAOhB,+BAA+B;sBAAgC,MAAM;;QAMrE,2BAA2B;QAK3B,8BAA8B;sBAAgC,MAAM;;QAOpE,YAAY;QAMZ,kBAAkB;mBAAyB,cAAc,GAAG,iBAAiB;;;IAM/E,UAAU;QACR,gBAAgB;QAKhB,cAAc;QAKd,mBAAmB;;IAMrB,8BAA8B;QAC5B,uBAAuB;oBAA8B,QAAQ;;QAM7D,oBAAoB;mBAAyB,gBAAgB,GAAG,mBAAmB;;;IAMrF,yBAAyB;QACvB,uBAAuB;oBAA8B,QAAQ;;;IAO/D,+BAA+B;QAC7B,uBAAuB;oBAA8B,QAAQ;;;IAQ/D,mBAAmB;QACjB,kBAAkB;QAIlB,kBAAkB;;IAMpB,yBAAyB;QACvB,2BAA2B;QAI3B,oBAAoB;oBAA4B,4BAA4B;;;IAM9E,WAAW;QACT,YAAY;QAIZ,QAAQ;oBAA0B,gBAAgB;;QAKlD,uBAAuB;2BAAqC,MAAM;;QAMlE,kBAAkB;QAMlB,qBAAqB;QAIrB,sBAAsB;oBAA4B,sBAAsB;;;IAM1E,WAAW;QACT,iCAAiC;QAIjC,mCAAmC;QAInC,yBAAyB;QAKzB,kBAAkB;QAIlB,QAAQ;oBAA0B,gBAAgB;;QAKlD,aAAa;yBAA+B,gBAAgB;;QAK5D,oBAAoB;oBAA4B,gBAAgB;;;IAMlE,aAAa;QACX,uBAAuB;oBAA8B,0BAA0B;;QAM/E,eAAe;oBAA0B,0BAA0B;;;IAMrE,4BAA4B;gBAA0B,sBAAsB;;IAK5E,kCAAkC;gBAA0B,sBAAsB;;IAKlF,YAAY;QACV,kBAAkB;QAIlB,eAAe;QAIf,WAAW;oBAA0B,kBAAkB;;QAKvD,MAAM;QAIN,MAAM;;IAMR,MAAM;QACJ,yBAAyB;YACvB,IAAI;YAIJ,UAAU;YAIV,cAAc;YAId,iBAAiB;YAKjB,2BAA2B;YAI3B,wBAAwB;YAKxB,mBAAmB;+BAAmC,aAAa;;YAKnE,gBAAgB;+BAAmC,aAAa;;YAKhE,kBAAkB;gBAChB,cAAc;2BAAyB,MAAM;;gBAK7C,cAAc;2BAAyB,MAAM;;gBAK7C,gBAAgB;2BAAyB,MAAM;;gBAK/C,gBAAgB;2BAAyB,MAAM;;gBAK/C,qBAAqB;2BAAyB,MAAM;;gBAKpD,iBAAiB;2BAAyB,MAAM;;gBAKhD,YAAY;4BAA0B,6BAA6B;;gBAKnE,mBAAmB;uCAAqC,MAAM;;gBAK9D,oBAAoB;uCAAqC,MAAM;;gBAK/D,SAAS;gBAIT,mBAAmB;gBAInB,oBAAoB;gBAIpB,sBAAsB;4BAA0B,sBAAsB;;gBAKtE,cAAc;;;QAMlB,eAAe;YACb,IAAI;YAIJ,mBAAmB;+BAAmC,aAAa;;YAKnE,gBAAgB;+BAAmC,aAAa;;YAKhE,uBAAuB;;QAKzB,wBAAwB;QAIxB,yBAAyB;YACvB,IAAI;;QAKN,wBAAwB;QAIxB,yBAAyB;QAIzB,qBAAqB;QAIrB,4BAA4B;QAI5B,4BAA4B;QAI5B,qCAAqC;2BAAmC,aAAa;;QAKrF,4BAA4B;YAC1B,IAAI;YAIJ,mBAAmB;+BAAmC,aAAa;;YAKnE,gBAAgB;+BAAmC,aAAa;;YAKhE,iBAAiB;YAIjB,kBAAkB;uBAAyB,MAAM;;YAKjD,uBAAuB;uBAAyB,MAAM;;YAKtD,iBAAiB;YAIjB,mBAAmB;YAInB,wBAAwB;YAIxB,wBAAwB;;QAK1B,sBAAsB;YACpB,IAAI;YAIJ,qBAAqB;YAIrB,mBAAmB;+BAAmC,aAAa;;YAKnE,gBAAgB;+BAAmC,aAAa;;YAKhE,iCAAiC;;QAKnC,uBAAuB;YACrB,IAAI;YAIJ,mBAAmB;+BAAmC,aAAa;;YAKnE,gBAAgB;+BAAmC,aAAa;;YAKhE,iBAAiB;;;IAQrB,KAAK;QACH,iBAAiB;;IAMnB,uBAAuB;IAQvB,UAAU;QACR,OAAO;QAIP,IAAI;QAIJ,IAAI;QAIJ,IAAI;QAIJ,KAAK;QAIL,oBAAoB;QAIpB,gBAAgB;;IAOlB,UAAU;QACR,MAAM;QAIN,IAAI;oBAA4B,WAAW;;QAK3C,MAAM;oBAA4B,WAAW;;QAK7C,KAAK;;IAMP,YAAY;QACV,OAAO;QAIP,IAAI;QAIJ,IAAI;QAIJ,IAAI;kBAAwB,aAAa;;QAKzC,SAAS;kBAAwB,aAAa;;QAK9C,oBAAoB;kBAAwB,MAAM;;QAKlD,oBAAoB;kBAAwB,MAAM;;QAKlD,KAAK;QAIL,oBAAoB;QAIpB,gBAAgB;QAKhB,gBAAgB;QAKhB,yBAAyB;QAIzB,uBAAuB;QAKvB,sCAAsC;QAKtC,wCAAwC;QAIxC,6BAA6B;QAI7B,mBAAmB;QAKnB,oBAAoB;QAKpB,sBAAsB;QAKtB,qBAAqB;QAKrB,yBAAyB;;IAM3B,aAAa;QACX,QAAQ;QAIR,MAAM;QAIN,kBAAkB;qBAA6B,MAAM;;;IAOvD,cAAc;QACZ,IAAI;QAIJ,kBAAkB;QAIlB,GAAG;QAIH,IAAI;QAIJ,yBAAyB;QAIzB,2BAA2B;QAI3B,8BAA8B;;IAOhC,SAAS;QACP,sBAAsB;YACpB,kBAAkB;YAKlB,YAAY;YAIZ,WAAW;;QAKb,sBAAsB;YACpB,kBAAkB;YAKlB,YAAY;YAIZ,WAAW;;QAKb,eAAe;YACb,SAAS;YAIT,YAAY;YAIZ,GAAG;YAIH,IAAI;YAIJ,MAAM;wBAA0B,YAAY;;;QAM9C,UAAU;YACR,eAAe;YAIf,oBAAoB;YAIpB,mBAAmB;wBAA4B,gBAAgB;;YAK/D,kBAAkB;wBAA4B,gBAAgB;;YAK9D,oBAAoB;wBAA4B,gBAAgB;;YAKhE,cAAc;YAId,aAAa;YAIb,eAAe;;QAKjB,oBAAoB;YAClB,KAAK;YAIL,oBAAoB;YAIpB,OAAO;wBAA4B,0BAA0B;;YAK7D,MAAM;wBAA4B,+BAA+B;;;;IAQrE,0BAA0B;QACxB,cAAc;oBAA8B,gBAAgB;;QAM5D,qBAAqB;kBAA4B,yBAAyB;;;IAQ5E,gBAAgB;oBAA8B,WAAW;gBAAU,WAAW;;IAK9E,kBAAkB;oBAA8B,WAAW;gBAAU,WAAW;;IAKhF,mBAAmB;oBAAkC,WAAW;gBAAU,WAAW;;IAMrF,kBAAkB;oBAA8B,WAAW;gBAAU,WAAW;;IAKhF,oBAAoB;IAKpB,uBAAuB;IAKvB,uBAAuB;IAKvB,0BAA0B;IAI1B,sBAAsB;gBAA8B,WAAW;;IAQ/D,aAAa;QACX,UAAU;oBAA8B,WAAW;;QAMnD,YAAY;oBAA8B,WAAW;;QAMrD,UAAU;oBAA8B,WAAW;;QAMnD,eAAe;oBAA8B,WAAW;;;IAS1D,6BAA6B;QAC3B,KAAK;oBAA4B,MAAM;;QAKvC,IAAI;QAIJ,KAAK;QAIL,cAAc;QAId,QAAQ;;IAQV,uBAAuB;QACrB,QAAQ;QAKR,eAAe;QAIf,cAAc;QAId,eAAe;QAIf,cAAc;QAId,eAAe;kBAA0B,SAAS,GAAG,WAAW;;QAKhE,iBAAiB;kBAA0B,SAAS,GAAG,WAAW;;;IAQpE,wBAAwB;QACtB,KAAK;QAIL,OAAO;QAIP,oBAAoB;QAIpB,MAAM;oBAA0B,eAAe;;QAK/C,mBAAmB;oBAA0B,eAAe;;;IAQ9D,2BAA2B;QACzB,KAAK;mBAAyB,UAAU;;QAKxC,YAAY;QAIZ,OAAO;mBAAyB,UAAU;;QAK1C,oBAAoB;mBAAyB,UAAU;;QAMvD,MAAM;oBAA0B,qBAAqB;mBAAS,UAAU;;QAKxE,mBAAmB;oBAA0B,qBAAqB;mBAAS,UAAU;;;IAQvF,6BAA6B;QAC3B,KAAK;mBAAyB,UAAU;;QAKxC,YAAY;QAIZ,OAAO;mBAAyB,UAAU;;QAK1C,oBAAoB;mBAAyB,UAAU;;QAMvD,MAAM;oBAA0B,qBAAqB;mBAAS,UAAU;;QAKxE,mBAAmB;oBAA0B,qBAAqB;mBAAS,UAAU;;;IAOvF,iBAAiB;QACf,eAAe;mBAAyB,MAAM;;QAK9C,WAAW;kBAAwB,MAAM;;QAKzC,eAAe;QAIf,qBAAqB;QAIrB,sBAAsB;QAItB,uBAAuB;;IAMzB,0BAA0B;QACxB,WAAW;qBAA+B,MAAM;;QAOhD,UAAU;qBAA+B,MAAM;;QAO/C,aAAa;qBAA2B,MAAM;;QAK9C,UAAU;qBAA2B,MAAM;;QAK3C,sBAAsB;qBAA2B,MAAM;;QAKvD,cAAc;qBAA2B,MAAM;;QAK/C,eAAe;;IAMjB,iBAAiB;QACf,WAAW;qBAA+B,MAAM;;QAOhD,UAAU;qBAA+B,MAAM;;QAO/C,aAAa;qBAA2B,MAAM;qBAAW,MAAM;;QAK/D,kBAAkB;qBAA2B,MAAM;qBAAW,MAAM;;QAMpE,SAAS;sBAA4B,MAAM;qBAAW,MAAM;;;IAO9D,UAAU;QACR,WAAW;QAIX,gBAAgB;QAIhB,YAAY;QAIZ,aAAa;QAIb,gBAAgB;oBAA4B,SAAS,GAAG,OAAO;;QAK/D,oBAAoB;oBAA4B,SAAS,GAAG,OAAO;;;IAOrE,EAAE;QACA,SAAS;oBAA0B,MAAM;;QAKzC,WAAW;oBAA0B,MAAM;;QAK3C,UAAU;oBAA0B,MAAM;;QAK1C,YAAY;oBAA0B,MAAM;;QAK5C,WAAW;QAIX,qBAAqB;;IAOvB,YAAY;QACV,UAAU;QAKV,SAAS;QAMT,SAAS;;EAOd"}
|