@chainsafe/lodestar-params
Advanced tools
Comparing version 0.16.0 to 0.17.0
@@ -0,4 +1,4 @@ | ||
import { ContainerType } from "@chainsafe/ssz"; | ||
import { IBeaconParams } from "./interface"; | ||
import { ContainerType } from "@chainsafe/ssz"; | ||
export declare const BeaconParams: ContainerType<IBeaconParams>; | ||
//# sourceMappingURL=beaconParams.d.ts.map |
@@ -10,93 +10,18 @@ "use strict"; | ||
/* eslint-disable @typescript-eslint/naming-convention */ | ||
const Number64 = new _ssz.NumberUintType({ | ||
byteLength: 8 | ||
}); | ||
const BigInt64 = new _ssz.BigIntUintType({ | ||
byteLength: 8 | ||
}); | ||
const ByteVector1 = new _ssz.ByteVectorType({ | ||
length: 1 | ||
}); | ||
const ByteVector4 = new _ssz.ByteVectorType({ | ||
length: 4 | ||
}); | ||
const ByteVector20 = new _ssz.ByteVectorType({ | ||
length: 20 | ||
}); | ||
var _phase = require("./phase0"); | ||
var _lightclient = require("./lightclient"); | ||
var _phase2 = require("./phase1"); | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
const BeaconParams = new _ssz.ContainerType({ | ||
fields: { | ||
// Misc | ||
MAX_COMMITTEES_PER_SLOT: Number64, | ||
TARGET_COMMITTEE_SIZE: Number64, | ||
MAX_VALIDATORS_PER_COMMITTEE: Number64, | ||
MIN_PER_EPOCH_CHURN_LIMIT: Number64, | ||
SHUFFLE_ROUND_COUNT: Number64, | ||
CHURN_LIMIT_QUOTIENT: Number64, | ||
MIN_GENESIS_TIME: Number64, | ||
HYSTERESIS_QUOTIENT: Number64, | ||
HYSTERESIS_DOWNWARD_MULTIPLIER: Number64, | ||
HYSTERESIS_UPWARD_MULTIPLIER: Number64, | ||
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: Number64, | ||
// Fork choice | ||
SAFE_SLOTS_TO_UPDATE_JUSTIFIED: Number64, | ||
// Validator | ||
ETH1_FOLLOW_DISTANCE: Number64, | ||
TARGET_AGGREGATORS_PER_COMMITTEE: Number64, | ||
RANDOM_SUBNETS_PER_VALIDATOR: Number64, | ||
EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: Number64, | ||
SECONDS_PER_ETH1_BLOCK: Number64, | ||
// Deposit contract | ||
DEPOSIT_CHAIN_ID: Number64, | ||
DEPOSIT_NETWORK_ID: Number64, | ||
DEPOSIT_CONTRACT_ADDRESS: ByteVector20, | ||
// Gwei Values | ||
MIN_DEPOSIT_AMOUNT: BigInt64, | ||
MAX_EFFECTIVE_BALANCE: BigInt64, | ||
EJECTION_BALANCE: BigInt64, | ||
EFFECTIVE_BALANCE_INCREMENT: BigInt64, | ||
// Initial values | ||
GENESIS_FORK_VERSION: ByteVector4, | ||
BLS_WITHDRAWAL_PREFIX: ByteVector1, | ||
// Time parameters | ||
GENESIS_DELAY: Number64, | ||
SECONDS_PER_SLOT: Number64, | ||
MIN_ATTESTATION_INCLUSION_DELAY: Number64, | ||
SLOTS_PER_EPOCH: Number64, | ||
MIN_SEED_LOOKAHEAD: Number64, | ||
MAX_SEED_LOOKAHEAD: Number64, | ||
EPOCHS_PER_ETH1_VOTING_PERIOD: Number64, | ||
SLOTS_PER_HISTORICAL_ROOT: Number64, | ||
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: Number64, | ||
SHARD_COMMITTEE_PERIOD: Number64, | ||
MIN_EPOCHS_TO_INACTIVITY_PENALTY: Number64, | ||
// State vector lengths | ||
EPOCHS_PER_HISTORICAL_VECTOR: Number64, | ||
EPOCHS_PER_SLASHINGS_VECTOR: Number64, | ||
HISTORICAL_ROOTS_LIMIT: Number64, | ||
VALIDATOR_REGISTRY_LIMIT: Number64, | ||
// Reward and penalty quotients | ||
BASE_REWARD_FACTOR: Number64, | ||
WHISTLEBLOWER_REWARD_QUOTIENT: Number64, | ||
PROPOSER_REWARD_QUOTIENT: Number64, | ||
INACTIVITY_PENALTY_QUOTIENT: BigInt64, | ||
MIN_SLASHING_PENALTY_QUOTIENT: Number64, | ||
PROPORTIONAL_SLASHING_MULTIPLIER: Number64, | ||
// Max operations per block | ||
MAX_PROPOSER_SLASHINGS: Number64, | ||
MAX_ATTESTER_SLASHINGS: Number64, | ||
MAX_ATTESTATIONS: Number64, | ||
MAX_DEPOSITS: Number64, | ||
MAX_VOLUNTARY_EXITS: Number64, | ||
// Signature domains | ||
DOMAIN_BEACON_PROPOSER: ByteVector4, | ||
DOMAIN_BEACON_ATTESTER: ByteVector4, | ||
DOMAIN_RANDAO: ByteVector4, | ||
DOMAIN_DEPOSIT: ByteVector4, | ||
DOMAIN_VOLUNTARY_EXIT: ByteVector4, | ||
DOMAIN_SELECTION_PROOF: ByteVector4, | ||
DOMAIN_AGGREGATE_AND_PROOF: ByteVector4 | ||
} | ||
fields: _objectSpread(_objectSpread(_objectSpread({}, _phase.Phase0Params.fields), _lightclient.LightclientParams.fields), _phase2.Phase1Params.fields) | ||
}); | ||
exports.BeaconParams = BeaconParams; | ||
//# sourceMappingURL=beaconParams.js.map |
@@ -7,2 +7,7 @@ export declare const GENESIS_SLOT = 0; | ||
export declare const JUSTIFICATION_BITS_LENGTH = 4; | ||
export declare const FINALIZED_ROOT_INDEX = 105; | ||
export declare const NEXT_SYNC_COMMITTEE_INDEX = 54; | ||
export declare const MAX_VALID_LIGHT_CLIENT_UPDATES: number; | ||
export declare const MIN_SYNC_COMMITTEE_PARTICIPANTS = 1; | ||
export declare const LIGHT_CLIENT_UPDATE_TIMEOUT: number; | ||
//# sourceMappingURL=constants.d.ts.map |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
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.LIGHT_CLIENT_UPDATE_TIMEOUT = exports.MIN_SYNC_COMMITTEE_PARTICIPANTS = exports.MAX_VALID_LIGHT_CLIENT_UPDATES = exports.NEXT_SYNC_COMMITTEE_INDEX = exports.FINALIZED_ROOT_INDEX = 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; | ||
const GENESIS_SLOT = 0; | ||
@@ -18,4 +18,18 @@ exports.GENESIS_SLOT = GENESIS_SLOT; | ||
exports.DEPOSIT_CONTRACT_TREE_DEPTH = DEPOSIT_CONTRACT_TREE_DEPTH; | ||
const JUSTIFICATION_BITS_LENGTH = 4; | ||
const JUSTIFICATION_BITS_LENGTH = 4; //TODO: use ssz to calculate Path(BeaconState)/'finalized_checkpoint'/'root' | ||
exports.JUSTIFICATION_BITS_LENGTH = JUSTIFICATION_BITS_LENGTH; | ||
const FINALIZED_ROOT_INDEX = 105; //TODO: use ssz to calculate Path(BeaconState)/'next_sync_committee' | ||
exports.FINALIZED_ROOT_INDEX = FINALIZED_ROOT_INDEX; | ||
const NEXT_SYNC_COMMITTEE_INDEX = 54; // BigInt(2 ** 64) - BigInt(1); | ||
exports.NEXT_SYNC_COMMITTEE_INDEX = NEXT_SYNC_COMMITTEE_INDEX; | ||
const MAX_VALID_LIGHT_CLIENT_UPDATES = Number.MAX_SAFE_INTEGER; | ||
exports.MAX_VALID_LIGHT_CLIENT_UPDATES = MAX_VALID_LIGHT_CLIENT_UPDATES; | ||
const MIN_SYNC_COMMITTEE_PARTICIPANTS = 1; //~27 hours | ||
exports.MIN_SYNC_COMMITTEE_PARTICIPANTS = MIN_SYNC_COMMITTEE_PARTICIPANTS; | ||
const LIGHT_CLIENT_UPDATE_TIMEOUT = 2 ** 13; | ||
exports.LIGHT_CLIENT_UPDATE_TIMEOUT = LIGHT_CLIENT_UPDATE_TIMEOUT; | ||
//# sourceMappingURL=constants.js.map |
/** | ||
* @module params | ||
*/ | ||
export * from "./phase0"; | ||
export * from "./lightclient"; | ||
export * from "./phase1"; | ||
export * from "./interface"; | ||
export * from "./beaconParams"; | ||
export * from "./constants"; | ||
export { createIBeaconParams } from "./utils"; | ||
//# sourceMappingURL=index.d.ts.map |
@@ -16,2 +16,44 @@ "use strict"; | ||
var _phase = require("./phase0"); | ||
Object.keys(_phase).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; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function () { | ||
return _phase[key]; | ||
} | ||
}); | ||
}); | ||
var _lightclient = require("./lightclient"); | ||
Object.keys(_lightclient).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
if (key in exports && exports[key] === _lightclient[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function () { | ||
return _lightclient[key]; | ||
} | ||
}); | ||
}); | ||
var _phase2 = require("./phase1"); | ||
Object.keys(_phase2).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
if (key in exports && exports[key] === _phase2[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function () { | ||
return _phase2[key]; | ||
} | ||
}); | ||
}); | ||
var _interface = require("./interface"); | ||
@@ -45,3 +87,17 @@ | ||
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 |
/** | ||
* @module params | ||
*/ | ||
/// <reference types="node" /> | ||
export interface IBeaconParams { | ||
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: Buffer; | ||
MIN_DEPOSIT_AMOUNT: bigint; | ||
MAX_EFFECTIVE_BALANCE: bigint; | ||
EJECTION_BALANCE: bigint; | ||
EFFECTIVE_BALANCE_INCREMENT: bigint; | ||
GENESIS_FORK_VERSION: Buffer; | ||
BLS_WITHDRAWAL_PREFIX: Buffer; | ||
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: bigint; | ||
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: Buffer; | ||
DOMAIN_BEACON_ATTESTER: Buffer; | ||
DOMAIN_RANDAO: Buffer; | ||
DOMAIN_DEPOSIT: Buffer; | ||
DOMAIN_VOLUNTARY_EXIT: Buffer; | ||
DOMAIN_SELECTION_PROOF: Buffer; | ||
DOMAIN_AGGREGATE_AND_PROOF: Buffer; | ||
ALL_FORKS: IFork[]; | ||
} | ||
interface IFork { | ||
previousVersion: number; | ||
currentVersion: number; | ||
epoch: number; | ||
} | ||
export {}; | ||
import { IPhase0Params } from "./phase0"; | ||
import { ILightclientParams } from "./lightclient"; | ||
import { IPhase1Params } from "./phase1"; | ||
export declare type IBeaconParams = IPhase0Params & ILightclientParams & IPhase1Params; | ||
//# sourceMappingURL=interface.d.ts.map |
@@ -6,7 +6,2 @@ import { Schema } from "js-yaml"; | ||
export declare const schema: Schema; | ||
export declare function mapValuesNumToString<T extends { | ||
[key: string]: number | string; | ||
}>(obj: T): { | ||
[K in keyof T]: string; | ||
}; | ||
//# sourceMappingURL=utils.d.ts.map |
@@ -8,3 +8,2 @@ "use strict"; | ||
exports.loadConfigYaml = loadConfigYaml; | ||
exports.mapValuesNumToString = mapValuesNumToString; | ||
exports.schema = void 0; | ||
@@ -18,9 +17,7 @@ | ||
const params = {}; | ||
for (const [fieldName, fieldType] of Object.entries(_beaconParams.BeaconParams.fields)) { | ||
if (input[fieldName]) { | ||
Object.entries(_beaconParams.BeaconParams.fields).forEach(([fieldName, fieldType]) => { | ||
if (input[fieldName] != null) { | ||
params[fieldName] = fieldType.fromJson(input[fieldName]); | ||
} | ||
} | ||
}); | ||
return params; | ||
@@ -45,12 +42,2 @@ } | ||
exports.schema = schema; | ||
function mapValuesNumToString(obj) { | ||
const objAsStrings = {}; | ||
for (const key in obj) { | ||
objAsStrings[key] = String(obj[key]); | ||
} | ||
return objAsStrings; | ||
} | ||
//# sourceMappingURL=utils.js.map |
{ | ||
"name": "@chainsafe/lodestar-params", | ||
"version": "0.16.0", | ||
"version": "0.17.0", | ||
"description": "Chain parameters required for lodestar", | ||
@@ -33,2 +33,4 @@ "author": "ChainSafe Systems", | ||
"prepublishOnly": "yarn build", | ||
"test": "yarn run check-types", | ||
"test:unit": "mocha 'test/**/*.test.ts'", | ||
"test:e2e": "mocha 'test/**/*.test.ts'" | ||
@@ -47,3 +49,3 @@ }, | ||
"dependencies": { | ||
"@chainsafe/ssz": "^0.6.13", | ||
"@chainsafe/ssz": "^0.7.0", | ||
"@types/js-yaml": "^3.12.2", | ||
@@ -53,3 +55,3 @@ "axios": "^0.21.0", | ||
}, | ||
"gitHead": "fe7e44bd008601b71972bee9d50b87246ac943d7" | ||
"gitHead": "083db35cb33eb46e5e4ea6d647dccbfc0854a1b2" | ||
} |
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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
121320
74
1385
1
+ Added@chainsafe/persistent-merkle-tree@0.3.7(transitive)
+ Added@chainsafe/ssz@0.7.1(transitive)
- Removed@chainsafe/persistent-merkle-tree@0.2.3(transitive)
- Removed@chainsafe/ssz@0.6.13(transitive)
Updated@chainsafe/ssz@^0.7.0