Files
lodestar/biome.jsonc
Nico Flaig aceb5b7416 chore: remove eth1 related code (#8692)
**Motivation**

All networks are post-electra now and transition period is completed,
which means due to [EIP-6110](https://eips.ethereum.org/EIPS/eip-6110)
we no longer need to process deposits via eth1 bridge as those are now
processed by the execution layer.

This code is effectively tech debt, no longer exercised and just gets in
the way when doing refactors.

**Description**

Removes all code related to eth1 bridge mechanism to include new
deposits

- removed all eth1 related code, we can no longer produce blocks with
deposits pre-electra (syncing blocks still works)
- building a genesis state from eth1 is no longer supported (only for
testing)
- removed various db repositories related to deposits/eth1 data
- removed various `lodestar_eth1_*` metrics and dashboard panels
- deprecated all `--eth1.*` flags (but kept for backward compatibility)
- moved shared utility functions from eth1 to execution engine module

Closes https://github.com/ChainSafe/lodestar/issues/7682
Closes https://github.com/ChainSafe/lodestar/issues/8654
2025-12-17 15:45:02 +07:00

296 lines
9.1 KiB
JSON

{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"extends": [
"@chainsafe/biomejs-config",
"@chainsafe/biomejs-config/recommended",
"@chainsafe/biomejs-config/nodejs",
"@chainsafe/biomejs-config/esm"
],
"vcs": {
"defaultBranch": "unstable"
},
"assist": {
"actions": {
"source": {
"organizeImports": {
"level": "on",
"options": {
"identifierOrder": "lexicographic",
"groups": [
[
// Bun modules
":BUN:",
// Node.js modules
":NODE:"
],
[
// Modules imported with the `npm:` protocol
"npm:*",
"npm:*/**"
],
[
// Libraries
":PACKAGE:",
// Libraries
":PACKAGE_WITH_PROTOCOL:",
"!@chainsafe/**",
"!@lodestar/**"
],
[
// URLs
":URL:",
// Sharp aliases
":ALIAS:"
],
["@chainsafe/**", "@lodestar/**"],
// All other paths
":PATH:"
]
}
},
"useSortedKeys": { "level": "off", "options": { "sortOrder": "lexicographic" } }
}
}
},
"files": {
"includes": [
"**/packages/**/*/src/**/*.ts",
"**/packages/**/*/test/**/*.ts",
"**/configs/**/*.ts",
"vitest.config.ts",
"!**/lib",
"!packages/**/*/spec-tests",
"!packages/**/*/node_modules/"
]
},
"javascript": {
"globals": ["Bun"]
},
"linter": {
"rules": {
"correctness": {
"useImportExtensions": {
"level": "error",
"options": {
"forceJsExtensions": false
}
},
"useParseIntRadix": {
"level": "off"
},
"noPrivateImports": "error"
},
"performance": {
// This rule should be enabled but with considerations and careful review
"noDelete": "off"
},
"style": {
// Will be enabled in a separate PR
"useArrayLiterals": "off",
// There are a lot of places we mutate params, should be fixed in an independent PR.
"noParameterAssign": "off",
"noRestrictedGlobals": {
"level": "error",
"options": {
"deniedGlobals": { "fetch": "Please use 'fetch' from '@lodestar/api' instead." }
}
},
// In some cases the enums are initialized with values of other enums
"useLiteralEnumMembers": "off",
// We use `+` operator for string concatenation a lot
"useTemplate": "off",
// We use to export types and object without differentiating
"useExportType": "off",
// We use to import types and object without differentiating
"useImportType": "off",
// We prefer to auto-initialize enums
"useEnumInitializers": "off",
"useNamingConvention": {
"level": "error",
"options": {
"strictCase": false,
"requireAscii": true,
"conventions": [
// Skip __dirname and any variable starting with _, for rest check next convention
{
"selector": {
"kind": "variable"
},
"match": "(?:__dirname)|(?:_.*)|(.*)"
},
{
"selector": {
"kind": "variable"
},
"formats": ["camelCase", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "typeLike"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "objectLiteralProperty"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "objectLiteralMethod"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
// Skip any property starting with _ and then check for next convention
{
"selector": {
"kind": "classProperty"
},
"match": "(?:_.*)|(.*)"
},
{
"selector": {
"kind": "classProperty"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "typeProperty"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "typeMethod"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "enumMember"
},
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
},
{
"selector": {
"kind": "indexParameter"
},
"formats": ["camelCase", "PascalCase"]
},
{
"selector": {
"kind": "function"
},
"formats": ["camelCase", "PascalCase"]
}
]
}
},
// Currently there is no way to validate `imports` against package `exports` unless
// we change the tsconfig `moduleResolution`. This is a workaround for most common pattern
// used to export the files from packages
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": "**/lib/**",
"message": "Avoid importing directly from a package's internal 'lib' directory. This can cause issues when the package is updated."
}
]
}
}
},
"suspicious": {
// Will be enabled in separate PR
"useIterableCallbackReturn": "off",
// There is a lot of empty code blocks, should be enabled and clean up separately.
"noEmptyBlockStatements": "off",
// We are using `Object.prototype.hasOwnProperty` a lot because compiling lib is set to prior 2022
"noPrototypeBuiltins": "off"
},
"nursery": {
// Need to enable this rule with exception to anonymous functions
"useExplicitType": "off",
"noFloatingPromises": "error",
"noMisusedPromises": "error"
},
"complexity": {
// Should be done in a separate PR
"useIndexOf": "off",
// Should be done in a separate PR
"useDateNow": "off",
// The code usage looks suspicious so it should be enabled in a separate PR
"noCommaOperator": "off"
}
}
},
"overrides": [
{
"includes": ["**/packages/**/test/**"],
"linter": {
"rules": {
"correctness": { "noPrivateImports": "off" },
"style": { "noRestrictedImports": "off" }
}
}
},
// Code using console output
{
"includes": ["**/packages/cli/src/**", "**/packages/test-utils/src/**", "**/packages/flare/src/**"],
"linter": {
"rules": {
"suspicious": {
"noConsole": "off"
}
}
}
},
// All test files
{
"includes": ["**/packages/spec-test-util/src/**"],
"linter": {
"rules": {
"complexity": {
// During tests we often need to use private/protected attributes, which is only possible with literal keys
"useLiteralKeys": "off"
},
"suspicious": {
// During tests it's quicker to define variables with `let` without specifying types
"noImplicitAnyLet": "off",
// During testing we use `any` type for quick assignments
"noExplicitAny": "off",
// Console logging is often used in tests
"noConsole": "off"
}
}
}
},
{
"includes": [
"**/packages/beacon-node/src/db/buckets.ts",
"**/packages/beacon-node/src/execution/engine/mock.ts",
"**/packages/beacon-node/src/execution/engine/types.ts",
"**/packages/validator/src/buckets.ts",
"**/packages/prover/src/types.ts",
"**/prover/src/utils/process.ts",
"**/prover/src/verified_requests/**/*.ts",
"**/packages/types/src/utils/**/*.ts",
"**/packages/beacon-node/test/spec/bls/bls.ts"
],
"linter": {
"rules": {
"style": {
"useNamingConvention": {
"level": "off",
"options": {}
}
}
}
}
}
]
}