UNPKG

@chainsafe/eth2.0-ssz-types

Version:
129 lines (97 loc) 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MerkleTree = exports.FFGData = exports.BeaconBlockHeader = exports.CompactCommittee = exports.DepositData = exports.HistoricalBatch = exports.Eth1Data = exports.PendingAttestation = exports.IndexedAttestation = exports.AttestationDataAndCustodyBit = exports.AttestationData = exports.Crosslink = exports.Validator = exports.Checkpoint = exports.Fork = void 0; var _constants = require("../constants"); /** * @module sszTypes/generators */ const Fork = ssz => ({ fields: [["previousVersion", ssz.Version], ["currentVersion", ssz.Version], ["epoch", ssz.Epoch]] }); exports.Fork = Fork; const Checkpoint = ssz => ({ fields: [["epoch", ssz.Epoch], ["root", ssz.Hash]] }); exports.Checkpoint = Checkpoint; const Validator = ssz => ({ fields: [["pubkey", ssz.BLSPubkey], ["withdrawalCredentials", ssz.Hash], ["effectiveBalance", ssz.Gwei], ["slashed", ssz.bool], ["activationEligibilityEpoch", ssz.Epoch], ["activationEpoch", ssz.Epoch], ["exitEpoch", ssz.Epoch], ["withdrawableEpoch", ssz.Epoch]] }); exports.Validator = Validator; const Crosslink = ssz => ({ fields: [["shard", ssz.Shard], ["parentRoot", ssz.Hash], ["startEpoch", ssz.Epoch], ["endEpoch", ssz.Epoch], ["dataRoot", ssz.Hash]] }); exports.Crosslink = Crosslink; const AttestationData = ssz => ({ fields: [["beaconBlockRoot", ssz.Hash], ["source", ssz.Checkpoint], ["target", ssz.Checkpoint], ["crosslink", ssz.Crosslink]] }); exports.AttestationData = AttestationData; const AttestationDataAndCustodyBit = ssz => ({ fields: [["data", ssz.AttestationData], ["custodyBit", ssz.bool]] }); exports.AttestationDataAndCustodyBit = AttestationDataAndCustodyBit; const IndexedAttestation = (ssz, params) => ({ fields: [["custodyBit0Indices", { elementType: ssz.ValidatorIndex, maxLength: params.MAX_VALIDATORS_PER_COMMITTEE }], ["custodyBit1Indices", { elementType: ssz.ValidatorIndex, maxLength: params.MAX_VALIDATORS_PER_COMMITTEE }], ["data", ssz.AttestationData], ["signature", ssz.BLSSignature]] }); exports.IndexedAttestation = IndexedAttestation; const PendingAttestation = (ssz, params) => ({ fields: [["aggregationBits", { elementType: ssz.bool, maxLength: params.MAX_VALIDATORS_PER_COMMITTEE }], ["data", ssz.AttestationData], ["inclusionDelay", ssz.Slot], ["proposerIndex", ssz.ValidatorIndex]] }); exports.PendingAttestation = PendingAttestation; const Eth1Data = ssz => ({ fields: [["depositRoot", ssz.Hash], ["depositCount", ssz.number64], ["blockHash", ssz.Hash]] }); exports.Eth1Data = Eth1Data; const HistoricalBatch = (ssz, params) => ({ fields: [["blockRoots", { elementType: ssz.bytes32, length: params.SLOTS_PER_HISTORICAL_ROOT }], ["stateRoots", { elementType: ssz.bytes32, length: params.SLOTS_PER_HISTORICAL_ROOT }]] }); exports.HistoricalBatch = HistoricalBatch; const DepositData = ssz => ({ fields: [["pubkey", ssz.BLSPubkey], ["withdrawalCredentials", ssz.Hash], ["amount", ssz.Gwei], ["signature", ssz.BLSSignature]] }); exports.DepositData = DepositData; const CompactCommittee = (ssz, params) => ({ fields: [["pubkeys", { elementType: ssz.BLSPubkey, maxLength: params.MAX_VALIDATORS_PER_COMMITTEE }], ["compactValidators", { elementType: ssz.uint64, maxLength: params.MAX_VALIDATORS_PER_COMMITTEE }]] }); exports.CompactCommittee = CompactCommittee; const BeaconBlockHeader = ssz => ({ fields: [["slot", ssz.Slot], ["parentRoot", ssz.Hash], ["stateRoot", ssz.Hash], ["bodyRoot", ssz.Hash], ["signature", ssz.BLSSignature]] }); exports.BeaconBlockHeader = BeaconBlockHeader; const FFGData = ssz => ({ fields: [["source", ssz.Checkpoint], ["target", ssz.Checkpoint]] }); exports.FFGData = FFGData; const MerkleTree = ssz => ({ fields: [["depth", ssz.number64], ["tree", { elementType: { elementType: ssz.Hash, maxLength: _constants.DEPOSIT_CONTRACT_TREE_DEPTH }, maxLength: _constants.DEPOSIT_CONTRACT_TREE_DEPTH }]] }); exports.MerkleTree = MerkleTree; //# sourceMappingURL=misc.js.map