@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
19 lines • 956 B
JavaScript
import { DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF } from "@lodestar/params";
import { SignatureSetType, computeSigningRoot, } from "@lodestar/state-transition";
import { ssz } from "@lodestar/types";
export function getSyncCommitteeSelectionProofSignatureSet(state, contributionAndProof) {
const { epochCtx, config } = state;
const slot = contributionAndProof.contribution.slot;
const domain = config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF, slot);
const signingData = {
slot,
subcommitteeIndex: contributionAndProof.contribution.subcommitteeIndex,
};
return {
type: SignatureSetType.single,
pubkey: epochCtx.index2pubkey[contributionAndProof.aggregatorIndex],
signingRoot: computeSigningRoot(ssz.altair.SyncAggregatorSelectionData, signingData, domain),
signature: contributionAndProof.selectionProof,
};
}
//# sourceMappingURL=syncCommitteeSelectionProof.js.map