Socket
Socket
Sign inDemoInstall

@chainsafe/lodestar-params

Package Overview
Dependencies
Maintainers
3
Versions
846
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@chainsafe/lodestar-params - npm Package Compare versions

Comparing version 0.23.0 to 0.23.1-alpha.0

lib/activePreset.d.ts

28

lib/constants.d.ts

@@ -7,6 +7,32 @@ export declare const GENESIS_SLOT = 0;

export declare const JUSTIFICATION_BITS_LENGTH = 4;
export declare const MAX_REQUEST_BLOCKS: number;
export declare const BLS_WITHDRAWAL_PREFIX: Uint8Array;
export declare const ETH1_ADDRESS_WITHDRAWAL_PREFIX: Uint8Array;
export declare const DOMAIN_BEACON_PROPOSER: Uint8Array;
export declare const DOMAIN_BEACON_ATTESTER: Uint8Array;
export declare const DOMAIN_RANDAO: Uint8Array;
export declare const DOMAIN_DEPOSIT: Uint8Array;
export declare const DOMAIN_VOLUNTARY_EXIT: Uint8Array;
export declare const DOMAIN_SELECTION_PROOF: Uint8Array;
export declare const DOMAIN_AGGREGATE_AND_PROOF: Uint8Array;
export declare const DOMAIN_SYNC_COMMITTEE: Uint8Array;
export declare const DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: Uint8Array;
export declare const DOMAIN_CONTRIBUTION_AND_PROOF: Uint8Array;
export declare const TIMELY_SOURCE_FLAG_INDEX = 0;
export declare const TIMELY_TARGET_FLAG_INDEX = 1;
export declare const TIMELY_HEAD_FLAG_INDEX = 2;
export declare const TIMELY_SOURCE_WEIGHT: bigint;
export declare const TIMELY_TARGET_WEIGHT: bigint;
export declare const TIMELY_HEAD_WEIGHT: bigint;
export declare const SYNC_REWARD_WEIGHT: bigint;
export declare const PROPOSER_WEIGHT: bigint;
export declare const WEIGHT_DENOMINATOR: bigint;
export declare const PARTICIPATION_FLAG_WEIGHTS: bigint[];
export declare const TARGET_AGGREGATORS_PER_COMMITTEE = 16;
export declare const RANDOM_SUBNETS_PER_VALIDATOR = 1;
export declare const EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION = 256;
/** Rationale: https://github.com/ethereum/eth2.0-specs/blob/dev/specs/phase0/p2p-interface.md#why-are-there-attestation_subnet_count-attestation-subnets */
export declare const ATTESTATION_SUBNET_COUNT = 64;
export declare const TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = 4;
export declare const SYNC_COMMITTEE_SUBNET_COUNT = 4;
export declare const MAX_REQUEST_BLOCKS: number;
export declare const MIN_SYNC_COMMITTEE_PARTICIPANTS = 1;

