UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

24 lines (22 loc) 925 B
import {BeaconConfig} from "@lodestar/config"; import {DOMAIN_CONTRIBUTION_AND_PROOF} from "@lodestar/params"; import {IBeaconStateView, ISignatureSet, SignatureSetType, computeSigningRoot} from "@lodestar/state-transition"; import {altair, ssz} from "@lodestar/types"; export function getContributionAndProofSignatureSet( config: BeaconConfig, state: IBeaconStateView, signedContributionAndProof: altair.SignedContributionAndProof ): ISignatureSet { const domain = config.getDomain( state.slot, DOMAIN_CONTRIBUTION_AND_PROOF, signedContributionAndProof.message.contribution.slot ); const signingData = signedContributionAndProof.message; return { type: SignatureSetType.indexed, index: signedContributionAndProof.message.aggregatorIndex, signingRoot: computeSigningRoot(ssz.altair.ContributionAndProof, signingData, domain), signature: signedContributionAndProof.signature, }; }