Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,7 @@ jobs:
cache: npm
- name: Install Dependencies
run: npm ci
- name: Run Tests
run: npm test
- name: Build Project
run: npm run build
3 changes: 3 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ jobs:
- name: Install Dependencies
run: npm ci

- name: Run Tests
run: npm test

- name: Build Project
run: npm run build

Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,5 +106,7 @@ Generation lives in [`src/plugins`](src/plugins/README.md) — see that README f
Fetch external markdown files to build an up-to-date version.

```console
npm run fetch-external
npm run fetch
```

This refreshes the audit and LIP indexes, then checks documented Safe multisig quorums against public chain RPC endpoints. Use `npm run fetch-audits`, `npm run fetch-lips`, or `npm run fetch-msig-quorums` to run one task.
203 changes: 203 additions & 0 deletions config/redirects.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
const redirects = [
{
to: '/integrations/aave',
from: [
'/integrations/aave/aip',
'/integrations/aave/specification',
'/token-guides/steth-on-aave-caveats',
],
},
{
to: '/guides/lido-tokens-integration-guide',
from: '/guides/steth-integration-guide',
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/lido-v3-whitepaper',
from: '/lido-v3-whitepaper',
},
{
to: '/token-guides/cross-chain-tokens-guide',
from: '/token-guides/wsteth-bridging-guide',
},
{
to: '/run-on-lido/stvaults/',
from: '/guides/stvaults/',
},
{
to: '/run-on-lido/stvaults/node-operators/basic-stvaults/pdg',
from: [
'/guides/stvaults/pdg',
'/run-on-lido/stvaults/pdg',
'/run-on-lido/stvaults/tech-documentation/pdg',
],
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/basic-stvaults/health-monitoring-guide',
from: [
'/run-on-lido/stvaults/health-monitoring-guide',
'/run-on-lido/stvaults/operational-and-management-guides/health-monitoring-guide',
],
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/basic-stvaults/health-emergency-guide',
from: [
'/run-on-lido/stvaults/health-emergency-guide',
'/run-on-lido/stvaults/operational-and-management-guides/health-emergency-guide',
],
},
{
to: '/run-on-lido/stvaults/node-operators/basic-stvaults/node-operator-identification-guide',
from: [
'/run-on-lido/stvaults/node-operators-identification',
'/run-on-lido/stvaults/operational-and-management-guides/node-operators-identification',
],
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/roles-and-permissions',
from: [
'/run-on-lido/stvaults/roles-and-permissions',
'/run-on-lido/stvaults/features-and-mechanics/roles-and-permissions',
],
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/metrics',
from: [
'/run-on-lido/stvaults/parameters-and-metrics',
'/run-on-lido/stvaults/features-and-mechanics/parameters-and-metrics',
],
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/architecture-overview',
from: [
'/run-on-lido/stvaults/integration-overview',
'/run-on-lido/stvaults/tech-documentation/integration-overview',
],
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/stvaults-technical-design',
from: ['/run-on-lido/stvaults/tech-design', '/run-on-lido/stvaults/tech-documentation/tech-design'],
},
{
to: '/run-on-lido/stvaults/node-operators/basic-stvaults/consolidation',
from: ['/run-on-lido/stvaults/consolidation', '/run-on-lido/stvaults/tech-documentation/consolidation'],
},
{
to: '/run-on-lido/stvaults/builders/',
from: [
'/run-on-lido/stvaults/building-guides/',
'/run-on-lido/stvaults/operational-and-management-guides/stvaults-economy-examples',
],
},
{
to: '/run-on-lido/stvaults/builders/basic-stvaults/',
from: '/run-on-lido/stvaults/building-guides/basic-stvault',
},
{
to: '/run-on-lido/stvaults/builders/defi-wrapper/',
from: '/run-on-lido/stvaults/building-guides/pooled-staking-product/',
},
{
to: '/run-on-lido/stvaults/builders/defi-wrapper/multi-user-staking-with-custom-strategy',
from: '/run-on-lido/stvaults/building-guides/pooled-staking-product/custom-strategy',
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/defi-wrapper/vault-owners-and-curators/disconnection',
from: '/run-on-lido/stvaults/building-guides/pooled-staking-product/disconnect-guide',
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/defi-wrapper/vault-owners-and-curators/roles-and-permissions',
from: '/run-on-lido/stvaults/building-guides/pooled-staking-product/roles-and-permissions',
},
{
to: '/run-on-lido/stvaults/node-operators/defi-wrapper/manage-withdrawal-queue',
from: '/run-on-lido/stvaults/building-guides/pooled-staking-product/withdrawals',
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/',
from: ['/run-on-lido/stvaults/features-and-mechanics/', '/run-on-lido/stvaults/tech-documentation/'],
},
{
to: '/run-on-lido/stvaults/concepts-and-reference/exit-validators-permissions',
from: '/run-on-lido/stvaults/features-and-mechanics/exit-validators',
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/',
from: '/run-on-lido/stvaults/operational-and-management-guides/',
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/basic-stvaults/apply-oracle-reports',
from: '/run-on-lido/stvaults/operational-and-management-guides/applying-report-guide',
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/basic-stvaults/disconnection',
from: '/run-on-lido/stvaults/operational-and-management-guides/stvault-disconnect-guide',
},
{
to: '/run-on-lido/stvaults/vault-owners-curators-and-stakers/basic-stvaults/rebalance',
from: '/run-on-lido/stvaults/operational-and-management-guides/voluntary-rebalancing-and-vault-closure',
},
{
to: '/multisigs/emergency-brakes',
from: '/multisigs/emergency-breaks',
},
{
to: '/earn',
from: '/earn/introduction',
},
{
to: '/contracts/circuit-breaker',
from: '/contracts/gate-seal',
},
{
to: '/staking-modules/csm/contracts/Accounting',
from: '/staking-modules/csm/contracts/CSAccounting',
},
{
to: '/staking-modules/csm/contracts/Ejector',
from: '/staking-modules/csm/contracts/CSEjector',
},
{
to: '/staking-modules/csm/contracts/FeeOracle',
from: '/staking-modules/csm/contracts/CSFeeOracle',
},
{
to: '/staking-modules/csm/contracts/ParametersRegistry',
from: '/staking-modules/csm/contracts/CSParametersRegistry',
},
{
to: '/staking-modules/csm/contracts/Verifier',
from: '/staking-modules/csm/contracts/CSVerifier',
},
{
to: '/staking-modules/csm/contracts/ExitPenalties',
from: '/staking-modules/csm/contracts/CSExitPenalties',
},
{
to: '/staking-modules/csm/contracts/FeeDistributor',
from: '/staking-modules/csm/contracts/CSFeeDistributor',
},
{
to: '/staking-modules/csm/contracts/ValidatorStrikes',
from: '/staking-modules/csm/contracts/CSStrikes',
},
{
to: '/staking-modules/csm/contracts/MerkleGateFactory',
from: '/staking-modules/csm/contracts/VettedGateFactory',
},
]