@@ -13,0 +39,0 @@ /**

@@ -6,3 +6,4 @@ "use strict";

});
exports.NEXT_SYNC_COMMITTEE_INDEX_FLOORLOG2 = exports.NEXT_SYNC_COMMITTEE_INDEX = exports.FINALIZED_ROOT_INDEX_FLOORLOG2 = exports.FINALIZED_ROOT_INDEX = exports.MIN_SYNC_COMMITTEE_PARTICIPANTS = exports.SYNC_COMMITTEE_SUBNET_COUNT = exports.ATTESTATION_SUBNET_COUNT = exports.MAX_REQUEST_BLOCKS = exports.JUSTIFICATION_BITS_LENGTH = exports.DEPOSIT_CONTRACT_TREE_DEPTH = exports.BASE_REWARDS_PER_EPOCH = exports.FAR_FUTURE_EPOCH = exports.GENESIS_EPOCH = exports.GENESIS_SLOT = void 0;
exports.NEXT_SYNC_COMMITTEE_INDEX_FLOORLOG2 = exports.NEXT_SYNC_COMMITTEE_INDEX = exports.FINALIZED_ROOT_INDEX_FLOORLOG2 = exports.FINALIZED_ROOT_INDEX = exports.MIN_SYNC_COMMITTEE_PARTICIPANTS = exports.MAX_REQUEST_BLOCKS = exports.SYNC_COMMITTEE_SUBNET_COUNT = exports.TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = exports.ATTESTATION_SUBNET_COUNT = exports.EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION = exports.RANDOM_SUBNETS_PER_VALIDATOR = exports.TARGET_AGGREGATORS_PER_COMMITTEE = exports.PARTICIPATION_FLAG_WEIGHTS = exports.WEIGHT_DENOMINATOR = exports.PROPOSER_WEIGHT = exports.SYNC_REWARD_WEIGHT = exports.TIMELY_HEAD_WEIGHT = exports.TIMELY_TARGET_WEIGHT = exports.TIMELY_SOURCE_WEIGHT = exports.TIMELY_HEAD_FLAG_INDEX = exports.TIMELY_TARGET_FLAG_INDEX = exports.TIMELY_SOURCE_FLAG_INDEX = exports.DOMAIN_CONTRIBUTION_AND_PROOF = exports.DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF = exports.DOMAIN_SYNC_COMMITTEE = exports.DOMAIN_AGGREGATE_AND_PROOF = exports.DOMAIN_SELECTION_PROOF = exports.DOMAIN_VOLUNTARY_EXIT = exports.DOMAIN_DEPOSIT = exports.DOMAIN_RANDAO = exports.DOMAIN_BEACON_ATTESTER = exports.DOMAIN_BEACON_PROPOSER = exports.ETH1_ADDRESS_WITHDRAWAL_PREFIX = exports.BLS_WITHDRAWAL_PREFIX = exports.JUSTIFICATION_BITS_LENGTH = exports.DEPOSIT_CONTRACT_TREE_DEPTH = exports.BASE_REWARDS_PER_EPOCH = exports.FAR_FUTURE_EPOCH = exports.GENESIS_EPOCH = exports.GENESIS_SLOT = void 0;
// Misc
const GENESIS_SLOT = 0;

@@ -19,14 +20,73 @@ exports.GENESIS_SLOT = GENESIS_SLOT;

exports.DEPOSIT_CONTRACT_TREE_DEPTH = DEPOSIT_CONTRACT_TREE_DEPTH;
const JUSTIFICATION_BITS_LENGTH = 4;
const JUSTIFICATION_BITS_LENGTH = 4; // Withdrawal prefixes
exports.JUSTIFICATION_BITS_LENGTH = JUSTIFICATION_BITS_LENGTH;
const MAX_REQUEST_BLOCKS = 2 ** 10; // 1024
const BLS_WITHDRAWAL_PREFIX = Uint8Array.from([0]);
exports.BLS_WITHDRAWAL_PREFIX = BLS_WITHDRAWAL_PREFIX;
const ETH1_ADDRESS_WITHDRAWAL_PREFIX = Uint8Array.from([0]); // Domain types
exports.ETH1_ADDRESS_WITHDRAWAL_PREFIX = ETH1_ADDRESS_WITHDRAWAL_PREFIX;
const DOMAIN_BEACON_PROPOSER = Uint8Array.from([0, 0, 0, 0]);
exports.DOMAIN_BEACON_PROPOSER = DOMAIN_BEACON_PROPOSER;
const DOMAIN_BEACON_ATTESTER = Uint8Array.from([1, 0, 0, 0]);
exports.DOMAIN_BEACON_ATTESTER = DOMAIN_BEACON_ATTESTER;
const DOMAIN_RANDAO = Uint8Array.from([2, 0, 0, 0]);
exports.DOMAIN_RANDAO = DOMAIN_RANDAO;
const DOMAIN_DEPOSIT = Uint8Array.from([3, 0, 0, 0]);
exports.DOMAIN_DEPOSIT = DOMAIN_DEPOSIT;
const DOMAIN_VOLUNTARY_EXIT = Uint8Array.from([4, 0, 0, 0]);
exports.DOMAIN_VOLUNTARY_EXIT = DOMAIN_VOLUNTARY_EXIT;
const DOMAIN_SELECTION_PROOF = Uint8Array.from([5, 0, 0, 0]);
exports.DOMAIN_SELECTION_PROOF = DOMAIN_SELECTION_PROOF;
const DOMAIN_AGGREGATE_AND_PROOF = Uint8Array.from([6, 0, 0, 0]);
exports.DOMAIN_AGGREGATE_AND_PROOF = DOMAIN_AGGREGATE_AND_PROOF;
const DOMAIN_SYNC_COMMITTEE = Uint8Array.from([7, 0, 0, 0]);
exports.DOMAIN_SYNC_COMMITTEE = DOMAIN_SYNC_COMMITTEE;
const DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF = Uint8Array.from([8, 0, 0, 0]);
exports.DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF = DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF;
const DOMAIN_CONTRIBUTION_AND_PROOF = Uint8Array.from([9, 0, 0, 0]); // Participation flag indices
exports.DOMAIN_CONTRIBUTION_AND_PROOF = DOMAIN_CONTRIBUTION_AND_PROOF;
const TIMELY_SOURCE_FLAG_INDEX = 0;
exports.TIMELY_SOURCE_FLAG_INDEX = TIMELY_SOURCE_FLAG_INDEX;
const TIMELY_TARGET_FLAG_INDEX = 1;
exports.TIMELY_TARGET_FLAG_INDEX = TIMELY_TARGET_FLAG_INDEX;
const TIMELY_HEAD_FLAG_INDEX = 2; // Incentivization weights
exports.TIMELY_HEAD_FLAG_INDEX = TIMELY_HEAD_FLAG_INDEX;
const TIMELY_SOURCE_WEIGHT = BigInt(12);
exports.TIMELY_SOURCE_WEIGHT = TIMELY_SOURCE_WEIGHT;
const TIMELY_TARGET_WEIGHT = BigInt(24);
exports.TIMELY_TARGET_WEIGHT = TIMELY_TARGET_WEIGHT;
const TIMELY_HEAD_WEIGHT = BigInt(12);
exports.TIMELY_HEAD_WEIGHT = TIMELY_HEAD_WEIGHT;
const SYNC_REWARD_WEIGHT = BigInt(8);
exports.SYNC_REWARD_WEIGHT = SYNC_REWARD_WEIGHT;
const PROPOSER_WEIGHT = BigInt(8);
exports.PROPOSER_WEIGHT = PROPOSER_WEIGHT;
const WEIGHT_DENOMINATOR = BigInt(64); // altair misc
exports.WEIGHT_DENOMINATOR = WEIGHT_DENOMINATOR;
const PARTICIPATION_FLAG_WEIGHTS = [TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_WEIGHT, TIMELY_HEAD_WEIGHT]; // phase0 validator
exports.PARTICIPATION_FLAG_WEIGHTS = PARTICIPATION_FLAG_WEIGHTS;
const TARGET_AGGREGATORS_PER_COMMITTEE = 16;
exports.TARGET_AGGREGATORS_PER_COMMITTEE = TARGET_AGGREGATORS_PER_COMMITTEE;
const RANDOM_SUBNETS_PER_VALIDATOR = 1;
exports.RANDOM_SUBNETS_PER_VALIDATOR = RANDOM_SUBNETS_PER_VALIDATOR;
const EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION = 256;
/** Rationale: https://github.com/ethereum/eth2.0-specs/blob/dev/specs/phase0/p2p-interface.md#why-are-there-attestation_subnet_count-attestation-subnets */
exports.MAX_REQUEST_BLOCKS = MAX_REQUEST_BLOCKS;
const ATTESTATION_SUBNET_COUNT = 64; // https://github.com/ethereum/eth2.0-specs/blob/v1.1.0-alpha.5/specs/altair/validator.md
exports.EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION = EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION;
const ATTESTATION_SUBNET_COUNT = 64; // altair validator
exports.ATTESTATION_SUBNET_COUNT = ATTESTATION_SUBNET_COUNT;
const TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = 4;
exports.TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE;
const SYNC_COMMITTEE_SUBNET_COUNT = 4;
exports.SYNC_COMMITTEE_SUBNET_COUNT = SYNC_COMMITTEE_SUBNET_COUNT;
const MAX_REQUEST_BLOCKS = 2 ** 10; // 1024
//
exports.MAX_REQUEST_BLOCKS = MAX_REQUEST_BLOCKS;
const MIN_SYNC_COMMITTEE_PARTICIPANTS = 1; // Lightclient pre-computed

