@chainsafe/eth2.0-ssz-types
Version:
SSZ types required for eth2.0
57 lines (43 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Transfer = exports.VoluntaryExit = exports.Deposit = exports.Attestation = exports.AttesterSlashing = exports.ProposerSlashing = void 0;
var _constants = require("../constants");
/**
* @module sszTypes/generators
*/
const ProposerSlashing = ssz => ({
fields: [["proposerIndex", ssz.ValidatorIndex], ["header1", ssz.BeaconBlockHeader], ["header2", ssz.BeaconBlockHeader]]
});
exports.ProposerSlashing = ProposerSlashing;
const AttesterSlashing = ssz => ({
fields: [["attestation1", ssz.IndexedAttestation], ["attestation2", ssz.IndexedAttestation]]
});
exports.AttesterSlashing = AttesterSlashing;
const Attestation = (ssz, params) => ({
fields: [["aggregationBits", {
elementType: ssz.bool,
maxLength: params.MAX_VALIDATORS_PER_COMMITTEE
}], ["data", ssz.AttestationData], ["custodyBits", {
elementType: ssz.bool,
maxLength: params.MAX_VALIDATORS_PER_COMMITTEE
}], ["signature", ssz.BLSSignature]]
});
exports.Attestation = Attestation;
const Deposit = ssz => ({
fields: [["proof", {
elementType: ssz.Hash,
length: _constants.DEPOSIT_CONTRACT_TREE_DEPTH + 1
}], ["data", ssz.DepositData]]
});
exports.Deposit = Deposit;
const VoluntaryExit = ssz => ({
fields: [["epoch", ssz.Epoch], ["validatorIndex", ssz.ValidatorIndex], ["signature", ssz.BLSSignature]]
});
exports.VoluntaryExit = VoluntaryExit;
const Transfer = ssz => ({
fields: [["sender", ssz.ValidatorIndex], ["recipient", ssz.ValidatorIndex], ["amount", ssz.Gwei], ["fee", ssz.Gwei], ["slot", ssz.Slot], ["pubkey", ssz.BLSPubkey], ["signature", ssz.BLSSignature]]
});
exports.Transfer = Transfer;
//# sourceMappingURL=operations.js.map