const REDIRECTED_FRAGMENTS = {
'/token-guides/wsteth-bridging-guide#the-proposed-configuration': '#mainnet-proposed-configuration',
}

function resolveRedirect(source) {
const fragmentIndex = source.indexOf('#')
const sourcePath = fragmentIndex === -1 ? source : source.slice(0, fragmentIndex)
const sourceFragment = fragmentIndex === -1 ? '' : source.slice(fragmentIndex)
const redirect = redirects.find(({ from }) => (Array.isArray(from) ? from.includes(sourcePath) : from === sourcePath))

if (!redirect) return source
return redirect.to + (REDIRECTED_FRAGMENTS[source] || sourceFragment)
}

module.exports = { redirects, resolveRedirect }
3 changes: 2 additions & 1 deletion docs/lips.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@ More details on the contribution process and LIPs statuses can be found [here](h

| LIP # | Title | Author | Discussions‑to |
|------------|-------|--------|----------------|
| [36](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-36.md) | NEST — Automated LDO Buyback and Liquidity Provisioning System | Vasiliy Shapovalov, Vitaly Galaichuk, Jen Kopytina, Alexander Belokon, adcv | [Link](https://research.lido.fi/t/liquid-buybacks-nest-execution-with-ldo-wsteth-liquidity/10894) |
| [37](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-37.md) | Execution Delegation Framework | Raman Siamionau, Matsvei Talstalutski | [Link](https://research.lido.fi/t/lip-37-execution-delegation-framework-edf/11746) |

## Implemented

| LIP # | Title | Author | Discussions‑to |
|------------|-------|--------|----------------|
| [36](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-36.md) | NEST — Automated LDO Buyback and Liquidity Provisioning System | Vasiliy Shapovalov, Vitaly Galaichuk, Jen Kopytina, Alexander Belokon, adcv | [Link](https://research.lido.fi/t/liquid-buybacks-nest-execution-with-ldo-wsteth-liquidity/10894) |
| [35](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-35.md) | Staking Router v3 | Maksim Kuraian (@mkurayan) , KRogLA (@KRogLA), Alexander Kolesnikov (@eddort), Anna Mukharram (@Amuhar) | [Link](https://research.lido.fi/t/staking-router-v3-design-implementation-proposal-lip-35/11621) |
| [34](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-34.md) | CircuitBreaker — Programmable panic layer | Azat Serikov | [Link](https://research.lido.fi/t/circuitbreaker-programmable-panic-layer/11400) |
| [33](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-33.md) | Community Staking Module v3 and Curated Module v2 | Dmitry Gusakov (@dgusakov), Sergey Khomutinin (@skhomuti), Dmitry Chernukhin (@madlabman), Vladimir Gorkavenko (@vgorkavenko) | [Link 1](https://research.lido.fi/t/community-staking-module/5917), [Link 2](https://research.lido.fi/t/future-of-the-curated-module-cmv2-landscape/10929) |
Expand Down
6 changes: 2 additions & 4 deletions docs/multisigs/committees.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ This committee operates as part of the [Growth Committee](https://research.lido.

**Purpose of the multisig:** Multisig is used for signing off on the Rewards Share Program, allowing functions such as adding and removing participants to whitelist, and distributing funds (stETH) allocated for Rewards Share Program according to budget proposal and calculated based on Rewards Share Program Policy through the Easy Track.

**Quorum:** 3/6
**Quorum:** 3/5

**Forum topics:**\
[Proposal to form Referral Program Committee and setup a multisig](https://research.lido.fi/t/setup-lido-referral-program-committee-and-use-easy-track-for-the-payouts-ethereum/1808)\
Expand Down Expand Up @@ -85,7 +85,6 @@ This committee operates as part of the [Growth Committee](https://research.lido.
| --- | --- | --- | --- |
| K_G | 0xC0DB9e34A47Ba42B6C17E6adae8f07d1Cb37C3d5 | https://etherscan.io/verifySig/255465 | https://x.com/Kean_Gilbert/status/1829481809970594270 |
| Alex_L | 0xb339918e75664a07bb650513427559920c0a0f6c | https://etherscan.io/verifySig/34671 | https://x.com/Al_lykov/status/1829368876699681203 |
| adcv | 0xcC692077C65dd464cAA7e7ae614328914f8469b3 | https://etherscan.io/verifySig/254203 | https://x.com/adcv_/status/1815411719952621755 |
| Pipistrella | 0x5da409e1cbDABeC67471dB01Ff956f804bb8879f | https://etherscan.io/verifySig/17027 | https://x.com/ppclunghe/status/1672510820025073666?t=UYIyPA1_TfgNO323Q82mIQ&s=03 |
| Willem H | 0x28939ef21690Fe8358E93d661d1ce6d7fA9154F3 | https://etherscan.io/verifySig/297055 | https://x.com/0xWillem/status/1993272885733986451 |
| Samuel_C | 0x0fb6215099f48d723cfb89434c2cb887357bc871 | https://etherscan.io/verifySig/304805 | https://x.com/stakesaurus/status/2036845084491342196 |
Expand Down Expand Up @@ -997,7 +996,7 @@ A Committee without multisig.

**Purpose of the multisig:** The multisig has been established to manage a dedicated reserve for the [Lido Bug Bounty Program](https://immunefi.com/bug-bounty/lido/information/).

**Quorum:** 5/9
**Quorum:** 5/8

**Forum post:** [Establishment of a Dedicated Bug Bounty Reserve Multisig](https://research.lido.fi/t/establishment-of-a-dedicated-bug-bounty-reserve-multisig/10974)

Expand All @@ -1009,7 +1008,6 @@ A Committee without multisig.
| Angelina_L | 0x30ce91eb74e56d0df97c78774b3aca2144f6ad32 | https://etherscan.io/verifySig/296198 | https://x.com/helterswellter/status/2003804133615456344 |
| dgusakov | 0x992ce4eec8288274f60880c7770dda265fcce610 | https://etherscan.io/verifySig/297986 | https://x.com/d_gusakov/status/2000951850158391359 |
| Juan | 0xB8Dcad009E533066F12e408075E10E3a30F1f15A | https://etherscan.io/verifySig/298319 | |
| krogla | 0x000000dfe832ccd7a4011a1fca34602c9a598353 | https://etherscan.io/verifySig/298804 | https://x.com/_krogla/status/2003385873572987224 |
| Alex_L | 0xE61F7F15f91cdb58008cAeaea46E2d3f2BaFF68c | https://etherscan.io/verifySig/297970 | https://x.com/Al_lykov/status/2000924606174220308 |
| Nick K | 0xCDDf6b6CffFa7b61b3048916C9C1262F6410C01f | https://etherscan.io/verifySig/299001 | |
| GrStepanov | 0xf15f39f29b2C57Ab77745E73FD92f33aDA024791 | https://etherscan.io/verifySig/298318 | https://x.com/shalfeyshur/status/2001963106801754378 |
Expand Down
Loading
Loading