@@ -33,0 +93,0 @@

11

lib/index.d.ts

@@ -1,10 +0,5 @@

/**
* @module params
*/
export * from "./phase0";
export * from "./altair";
export * from "./interface";
export * from "./beaconParams";
export * from "./constants";
export { createIBeaconParams } from "./utils";
export * from "./preset";
export * from "./activePreset";
export * from "./forkName";
//# sourceMappingURL=index.d.ts.map

@@ -6,22 +6,12 @@ "use strict";

});
var _exportNames = {
createIBeaconParams: true
};
Object.defineProperty(exports, "createIBeaconParams", {
enumerable: true,
get: function () {
return _utils.createIBeaconParams;
}
});
var _phase = require("./phase0");
var _constants = require("./constants");
Object.keys(_phase).forEach(function (key) {
Object.keys(_constants).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _phase[key]) return;
if (key in exports && exports[key] === _constants[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _phase[key];
return _constants[key];
}

@@ -31,12 +21,11 @@ });

var _altair = require("./altair");
var _preset = require("./preset");
Object.keys(_altair).forEach(function (key) {
Object.keys(_preset).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _altair[key]) return;
if (key in exports && exports[key] === _preset[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _altair[key];
return _preset[key];
}

@@ -46,12 +35,11 @@ });

var _interface = require("./interface");
var _activePreset = require("./activePreset");
Object.keys(_interface).forEach(function (key) {
Object.keys(_activePreset).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _interface[key]) return;
if (key in exports && exports[key] === _activePreset[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _interface[key];
return _activePreset[key];
}

@@ -61,31 +49,14 @@ });

var _beaconParams = require("./beaconParams");
var _forkName = require("./forkName");
Object.keys(_beaconParams).forEach(function (key) {
Object.keys(_forkName).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _beaconParams[key]) return;
if (key in exports && exports[key] === _forkName[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _beaconParams[key];
return _forkName[key];
}
});
});
var _constants = require("./constants");
Object.keys(_constants).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _constants[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _constants[key];
}
});
});
var _utils = require("./utils");
//# sourceMappingURL=index.js.map

@@ -1,17 +0,3 @@

export declare const altairJson: {
CONFIG_NAME: string;
SYNC_COMMITTEE_SIZE: number;
INACTIVITY_SCORE_BIAS: number;
INACTIVITY_SCORE_RECOVERY_RATE: number;
EPOCHS_PER_SYNC_COMMITTEE_PERIOD: number;
DOMAIN_SYNC_COMMITTEE: string;
DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: string;
DOMAIN_CONTRIBUTION_AND_PROOF: string;
ALTAIR_FORK_VERSION: string;
ALTAIR_FORK_EPOCH: string;
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: number;
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: number;
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: number;
TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: number;
};
import { IAltairPreset } from "../../preset";
export declare const altair: IAltairPreset;
//# sourceMappingURL=altair.d.ts.map

@@ -6,24 +6,13 @@ "use strict";

});
exports.altairJson = void 0;
exports.altair = void 0;
/* eslint-disable @typescript-eslint/naming-convention */
const altairJson = {
CONFIG_NAME: "mainnet",
// 2**9 (=512)
const altair = {
SYNC_COMMITTEE_SIZE: 512,
INACTIVITY_SCORE_BIAS: 4,
// 2**4 (= 16)
INACTIVITY_SCORE_RECOVERY_RATE: 16,
EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 512,
DOMAIN_SYNC_COMMITTEE: "0x07000000",
DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: "0x08000000",
DOMAIN_CONTRIBUTION_AND_PROOF: "0x09000000",
ALTAIR_FORK_VERSION: "0x01000000",
ALTAIR_FORK_EPOCH: "0xffffffffffffffff",
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648,
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64,
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2,
TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: 4
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: BigInt(50331648),
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: BigInt(64),
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: BigInt(2)
};
exports.altairJson = altairJson;
exports.altair = altair;
//# sourceMappingURL=altair.js.map

@@ -1,4 +0,4 @@

import { IBeaconParams } from "../../interface";
export declare const commit = "v1.1.0-alpha.5";
export declare const params: IBeaconParams;
import { IBeaconPreset } from "../../preset";
export declare const commit = "v1.1.0-alpha.6";
export declare const preset: IBeaconPreset;
//# sourceMappingURL=index.d.ts.map

@@ -6,6 +6,4 @@ "use strict";

});
exports.params = exports.commit = void 0;
exports.preset = exports.commit = void 0;
var _utils = require("../../utils");
var _phase = require("./phase0");

@@ -21,6 +19,8 @@

const commit = "v1.1.0-alpha.5";
const commit = "v1.1.0-alpha.6";
exports.commit = commit;
const params = (0, _utils.createIBeaconParams)(_objectSpread(_objectSpread({}, _phase.phase0Json), _altair.altairJson));
exports.params = params;
const preset = _objectSpread(_objectSpread({}, _phase.phase0), _altair.altair);
exports.preset = preset;
//# sourceMappingURL=index.js.map

@@ -1,63 +0,3 @@

export declare const phase0Json: {
CONFIG_NAME: string;
MAX_COMMITTEES_PER_SLOT: number;
TARGET_COMMITTEE_SIZE: number;
MAX_VALIDATORS_PER_COMMITTEE: number;
MIN_PER_EPOCH_CHURN_LIMIT: number;
CHURN_LIMIT_QUOTIENT: number;
SHUFFLE_ROUND_COUNT: number;
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: number;
MIN_GENESIS_TIME: number;
HYSTERESIS_QUOTIENT: number;
HYSTERESIS_DOWNWARD_MULTIPLIER: number;
HYSTERESIS_UPWARD_MULTIPLIER: number;
PROPORTIONAL_SLASHING_MULTIPLIER: number;
SAFE_SLOTS_TO_UPDATE_JUSTIFIED: number;
ETH1_FOLLOW_DISTANCE: number;
TARGET_AGGREGATORS_PER_COMMITTEE: number;
RANDOM_SUBNETS_PER_VALIDATOR: number;
EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: number;
SECONDS_PER_ETH1_BLOCK: number;
DEPOSIT_CHAIN_ID: number;
DEPOSIT_NETWORK_ID: number;
DEPOSIT_CONTRACT_ADDRESS: string;
MIN_DEPOSIT_AMOUNT: number;
MAX_EFFECTIVE_BALANCE: number;
EJECTION_BALANCE: number;
EFFECTIVE_BALANCE_INCREMENT: number;
GENESIS_FORK_VERSION: string;
BLS_WITHDRAWAL_PREFIX: string;
GENESIS_DELAY: number;
SECONDS_PER_SLOT: number;
MIN_ATTESTATION_INCLUSION_DELAY: number;
SLOTS_PER_EPOCH: number;
MIN_SEED_LOOKAHEAD: number;
MAX_SEED_LOOKAHEAD: number;
EPOCHS_PER_ETH1_VOTING_PERIOD: number;
SLOTS_PER_HISTORICAL_ROOT: number;
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: number;
SHARD_COMMITTEE_PERIOD: number;
MIN_EPOCHS_TO_INACTIVITY_PENALTY: number;
EPOCHS_PER_HISTORICAL_VECTOR: number;
EPOCHS_PER_SLASHINGS_VECTOR: number;
HISTORICAL_ROOTS_LIMIT: number;
VALIDATOR_REGISTRY_LIMIT: number;
BASE_REWARD_FACTOR: number;
WHISTLEBLOWER_REWARD_QUOTIENT: number;
PROPOSER_REWARD_QUOTIENT: number;
INACTIVITY_PENALTY_QUOTIENT: number;
MIN_SLASHING_PENALTY_QUOTIENT: number;
MAX_PROPOSER_SLASHINGS: number;
MAX_ATTESTER_SLASHINGS: number;
MAX_ATTESTATIONS: number;
MAX_DEPOSITS: number;
MAX_VOLUNTARY_EXITS: number;
DOMAIN_BEACON_PROPOSER: string;
DOMAIN_BEACON_ATTESTER: string;
DOMAIN_RANDAO: string;
DOMAIN_DEPOSIT: string;
DOMAIN_VOLUNTARY_EXIT: string;
DOMAIN_SELECTION_PROOF: string;
DOMAIN_AGGREGATE_AND_PROOF: string;
};
import { IPhase0Preset } from "../../preset";
export declare const phase0: IPhase0Preset;
//# sourceMappingURL=phase0.d.ts.map

@@ -6,8 +6,7 @@ "use strict";

});
exports.phase0Json = void 0;
exports.phase0 = void 0;
/* eslint-disable @typescript-eslint/naming-convention */
// Mainnet preset
const phase0Json = {
CONFIG_NAME: "mainnet",
const phase0 = {
// Misc

@@ -21,12 +20,4 @@ // ---------------------------------------------------------------

MAX_VALIDATORS_PER_COMMITTEE: 2048,
// 2**2 (= 4)
MIN_PER_EPOCH_CHURN_LIMIT: 4,
// 2**16 (= 65,536)
CHURN_LIMIT_QUOTIENT: 65536,
// See issue 563
SHUFFLE_ROUND_COUNT: 90,
// `2**14` (= 16,384)
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384,
// Jan 3, 2020
MIN_GENESIS_TIME: 1606824000,
// 4

@@ -38,4 +29,2 @@ HYSTERESIS_QUOTIENT: 4,

HYSTERESIS_UPWARD_MULTIPLIER: 5,
// 3
PROPORTIONAL_SLASHING_MULTIPLIER: 1,
// Fork Choice

@@ -45,42 +34,12 @@ // ---------------------------------------------------------------

SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8,
// Validator
// ---------------------------------------------------------------
// 2**11 (= 2,048)
ETH1_FOLLOW_DISTANCE: 2048,
// 2**4 (= 16)
TARGET_AGGREGATORS_PER_COMMITTEE: 16,
// 2**0 (= 1)
RANDOM_SUBNETS_PER_VALIDATOR: 1,
// 2**8 (= 256)
EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256,
// 14 (estimate from Eth1 mainnet)
SECONDS_PER_ETH1_BLOCK: 14,
// Deposit contract
// ---------------------------------------------------------------
// Ethereum PoW Mainnet
DEPOSIT_CHAIN_ID: 1,
DEPOSIT_NETWORK_ID: 1,
// **TBD**
DEPOSIT_CONTRACT_ADDRESS: "0x00000000219ab540356cBB839Cbe05303d7705Fa",
// Gwei values
// ---------------------------------------------------------------
// 2**0 * 10**9 (= 1,000,000,000) Gwei
MIN_DEPOSIT_AMOUNT: 1000000000,
MIN_DEPOSIT_AMOUNT: BigInt(1000000000),
// 2**5 * 10**9 (= 32,000,000,000) Gwei
MAX_EFFECTIVE_BALANCE: 32000000000,
// 2**4 * 10**9 (= 16,000,000,000) Gwei
EJECTION_BALANCE: 16000000000,
MAX_EFFECTIVE_BALANCE: BigInt(32000000000),
// 2**0 * 10**9 (= 1,000,000,000) Gwei
EFFECTIVE_BALANCE_INCREMENT: 1000000000,
// Initial values
// ---------------------------------------------------------------
// Mainnet initial fork version, recommend altering for testnets
GENESIS_FORK_VERSION: "0x00000000",
BLS_WITHDRAWAL_PREFIX: "0x00",
EFFECTIVE_BALANCE_INCREMENT: BigInt(1000000000),
// Time parameters
// ---------------------------------------------------------------
// 604800 seconds (7 days)
GENESIS_DELAY: 604800,
// 12 seconds
SECONDS_PER_SLOT: 12,
// 2**0 (= 1) slots 12 seconds

@@ -98,6 +57,2 @@ MIN_ATTESTATION_INCLUSION_DELAY: 1,

SLOTS_PER_HISTORICAL_ROOT: 8192,
// 2**8 (= 256) epochs ~27 hours
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256,
// 2**8 (= 256) epochs ~27 hours
SHARD_COMMITTEE_PERIOD: 256,
// 2**2 (= 4) epochs 25.6 minutes

@@ -118,11 +73,12 @@ MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4,

// 2**6 (= 64)
BASE_REWARD_FACTOR: 64,
BASE_REWARD_FACTOR: BigInt(64),
// 2**9 (= 512)
WHISTLEBLOWER_REWARD_QUOTIENT: 512,
WHISTLEBLOWER_REWARD_QUOTIENT: BigInt(512),
// 2**3 (= 8)
PROPOSER_REWARD_QUOTIENT: 8,
PROPOSER_REWARD_QUOTIENT: BigInt(8),
// 2**26 (= 67,108,864)
INACTIVITY_PENALTY_QUOTIENT: 67108864,
INACTIVITY_PENALTY_QUOTIENT: BigInt(67108864),
// 2**7 (= 128) (lower safety margin at Phase 0 genesis)
MIN_SLASHING_PENALTY_QUOTIENT: 128,
MIN_SLASHING_PENALTY_QUOTIENT: BigInt(128),
PROPORTIONAL_SLASHING_MULTIPLIER: BigInt(1),
// Max operations per block

@@ -139,14 +95,5 @@ // ---------------------------------------------------------------

// 2**4 (= 16)
MAX_VOLUNTARY_EXITS: 16,
// Signature domains
// ---------------------------------------------------------------
DOMAIN_BEACON_PROPOSER: "0x00000000",
DOMAIN_BEACON_ATTESTER: "0x01000000",
DOMAIN_RANDAO: "0x02000000",
DOMAIN_DEPOSIT: "0x03000000",
DOMAIN_VOLUNTARY_EXIT: "0x04000000",
DOMAIN_SELECTION_PROOF: "0x05000000",
DOMAIN_AGGREGATE_AND_PROOF: "0x06000000"
MAX_VOLUNTARY_EXITS: 16
};
exports.phase0Json = phase0Json;
exports.phase0 = phase0;
//# sourceMappingURL=phase0.js.map

@@ -1,17 +0,3 @@

export declare const altairJson: {
CONFIG_NAME: string;
SYNC_COMMITTEE_SIZE: number;
INACTIVITY_SCORE_BIAS: number;
INACTIVITY_SCORE_RECOVERY_RATE: number;
EPOCHS_PER_SYNC_COMMITTEE_PERIOD: number;
DOMAIN_SYNC_COMMITTEE: string;
DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: string;
DOMAIN_CONTRIBUTION_AND_PROOF: string;
ALTAIR_FORK_VERSION: string;
ALTAIR_FORK_EPOCH: string;
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: number;
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: number;
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: number;
TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: number;
};
import { IAltairPreset } from "../../preset";
export declare const altair: IAltairPreset;
//# sourceMappingURL=altair.d.ts.map

@@ -6,22 +6,13 @@ "use strict";

});
exports.altairJson = void 0;
exports.altair = void 0;
/* eslint-disable @typescript-eslint/naming-convention */
const altairJson = {
CONFIG_NAME: "minimal",
const altair = {
SYNC_COMMITTEE_SIZE: 32,
INACTIVITY_SCORE_BIAS: 4,
INACTIVITY_SCORE_RECOVERY_RATE: 16,
EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 8,
DOMAIN_SYNC_COMMITTEE: "0x07000000",
DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: "0x08000000",
DOMAIN_CONTRIBUTION_AND_PROOF: "0x09000000",
ALTAIR_FORK_VERSION: "0x01000001",
ALTAIR_FORK_EPOCH: "0xffffffffffffffff",
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648,
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64,
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2,
TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: 4
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: BigInt(50331648),
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: BigInt(64),
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: BigInt(2)
};
exports.altairJson = altairJson;
exports.altair = altair;
//# sourceMappingURL=altair.js.map

@@ -1,4 +0,4 @@

import { IBeaconParams } from "../../interface";
export declare const commit = "v1.1.0-alpha.5";
export declare const params: IBeaconParams;
import { IBeaconPreset } from "../../preset";
export declare const commit = "v1.1.0-alpha.6";
export declare const preset: IBeaconPreset;
//# sourceMappingURL=index.d.ts.map

@@ -6,6 +6,4 @@ "use strict";

});
exports.params = exports.commit = void 0;
exports.preset = exports.commit = void 0;
var _utils = require("../../utils");
var _phase = require("./phase0");

@@ -21,6 +19,8 @@

const commit = "v1.1.0-alpha.5";
const commit = "v1.1.0-alpha.6";
exports.commit = commit;
const params = (0, _utils.createIBeaconParams)(_objectSpread(_objectSpread({}, _phase.phase0Json), _altair.altairJson));
exports.params = params;
const preset = _objectSpread(_objectSpread({}, _phase.phase0), _altair.altair);
exports.preset = preset;
//# sourceMappingURL=index.js.map

@@ -1,63 +0,3 @@

export declare const phase0Json: {
CONFIG_NAME: string;
MAX_COMMITTEES_PER_SLOT: number;
TARGET_COMMITTEE_SIZE: number;
MAX_VALIDATORS_PER_COMMITTEE: number;
MIN_PER_EPOCH_CHURN_LIMIT: number;
CHURN_LIMIT_QUOTIENT: number;
SHUFFLE_ROUND_COUNT: number;
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: number;
MIN_GENESIS_TIME: number;
HYSTERESIS_QUOTIENT: number;
HYSTERESIS_DOWNWARD_MULTIPLIER: number;
HYSTERESIS_UPWARD_MULTIPLIER: number;
SAFE_SLOTS_TO_UPDATE_JUSTIFIED: number;
ETH1_FOLLOW_DISTANCE: number;
TARGET_AGGREGATORS_PER_COMMITTEE: number;
RANDOM_SUBNETS_PER_VALIDATOR: number;
EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: number;
SECONDS_PER_ETH1_BLOCK: number;
DEPOSIT_CHAIN_ID: number;
DEPOSIT_NETWORK_ID: number;
DEPOSIT_CONTRACT_ADDRESS: string;
MIN_DEPOSIT_AMOUNT: number;
MAX_EFFECTIVE_BALANCE: number;
EJECTION_BALANCE: number;
EFFECTIVE_BALANCE_INCREMENT: number;
GENESIS_FORK_VERSION: string;
BLS_WITHDRAWAL_PREFIX: string;
GENESIS_DELAY: number;
SECONDS_PER_SLOT: number;
MIN_ATTESTATION_INCLUSION_DELAY: number;
SLOTS_PER_EPOCH: number;
MIN_SEED_LOOKAHEAD: number;
MAX_SEED_LOOKAHEAD: number;
EPOCHS_PER_ETH1_VOTING_PERIOD: number;
SLOTS_PER_HISTORICAL_ROOT: number;
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: number;
SHARD_COMMITTEE_PERIOD: number;
MIN_EPOCHS_TO_INACTIVITY_PENALTY: number;
EPOCHS_PER_HISTORICAL_VECTOR: number;
EPOCHS_PER_SLASHINGS_VECTOR: number;
HISTORICAL_ROOTS_LIMIT: number;
VALIDATOR_REGISTRY_LIMIT: number;
BASE_REWARD_FACTOR: number;
WHISTLEBLOWER_REWARD_QUOTIENT: number;
PROPOSER_REWARD_QUOTIENT: number;
INACTIVITY_PENALTY_QUOTIENT: number;
MIN_SLASHING_PENALTY_QUOTIENT: number;
PROPORTIONAL_SLASHING_MULTIPLIER: number;
MAX_PROPOSER_SLASHINGS: number;
MAX_ATTESTER_SLASHINGS: number;
MAX_ATTESTATIONS: number;
MAX_DEPOSITS: number;
MAX_VOLUNTARY_EXITS: number;
DOMAIN_BEACON_PROPOSER: string;
DOMAIN_BEACON_ATTESTER: string;
DOMAIN_RANDAO: string;
DOMAIN_DEPOSIT: string;
DOMAIN_VOLUNTARY_EXIT: string;
DOMAIN_SELECTION_PROOF: string;
DOMAIN_AGGREGATE_AND_PROOF: string;
};
import { IPhase0Preset } from "../../preset";
export declare const phase0: IPhase0Preset;
//# sourceMappingURL=phase0.d.ts.map

@@ -6,8 +6,7 @@ "use strict";

});
exports.phase0Json = void 0;
exports.phase0 = void 0;
/* eslint-disable @typescript-eslint/naming-convention */
// Minimal preset
const phase0Json = {
CONFIG_NAME: "minimal",
const phase0 = {
// Misc

@@ -21,12 +20,4 @@ // ---------------------------------------------------------------

MAX_VALIDATORS_PER_COMMITTEE: 2048,
// 2**2 (= 4)
MIN_PER_EPOCH_CHURN_LIMIT: 4,
// 2**16 (= 65,536)
CHURN_LIMIT_QUOTIENT: 65536,
// [customized] Faster, but unsecure.
SHUFFLE_ROUND_COUNT: 10,
// [customized]
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 64,
// Jan 3, 2020
MIN_GENESIS_TIME: 1578009600,
// 4

@@ -42,42 +33,12 @@ HYSTERESIS_QUOTIENT: 4,

SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 2,
// Validator
// ---------------------------------------------------------------
// [customized] process deposits more quickly, but insecure
ETH1_FOLLOW_DISTANCE: 16,
// 2**4 (= 16)
TARGET_AGGREGATORS_PER_COMMITTEE: 16,
// 2**0 (= 1)
RANDOM_SUBNETS_PER_VALIDATOR: 1,
// 2**8 (= 256)
EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256,
// 14 (estimate from Eth1 mainnet)
SECONDS_PER_ETH1_BLOCK: 14,
// Deposit contract
// ---------------------------------------------------------------
// Ethereum Goerli testnet
DEPOSIT_CHAIN_ID: 5,
DEPOSIT_NETWORK_ID: 5,
// **TBD**
DEPOSIT_CONTRACT_ADDRESS: "0x1234567890123456789012345678901234567890",
// Gwei values
// ---------------------------------------------------------------
// 2**0 * 10**9 (= 1,000,000,000) Gwei
MIN_DEPOSIT_AMOUNT: 1000000000,
MIN_DEPOSIT_AMOUNT: BigInt(1000000000),
// 2**5 * 10**9 (= 32,000,000,000) Gwei
MAX_EFFECTIVE_BALANCE: 32000000000,
// 2**4 * 10**9 (= 16,000,000,000) Gwei
EJECTION_BALANCE: 16000000000,
MAX_EFFECTIVE_BALANCE: BigInt(32000000000),
// 2**0 * 10**9 (= 1,000,000,000) Gwei
EFFECTIVE_BALANCE_INCREMENT: 1000000000,
// Initial values
// ---------------------------------------------------------------
// Highest byte set to 0x01 to avoid collisions with mainnet versioning
GENESIS_FORK_VERSION: "0x00000001",
BLS_WITHDRAWAL_PREFIX: "0x00",
EFFECTIVE_BALANCE_INCREMENT: BigInt(1000000000),
// Time parameters
// ---------------------------------------------------------------
// [customized] Faster to spin up testnets, but does not give validator reasonable warning time for genesis
GENESIS_DELAY: 300,
// [customized] Faster for testing purposes
SECONDS_PER_SLOT: 6,
// 2**0 (= 1) slots 6 seconds

@@ -95,2 +56,4 @@ MIN_ATTESTATION_INCLUSION_DELAY: 1,

SLOTS_PER_HISTORICAL_ROOT: 64,
/*
// 2**8 (= 256) epochs

@@ -100,2 +63,3 @@ MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256,

SHARD_COMMITTEE_PERIOD: 64,
*/
// 2**2 (= 4) epochs

@@ -116,13 +80,13 @@ MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4,

// 2**6 (= 64)
BASE_REWARD_FACTOR: 64,
BASE_REWARD_FACTOR: BigInt(64),
// 2**9 (= 512)
WHISTLEBLOWER_REWARD_QUOTIENT: 512,
WHISTLEBLOWER_REWARD_QUOTIENT: BigInt(512),
// 2**3 (= 8)
PROPOSER_REWARD_QUOTIENT: 8,
PROPOSER_REWARD_QUOTIENT: BigInt(8),
// [customized] 2**25 (= 33,554,432)
INACTIVITY_PENALTY_QUOTIENT: 33554432,
INACTIVITY_PENALTY_QUOTIENT: BigInt(33554432),
// [customized] 2**6 (= 64)
MIN_SLASHING_PENALTY_QUOTIENT: 64,
MIN_SLASHING_PENALTY_QUOTIENT: BigInt(64),
// [customized] 2 (lower safety margin than Phase 0 genesis but different than mainnet config for testing)
PROPORTIONAL_SLASHING_MULTIPLIER: 2,
PROPORTIONAL_SLASHING_MULTIPLIER: BigInt(2),
// Max operations per block

@@ -139,14 +103,5 @@ // ---------------------------------------------------------------

// 2**4 (= 16)
MAX_VOLUNTARY_EXITS: 16,
// Signature domains
// ---------------------------------------------------------------
DOMAIN_BEACON_PROPOSER: "0x00000000",
DOMAIN_BEACON_ATTESTER: "0x01000000",
DOMAIN_RANDAO: "0x02000000",
DOMAIN_DEPOSIT: "0x03000000",
DOMAIN_VOLUNTARY_EXIT: "0x04000000",
DOMAIN_SELECTION_PROOF: "0x05000000",
DOMAIN_AGGREGATE_AND_PROOF: "0x06000000"
MAX_VOLUNTARY_EXITS: 16
};
exports.phase0Json = phase0Json;
exports.phase0 = phase0;
//# sourceMappingURL=phase0.js.map

@@ -1,6 +0,3 @@

import { Schema } from "js-yaml";
import { IBeaconParams } from "./interface";
export declare function createIBeaconParams(input: Record<string, unknown>): Partial<IBeaconParams>;
export declare function loadConfigYaml(configYaml: string): Record<string, unknown>;
export declare const schema: Schema;
import { IBeaconPreset } from "./preset";
export declare function createIBeaconPreset(input: Record<string, unknown>): Partial<IBeaconPreset>;
//# sourceMappingURL=utils.d.ts.map

@@ -6,14 +6,10 @@ "use strict";

});
exports.createIBeaconParams = createIBeaconParams;
exports.loadConfigYaml = loadConfigYaml;
exports.schema = void 0;
exports.createIBeaconPreset = createIBeaconPreset;
var _jsYaml = require("js-yaml");
var _preset = require("./preset");
var _beaconParams = require("./beaconParams");
function createIBeaconParams(input) {
function createIBeaconPreset(input) {
const params = {};
for (const [fieldName, fieldType] of Object.entries(_beaconParams.BeaconParams.fields)) {
for (const [fieldName, fieldType] of Object.entries(_preset.BeaconPreset.fields)) {
if (input[fieldName] != null) {

@@ -31,20 +27,2 @@ try {

}
function loadConfigYaml(configYaml) {
return (0, _jsYaml.load)(configYaml, {
schema
});
}
const schema = new _jsYaml.Schema({
include: [_jsYaml.FAILSAFE_SCHEMA],
implicit: [new _jsYaml.Type("tag:yaml.org,2002:str", {
kind: "scalar",
construct: function (data) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return data !== null ? data : "";
}
})]
});
exports.schema = schema;
//# sourceMappingURL=utils.js.map
{
"name": "@chainsafe/lodestar-params",
"version": "0.23.0",
"version": "0.23.1-alpha.0+7ff5465",
"description": "Chain parameters required for lodestar",

@@ -55,3 +55,3 @@ "author": "ChainSafe Systems",

},
"gitHead": "8f4e720c0ed5b701149e2b432c22f0c2b536555a"
"gitHead": "7ff5465baa2414e78c9b0519ff3e262f1d09f36d"
}

@@ -17,13 +17,13 @@ # lodestar-params

// mainnet and minimal presets are available under non-default exports
import {params as mainnetParams} from "@chainsafe/lodestar-params/mainnet";
import {params as minimalParams} from "@chainsafe/lodestar-params/mainnet";
import {params as mainnetPreset} from "@chainsafe/lodestar-params/mainnet";
import {params as minimalPreset} from "@chainsafe/lodestar-params/mainnet";
mainnetParams.SHARD_COUNT;
mainnetPreset.SHARD_COUNT;
// custom params should follow the IBeaconParams interface
// custom params should follow the IBeaconPreset interface
import {IBeaconParams} from "@chainsafe/lodestar-params";
import {IBeaconPreset} from "@chainsafe/lodestar-params";
const testnetParams: IBeaconParams = {
...mainnetParams,
const testnetPreset: IBeaconPreset = {
...mainnetPreset,
SHARD_COUNT: 4,

@@ -30,0 +30,0 @@ };

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc