From 535c14e01257b14b3ad31932b9e3304f9ac36635 Mon Sep 17 00:00:00 2001 From: Camembear Date: Fri, 19 Jun 2026 10:20:53 -0400 Subject: [PATCH 1/5] docs(pol): add incentives collector refactor to changelog --- general/proof-of-liquidity/changelog.mdx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/general/proof-of-liquidity/changelog.mdx b/general/proof-of-liquidity/changelog.mdx index b65f471..b66122b 100644 --- a/general/proof-of-liquidity/changelog.mdx +++ b/general/proof-of-liquidity/changelog.mdx @@ -58,6 +58,14 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid ### PoL Contract changes +#### Contracts & Interfaces Renamed + +| Renamed From | Renamed To | +| ------------------------------ | ----------------------------- | +| `BGTIncentiveFeeCollector` | `IncentivesCollector` | +| `IBGTIncentiveFeeCollector` | `IIncentivesCollector` | +| `BGTIncentiveFeeDeployer` | `IncentivesCollectorDeployer` | + #### Functions | Interface added | What | @@ -80,6 +88,7 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid | `withdraw(uint256)` | `Distributor` | | `initialize()` (reinitializer) | `Distributor` | | `rewardToken()` | `StakingRewards`, `RewardVault` | +| `claim(address, address[])` | `IIncentivesCollector`, `IncentivesCollector` | | Functions Removed | Location | | -------------------------------------------------- | ------------------------------------------------- | @@ -136,6 +145,8 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid | `IncentiveFeeCollected` → `IncentivesCollected` | Full rename + parameter rename | | `IncentiveFeeCollectionFailed` → `IncentivesCollectionFailed` | Full rename + parameter rename | | `IncentiveFeeCollectorUpdated` → `IncentiveTokensCollectorUpdated` | Full rename | +| `IncentiveFeesClaimed` → `IncentivesClaimed` | Full rename | +| `IncentiveFeeTokenClaimed` → `IncentiveTokenClaimed` | Full rename | #### Errors From 0710652fd24433c3af835fbb04a264246d950dc7 Mon Sep 17 00:00:00 2001 From: Camembear Date: Mon, 22 Jun 2026 10:20:42 -0400 Subject: [PATCH 2/5] docs(pol): regenerate contracts and apply formatting --- UBIQUITOUS_LANGUAGE.md | 30 ++++++------ build/pol/lst-integration.mdx | 14 +++--- data/contracts.json | 4 +- general/help/faqs.mdx | 2 +- general/help/glossary.mdx | 2 +- general/help/honeypaper.mdx | 47 ++++++++++++++----- general/proof-of-liquidity/changelog.mdx | 10 ++-- general/proof-of-liquidity/incentives.mdx | 6 +-- general/tokens/honey.mdx | 2 +- general/tokens/swbera.mdx | 2 +- nodes/architecture/validator-lifecycle.mdx | 2 +- nodes/overview/node-architecture.mdx | 3 +- nodes/staking-pools/overview.mdx | 2 +- .../generated/core-contracts-table.mdx | 4 +- vale/config/vocabularies/Berachain/accept.txt | 2 +- 15 files changed, 77 insertions(+), 55 deletions(-) diff --git a/UBIQUITOUS_LANGUAGE.md b/UBIQUITOUS_LANGUAGE.md index 37cf278..7d2bf80 100644 --- a/UBIQUITOUS_LANGUAGE.md +++ b/UBIQUITOUS_LANGUAGE.md @@ -28,15 +28,15 @@ ## Contracts -| Term | Definition | Aliases to avoid | -| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- | -| **Incentive commission** | Validator operator's share of incentive tokens: `(amount * commissionRate) / 1e4`. Max 20%, default 5%. | Validator commission (acceptable shorthand) | -| **Incentive Auction** | Settlement where a buyer pays WBERA to `BGTIncentiveFeeCollector` and receives accumulated redirected incentive tokens. | Fee collection | -| **BGTIncentiveFeeCollector** | Installed as `RewardVaultFactory.incentiveTokensCollector`. Splits auction WBERA pro-rata between `WBERAStakerVault` and registered `LSTStakerVault`s. | FeeCollector (different contract — pays BGTStaker, legacy) | -| **IncentiveCollector** | Pool-level contract that auctions operator commission incentive tokens for BERA, flowing to `StakingRewardsVault`. | Not the same as BGTIncentiveFeeCollector | -| **WBERAStakerVault** | Issues sWBERA. Receives WBERA from the Incentive Auction. | Staking Vault (acceptable in user-facing docs) | -| **LSTStakerVault** | Governance-registered vault that receives Incentive Auction WBERA (converted to LST via adapter). | Pool vault (these are not staking pool contracts) | -| **Staking Pool** | Contract where users deposit BERA via `submit()` and receive non-transferable stBERA shares. Managed by a SmartOperator. | — | +| Term | Definition | Aliases to avoid | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- | +| **Incentive commission** | Validator operator's share of incentive tokens: `(amount * commissionRate) / 1e4`. Max 20%, default 5%. | Validator commission (acceptable shorthand) | +| **Incentive Auction** | Settlement where a buyer pays WBERA to `IncentivesCollector` and receives accumulated redirected incentive tokens. | Fee collection | +| **IncentivesCollector** | Installed as `RewardVaultFactory.incentiveTokensCollector`. Splits auction WBERA pro-rata between `WBERAStakerVault` and registered `LSTStakerVault`s. | FeeCollector (different contract — pays BGTStaker, legacy) | +| **IncentiveCollector** | Pool-level contract that auctions operator commission incentive tokens for BERA, flowing to `StakingRewardsVault`. | Not the same as IncentivesCollector | +| **WBERAStakerVault** | Issues sWBERA. Receives WBERA from the Incentive Auction. | Staking Vault (acceptable in user-facing docs) | +| **LSTStakerVault** | Governance-registered vault that receives Incentive Auction WBERA (converted to LST via adapter). | Pool vault (these are not staking pool contracts) | +| **Staking Pool** | Contract where users deposit BERA via `submit()` and receive non-transferable stBERA shares. Managed by a SmartOperator. | — | ## Yield paths @@ -45,16 +45,16 @@ | **Validator operator** | Base rate (0.4 WBERA/block) | BlockRewardController → operator | | **Validator operator** | Incentive commission | RewardVault → operator | | **Vault staker** | Allocated WBERA emissions | Distributor → RewardVault → claim | -| **sWBERA staker** | Incentive Auction WBERA | BGTIncentiveFeeCollector → WBERAStakerVault | -| **LST staker** | Incentive Auction WBERA → LST | BGTIncentiveFeeCollector → LSTAdapter → LSTStakerVault | +| **sWBERA staker** | Incentive Auction WBERA | IncentivesCollector → WBERAStakerVault | +| **LST staker** | Incentive Auction WBERA → LST | IncentivesCollector → LSTAdapter → LSTStakerVault | | **Staking pool depositor** | Operator WBERA + pool incentive auction BERA | SmartOperator + IncentiveCollector → StakingRewardsVault → pool rebase | ## Key relationships - **stBERA is not an LST.** Pool shares have no transfer surface. A staking pool depositor cannot stake stBERA anywhere. - **iBERA is an LST.** Infrared issues iBERA as a transferable ERC-20. Users stake iBERA into the registered LSTStakerVault (siBERA, `0xA350…`) to earn Incentive Auction yield. -- **The core Incentive Auction does not pay staking pools.** BGTIncentiveFeeCollector sends WBERA to WBERAStakerVault and LSTStakerVaults only. Staking pools have their own IncentiveCollector — a separate auction system. -- **sWBERA and LST staker yields come from the same auction.** BGTIncentiveFeeCollector splits WBERA pro-rata by WBERA-denominated totalAssets across both vault types. +- **The core Incentive Auction does not pay staking pools.** IncentivesCollector sends WBERA to WBERAStakerVault and LSTStakerVaults only. Staking pools have their own IncentiveCollector — a separate auction system. +- **sWBERA and LST staker yields come from the same auction.** IncentivesCollector splits WBERA pro-rata by WBERA-denominated totalAssets across both vault types. ## Example dialogue @@ -68,10 +68,10 @@ > > **Dev:** "What about gBERA?" > -> **Domain expert:** "gBERA exists as a token but has no registered LSTStakerVault on the BGTIncentiveFeeCollector. It doesn't earn auction yield until governance registers a vault for it." +> **Domain expert:** "gBERA exists as a token but has no registered LSTStakerVault on the IncentivesCollector. It doesn't earn auction yield until governance registers a vault for it." ## Flagged ambiguities - **"Delegator"**: No `delegate()` for BERA staking. Use **BERA staker**. `DelegationHandler` in contracts-staking-pools is Foundation capital management. `RewardVault.delegateStake()` is custodial receipt-token staking. - **"Staking pool staker" vs "LST staker"**: Distinct roles. Never hyphenate as one group. Pool depositors hold soulbound stBERA. LST stakers hold transferable tokens like iBERA. -- **"FeeCollector" vs "BGTIncentiveFeeCollector"**: Different contracts. FeeCollector pays BGTStaker (legacy). BGTIncentiveFeeCollector splits to sWBERA + LST vaults. Use "incentive tokens collector" as the generic role name. +- **"FeeCollector" vs "IncentivesCollector"**: Different contracts. FeeCollector pays BGTStaker (legacy). IncentivesCollector splits to sWBERA + LST vaults. Use "incentive tokens collector" as the generic role name. diff --git a/build/pol/lst-integration.mdx b/build/pol/lst-integration.mdx index d23c5b6..b0e5b5a 100644 --- a/build/pol/lst-integration.mdx +++ b/build/pol/lst-integration.mdx @@ -3,13 +3,13 @@ title: "LST Integration for PoL Auction Yield" description: "Register an LSTStakerVault so your LST product earns a pro-rata share of WBERA paid through the PoL Incentive Auction." --- -Liquid Staking Token (LST) issuers can plug their staked-LST product into the Berachain Proof of Liquidity (PoL) Incentive Auction. Once an `LSTStakerVault` and its adapter are registered on `BGTIncentiveFeeCollector`, the vault automatically receives a pro-rata share of every WBERA payment auction buyers make against redirected Reward Vault incentive tokens. +Liquid Staking Token (LST) issuers can plug their staked-LST product into the Berachain Proof of Liquidity (PoL) Incentive Auction. Once an `LSTStakerVault` and its adapter are registered on `IncentivesCollector`, the vault automatically receives a pro-rata share of every WBERA payment auction buyers make against redirected Reward Vault incentive tokens. This page is the integrator-facing guide. For the auction mechanics from the protocol side, see [Incentive Marketplace — Incentive fee settlement](/general/proof-of-liquidity/incentives#incentive-fee-settlement). ## What registration enables -When a buyer settles redirected incentive tokens through `BGTIncentiveFeeCollector`, the WBERA they pay is split **pro-rata, by WBERA-denominated total assets**, across: +When a buyer settles redirected incentive tokens through `IncentivesCollector`, the WBERA they pay is split **pro-rata, by WBERA-denominated total assets**, across: - The shared `WBERAStakerVault` (sWBERA stakers). - Every registered `LSTStakerVault` whose LST has an adapter that converts WBERA into the underlying LST. @@ -20,7 +20,7 @@ Stakers of a registered LST do not need to interact with PoL directly. As long a ## How auction yield reaches an LST vault -1. Reward Vaults transfer redirected incentive tokens (incentives not paid as validator commission) into `BGTIncentiveFeeCollector`. +1. Reward Vaults transfer redirected incentive tokens (incentives not paid as validator commission) into `IncentivesCollector`. 2. An auction buyer calls `claimFees(recipient, feeTokens)` and pays WBERA into the collector. 3. The collector splits the paid WBERA pro-rata across the sWBERA Staking Vault and registered `LSTStakerVault`s, sized by each vault's WBERA-denominated total assets. 4. For each registered LST vault, the collector calls the vault's registered **adapter** to convert that WBERA share into the vault's underlying LST, then credits the LST to the vault through `receiveRewards`. @@ -51,7 +51,7 @@ The vault must implement `receiveRewards` so that the collector can credit conve The adapter is the contract that converts WBERA into your underlying LST during auction settlement. It must: -- Accept WBERA from `BGTIncentiveFeeCollector`. +- Accept WBERA from `IncentivesCollector`. - Convert that WBERA into the LST (through your protocol's mint, swap, or wrap path). - Hand the resulting LST to the registered `LSTStakerVault` via `receiveRewards`. @@ -59,14 +59,14 @@ Adapter design is LST-specific. Refer to the iBERA adapter for a working pattern ### 3. Register the vault and adapter with governance -Submit a governance proposal to call `addLstStakerVault` on `BGTIncentiveFeeCollector`, supplying: +Submit a governance proposal to call `addLstStakerVault` on `IncentivesCollector`, supplying: - The deployed `LSTStakerVault` address. - The deployed adapter address. Once the registry write lands, the collector includes the new vault in every subsequent pro-rata split. The vault begins accruing WBERA-sourced LST yield on the next auction settlement. -See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the live `BGTIncentiveFeeCollector` and `LSTStakerVaultFactory` addresses on each network. +See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the live `IncentivesCollector` and `LSTStakerVaultFactory` addresses on each network. ## Operational notes @@ -77,5 +77,5 @@ See [Deployed contract addresses](/build/getting-started/deployed-contracts) for - [Incentive Marketplace — Incentive fee settlement](/general/proof-of-liquidity/incentives#incentive-fee-settlement) — the auction mechanics from the protocol side. - [\$sWBERA Token](/general/tokens/swbera) — the sister product that shares the pro-rata WBERA split. -- [Deployed contract addresses](/build/getting-started/deployed-contracts) — current `BGTIncentiveFeeCollector` and `LSTStakerVaultFactory` addresses. +- [Deployed contract addresses](/build/getting-started/deployed-contracts) — current `IncentivesCollector` and `LSTStakerVaultFactory` addresses. - [Proof of Liquidity Overview](/general/proof-of-liquidity/overview) — the broader PoL picture. diff --git a/data/contracts.json b/data/contracts.json index 39880f9..4f542e0 100644 --- a/data/contracts.json +++ b/data/contracts.json @@ -47,8 +47,8 @@ } }, "bgtIncentiveFeeCollector": { - "name": "BGTIncentiveFeeCollector", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGTIncentiveFeeCollector.json", + "name": "IncentivesCollector", + "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/IncentivesCollector.json", "address": { "berachainMainnet": "0x1984Baf659607Cc5f206c55BB3B00eb3E180190B", "berachainBepolia": "0x1984Baf659607Cc5f206c55BB3B00eb3E180190B" diff --git a/general/help/faqs.mdx b/general/help/faqs.mdx index eb8f792..72c346f 100644 --- a/general/help/faqs.mdx +++ b/general/help/faqs.mdx @@ -63,7 +63,7 @@ description: "Common questions about Berachain." \$sWBERA earns yield from the Incentive Auction. Protocols fund incentive tokens to attract validator reward allocation; after validator commission, the remaining incentive tokens are - redirected to `BGTIncentiveFeeCollector`. Auction buyers pay WBERA to claim those tokens, and that + redirected to `IncentivesCollector`. Auction buyers pay WBERA to claim those tokens, and that WBERA is split pro-rata between the \$sWBERA Staking Vault and registered LST staker vaults. Holding \$sWBERA gives you a share of that yield without needing to manage vault positions or validator selection. diff --git a/general/help/glossary.mdx b/general/help/glossary.mdx index c356b32..a5896a8 100644 --- a/general/help/glossary.mdx +++ b/general/help/glossary.mdx @@ -129,4 +129,4 @@ The process of exchanging one token for another on a decentralized exchange. Swa ## WBERA staking -By staking BERA or WBERA into the Staking Vault, holders receive \$sWBERA and earn yield from the Incentive Auction. After validator commission (default 5%, max 20%), redirected incentive tokens are settled for WBERA via `BGTIncentiveFeeCollector`; auction WBERA is split pro-rata between the \$sWBERA vault and registered LST staker vaults. Read more in [`\$sWBERA`](/general/tokens/swbera). +By staking BERA or WBERA into the Staking Vault, holders receive \$sWBERA and earn yield from the Incentive Auction. After validator commission (default 5%, max 20%), redirected incentive tokens are settled for WBERA via `IncentivesCollector`; auction WBERA is split pro-rata between the \$sWBERA vault and registered LST staker vaults. Read more in [`\$sWBERA`](/general/tokens/swbera). diff --git a/general/help/honeypaper.mdx b/general/help/honeypaper.mdx index fd49d52..88138cb 100644 --- a/general/help/honeypaper.mdx +++ b/general/help/honeypaper.mdx @@ -311,19 +311,40 @@ Overall, BeaconKit represents a significant advancement in blockchain developmen ## References -- [1] Dinesh Kumar, Duraimutharasan, Shanthi, Vennila, Prabu Shankar and Senthil. _Comparative Analysis of Transaction Speed and Throughput in Blockchain and Hashgraph: A Performance Study for Distributed Ledger Technologies._ Journal of Machine and Computing, 3(4), 2023. [https://pdfs.semanticscholar.org/2e97/1b66175ee27ed558fdcfafb3c645ddd3d68d.pdf](https://pdfs.semanticscholar.org/2e97/1b66175ee27ed558fdcfafb3c645ddd3d68d.pdf) -- [2] [https://blog.berachain.com/blog/the-pol-post](https://blog.berachain.com/blog/the-pol-post) -- [3] [https://blog.berachain.com/blog/the-fat-bera-thesis](https://blog.berachain.com/blog/the-fat-bera-thesis) -- [4] Urban J. Jermann. _A Macro Finance Model for Proof-of-Stake Ethereum._ National Bureau of Economic Research (NBER), 2023. [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4335835](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4335835) -- [5] [https://docs.curve.fi/assets/pdf/CurveDAO.pdf](https://docs.curve.fi/assets/pdf/CurveDAO.pdf) -- [6] Vitalik Buterin. _Possible futures of the Ethereum protocol, part 3: The Scourge._ 2024. [https://vitalik.eth.limo/general/2024/10/20/futures3.html](https://vitalik.eth.limo/general/2024/10/20/futures3.html) -- [7] Li Li. _Mitigating Challenges in Ethereum's Proof-of-Stake Consensus: Evaluating the Impact of EigenLayer and Lido._ 2024 [https://arxiv.org/abs/2410.23422](https://arxiv.org/abs/2410.23422) -- [8] [https://research.lido.fi/t/is-lido-good-for-ethereum/5520](https://research.lido.fi/t/is-lido-good-for-ethereum/5520) -- [9] [https://notes.ethereum.org/@djrtwo/risks-of-lsd](https://notes.ethereum.org/@djrtwo/risks-of-lsd) [https://www.mdpi.com/1099-4300/25/9/1320](https://www.mdpi.com/1099-4300/25/9/1320) -- [10] Alex Stokes, Ansgar Dietrichs, Danny Ryan, Martin Holst Swende, light-client. _EIP-4788: Beacon block root in the EVM._ 2022 [https://eips.ethereum.org/EIPS/eip-4788](https://eips.ethereum.org/EIPS/eip-4788) -- [11] [https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) -- [12] [https://docs.cometbft.com/v0.37/spec/abci/](https://docs.cometbft.com/v0.37/spec/abci/) -- [13] [https://ethresear.ch/t/considering-client-diversity-through-the-lens-of-network-performance/18885](https://ethresear.ch/t/considering-client-diversity-through-the-lens-of-network-performance/18885) +- [1] Dinesh Kumar, Duraimutharasan, Shanthi, Vennila, Prabu Shankar and + Senthil. _Comparative Analysis of Transaction Speed and Throughput in Blockchain and Hashgraph: A + Performance Study for Distributed Ledger Technologies._ Journal of Machine and Computing, 3(4), + 2023. + [https://pdfs.semanticscholar.org/2e97/1b66175ee27ed558fdcfafb3c645ddd3d68d.pdf](https://pdfs.semanticscholar.org/2e97/1b66175ee27ed558fdcfafb3c645ddd3d68d.pdf) +- [2] + [https://blog.berachain.com/blog/the-pol-post](https://blog.berachain.com/blog/the-pol-post) +- [3] + [https://blog.berachain.com/blog/the-fat-bera-thesis](https://blog.berachain.com/blog/the-fat-bera-thesis) +- [4] Urban J. Jermann. _A Macro Finance Model for Proof-of-Stake + Ethereum._ National Bureau of Economic Research (NBER), 2023. + [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4335835](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4335835) +- [5] + [https://docs.curve.fi/assets/pdf/CurveDAO.pdf](https://docs.curve.fi/assets/pdf/CurveDAO.pdf) +- [6] Vitalik Buterin. _Possible futures of the Ethereum protocol, part + 3: The Scourge._ 2024. + [https://vitalik.eth.limo/general/2024/10/20/futures3.html](https://vitalik.eth.limo/general/2024/10/20/futures3.html) +- [7] Li Li. _Mitigating Challenges in Ethereum's Proof-of-Stake + Consensus: Evaluating the Impact of EigenLayer and Lido._ 2024 + [https://arxiv.org/abs/2410.23422](https://arxiv.org/abs/2410.23422) +- [8] + [https://research.lido.fi/t/is-lido-good-for-ethereum/5520](https://research.lido.fi/t/is-lido-good-for-ethereum/5520) +- [9] + [https://notes.ethereum.org/@djrtwo/risks-of-lsd](https://notes.ethereum.org/@djrtwo/risks-of-lsd) + [https://www.mdpi.com/1099-4300/25/9/1320](https://www.mdpi.com/1099-4300/25/9/1320) +- [10] Alex Stokes, Ansgar Dietrichs, Danny Ryan, Martin Holst Swende, + light-client. _EIP-4788: Beacon block root in the EVM._ 2022 + [https://eips.ethereum.org/EIPS/eip-4788](https://eips.ethereum.org/EIPS/eip-4788) +- [11] + [https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) +- [12] + [https://docs.cometbft.com/v0.37/spec/abci/](https://docs.cometbft.com/v0.37/spec/abci/) +- [13] + [https://ethresear.ch/t/considering-client-diversity-through-the-lens-of-network-performance/18885](https://ethresear.ch/t/considering-client-diversity-through-the-lens-of-network-performance/18885) ## Appendix diff --git a/general/proof-of-liquidity/changelog.mdx b/general/proof-of-liquidity/changelog.mdx index b66122b..d248da5 100644 --- a/general/proof-of-liquidity/changelog.mdx +++ b/general/proof-of-liquidity/changelog.mdx @@ -60,11 +60,11 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid #### Contracts & Interfaces Renamed -| Renamed From | Renamed To | -| ------------------------------ | ----------------------------- | -| `BGTIncentiveFeeCollector` | `IncentivesCollector` | -| `IBGTIncentiveFeeCollector` | `IIncentivesCollector` | -| `BGTIncentiveFeeDeployer` | `IncentivesCollectorDeployer` | +| Renamed From | Renamed To | +| --------------------------- | ----------------------------- | +| `BGTIncentiveFeeCollector` | `IncentivesCollector` | +| `IBGTIncentiveFeeCollector` | `IIncentivesCollector` | +| `BGTIncentiveFeeDeployer` | `IncentivesCollectorDeployer` | #### Functions diff --git a/general/proof-of-liquidity/incentives.mdx b/general/proof-of-liquidity/incentives.mdx index f4cf4ec..15df1e6 100644 --- a/general/proof-of-liquidity/incentives.mdx +++ b/general/proof-of-liquidity/incentives.mdx @@ -45,7 +45,7 @@ Rates can increase when the token manager deposits more inventory. Decreasing ra ## Commission and payouts -Validator commission is capped at **20%**. Reward Vault incentive processing sends the validator commission to the validator operator and sends the remaining incentive tokens to `BGTIncentiveFeeCollector`. +Validator commission is capped at **20%**. Reward Vault incentive processing sends the validator commission to the validator operator and sends the remaining incentive tokens to `IncentivesCollector`. ```mermaid actions={false} flowchart LR @@ -58,10 +58,10 @@ flowchart LR ## Incentive fee settlement -The redirected incentive share collects in `BGTIncentiveFeeCollector`, the shared settlement path for Reward Vault incentives. Incentive tokens accumulate in the collector, +The redirected incentive share collects in `IncentivesCollector`, the shared settlement path for Reward Vault incentives. Incentive tokens accumulate in the collector, and WBERA paid into settlement becomes yield for \$sWBERA stakers and registered LST stakers. -See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the current **BGTIncentiveFeeCollector** address. +See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the current **IncentivesCollector** address. ### Settlement behavior diff --git a/general/tokens/honey.mdx b/general/tokens/honey.mdx index de3a9b1..e82a0bd 100644 --- a/general/tokens/honey.mdx +++ b/general/tokens/honey.mdx @@ -103,4 +103,4 @@ Let's walk through minting and redeeming `$HONEY` with `$USDC`: - User redeems `1,000 $HONEY` for `$USDC` - Receives `999.5 $USDC` (0.05% fee = 0.5 $USDC) -- The `0.5 $USDC` fee is split between polFeeCollector (BGTIncentiveFeeCollector, routing fees into sWBERA yield) and feeReceiver based on governance-configured polFeeCollectorFeeRate +- The `0.5 $USDC` fee is split between polFeeCollector (IncentivesCollector, routing fees into sWBERA yield) and feeReceiver based on governance-configured polFeeCollectorFeeRate diff --git a/general/tokens/swbera.mdx b/general/tokens/swbera.mdx index f2f313c..f1fcfdf 100644 --- a/general/tokens/swbera.mdx +++ b/general/tokens/swbera.mdx @@ -19,7 +19,7 @@ You can stake either native BERA (which the system automatically wraps to WBERA) ### Incentive Auction yield -Yield comes from the Incentive Auction. When Reward Vaults process funded incentive tokens, validator commission (default 5%, max 20%) goes to the validator operator and the remaining incentive tokens are redirected to `BGTIncentiveFeeCollector`. Auction buyers pay WBERA to claim those tokens; the \$sWBERA vault's share of that WBERA (pro-rata with registered LST staker vaults) increases the underlying WBERA per \$sWBERA. +Yield comes from the Incentive Auction. When Reward Vaults process funded incentive tokens, validator commission (default 5%, max 20%) goes to the validator operator and the remaining incentive tokens are redirected to `IncentivesCollector`. Auction buyers pay WBERA to claim those tokens; the \$sWBERA vault's share of that WBERA (pro-rata with registered LST staker vaults) increases the underlying WBERA per \$sWBERA. For direct claim routing from Reward Vaults into \$sWBERA, see [RewardVaultHelper claim flow](/build/pol/reward-vault-helper-claim-flow). diff --git a/nodes/architecture/validator-lifecycle.mdx b/nodes/architecture/validator-lifecycle.mdx index 573bb23..ceb0fbd 100644 --- a/nodes/architecture/validator-lifecycle.mdx +++ b/nodes/architecture/validator-lifecycle.mdx @@ -64,7 +64,7 @@ The validator's journey begins with a deposit transaction on the Execution Layer The initial deposit transaction establishes a connection between a validator's Consensus Layer identity and its Execution Layer identity and decides the withdrawal address for the $BERA stake. -- **No Verification Delay**: On the first deposit, the validator's signature is fully verified (similar to ETH2), but deposits are not assessed until end of epoch. Subsequent deposits simply increase the validator's balance (no additional signature verification is done). +- **No Verification Delay**: On the first deposit, the validator's signature is fully verified (similar to ETH2), but deposits are not assessed until end of epoch. Subsequent deposits simply increase the validator's balance (no additional signature verification is done). - **Minimum Requirement**: A total of **250,000 BERA** is required for a validator to reach the Deposited state. (Multiple deposits can accumulate to this amount.) - **Signature Verification**: On the first deposit, the validator's signature is fully verified. Subsequent deposits simply increase the validator's balance. diff --git a/nodes/overview/node-architecture.mdx b/nodes/overview/node-architecture.mdx index b860e83..71d72d8 100644 --- a/nodes/overview/node-architecture.mdx +++ b/nodes/overview/node-architecture.mdx @@ -19,7 +19,7 @@ Berachain follows a decoupled node architecture standard in modern Ethereum-equi Architecturally, RPC nodes and validator nodes are nearly identical. Both maintain a complete copy of the blockchain state and participate in peer-to-peer transaction gossip. An RPC node can become a validator node by joining the [Active Set](#active-set) through interaction with the [BeaconDeposit](/build/getting-started/deployed-contracts) contract by -meeting the \$BERA [stake requirements](#validator-stake-requirements). To learn about the economics of becoming a validator, +meeting the \$BERA [stake requirements](#validator-stake-requirements). To learn about the economics of becoming a validator, see the [Validator Lifecycle](/nodes/architecture/validator-lifecycle) and the [Be A Validator](/nodes/guides/become-a-validator) guides. ## Client Separation @@ -47,6 +47,7 @@ Because the node is split into two clients, it participates in two entirely sepa For firewall and networking configurations, operators must ensure both P2P ports are open and publicly dialable. For more details on securing and optimizing these networks, see the [Production Checklist](/nodes/operations/production-checklist). ## Validator active set + If the active set is not full, the minimum stake requirement is **250,000** \$BERA. If the active set is full, the minimum stake requirement is **10,000** \$BERA more than the amount staked by the last validator in the active set. diff --git a/nodes/staking-pools/overview.mdx b/nodes/staking-pools/overview.mdx index a39f749..f8b8ede 100644 --- a/nodes/staking-pools/overview.mdx +++ b/nodes/staking-pools/overview.mdx @@ -54,7 +54,7 @@ When stakers interact with your staking pool, they deposit BERA and immediately **Staking pool shares (stBERA) are not LSTs.** They cannot be registered with - `BGTIncentiveFeeCollector` as an `LSTStakerVault` asset and cannot be deposited into the \$sWBERA + `IncentivesCollector` as an `LSTStakerVault` asset and cannot be deposited into the \$sWBERA Staking Vault. Pool-level yield reaches stBERA holders through the pool's own `SmartOperator` and `IncentiveCollector` — a separate path from the PoL Incentive Auction yield. diff --git a/snippets/contracts/generated/core-contracts-table.mdx b/snippets/contracts/generated/core-contracts-table.mdx index ef451e8..81fcff3 100644 --- a/snippets/contracts/generated/core-contracts-table.mdx +++ b/snippets/contracts/generated/core-contracts-table.mdx @@ -9,7 +9,7 @@ | Distributor | [`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | | DedicatedEmissionStreamManager | [`0x813dCdBa9197947792985c866cE98D6739cA821A`](https://berascan.com/address/0x813dCdBa9197947792985c866cE98D6739cA821A) | | FeeCollector | [`0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://berascan.com/address/0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | -| BGTIncentiveFeeCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | +| IncentivesCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | | RewardVaultFactory | [`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | | RewardVaultHelper | [`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | | LSTStakerVaultFactory | [`0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500`](https://berascan.com/address/0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500) | @@ -51,7 +51,7 @@ | Distributor | [`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://testnet.berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | | DedicatedEmissionStreamManager | [`0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd`](https://testnet.berascan.com/address/0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd) | | FeeCollector | [`0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://testnet.berascan.com/address/0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | -| BGTIncentiveFeeCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://testnet.berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | +| IncentivesCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://testnet.berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | | RewardVaultFactory | [`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://testnet.berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | | RewardVaultHelper | [`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://testnet.berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | | LSTStakerVaultFactory | [`0xAf10B532cCC25B26a8e28913D5C4056a77e7a178`](https://testnet.berascan.com/address/0xAf10B532cCC25B26a8e28913D5C4056a77e7a178) | diff --git a/vale/config/vocabularies/Berachain/accept.txt b/vale/config/vocabularies/Berachain/accept.txt index 95a7b9b..75cd178 100644 --- a/vale/config/vocabularies/Berachain/accept.txt +++ b/vale/config/vocabularies/Berachain/accept.txt @@ -28,7 +28,7 @@ BlockRewardController RewardVaultFactory BGTStaker FeeCollector -BGTIncentiveFeeCollector +IncentivesCollector Distributor ProtocolFeesCollector BalancerHelpers From f9fcc8d54ddf84fc0810490ffe16e5e0469dc68c Mon Sep 17 00:00:00 2001 From: Camembera Date: Fri, 26 Jun 2026 11:52:14 -0400 Subject: [PATCH 3/5] Update fusaka.mdx Signed-off-by: Camembera --- nodes/operations/fusaka.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodes/operations/fusaka.mdx b/nodes/operations/fusaka.mdx index 53d1c02..dd47b3c 100644 --- a/nodes/operations/fusaka.mdx +++ b/nodes/operations/fusaka.mdx @@ -57,7 +57,7 @@ The old style of `--chain ` still works, but you must be sure to fetch and 2. **DO NOT deploy this on a mainnet node** until 1.4.1 binaries designated for mainnet are released - approx June 22. 3. Once released, obtain release binaries of BeaconKit and Bera-Reth from the [recommended versions](/nodes/architecture/evm-execution) page. 4. Adjust Bera-Reth startup: - - Change your `--chain` option to `--chain bepolia` and remove `--bootnodes [enode-list]`. + - Change your `--chain` option to `--chain (mainnet|bepolia)` and remove `--bootnodes [enode-list]`. - OR download and fetch the current bepolia genesis file from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it. 5. No changes are needed to BeaconKit options. 6. Start the new `beacond` and `bera-reth` binaries. From 2e1ffb96634a4452f05ab990758c273ce7fcc90f Mon Sep 17 00:00:00 2001 From: Camembear Date: Fri, 26 Jun 2026 11:55:44 -0400 Subject: [PATCH 4/5] Update PoL fork docs guidance Prefer the renamed incentives collector claim entrypoint and align POL address mapping with post-fork field names. --- build/guides/community/overview.mdx | 12 ++++++------ build/pol/lst-integration.mdx | 2 +- data/pol-addresses-mapping.json | 4 ++-- general/proof-of-liquidity/changelog.mdx | 2 ++ nodes/operations/fusaka.mdx | 4 ++-- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/build/guides/community/overview.mdx b/build/guides/community/overview.mdx index 623ed23..a08bf9c 100644 --- a/build/guides/community/overview.mdx +++ b/build/guides/community/overview.mdx @@ -46,12 +46,12 @@ These are a list of community developer guides for Berachain. ## Indexing and Querying -| Project Name | Git Repository | -| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| Index & Query Berachain Data with Goldsky | [GitHub](https://github.com/berachain/guides/tree/main/apps/goldsky-subgraph) | -| Index & Query Berachain Data with The Graph | [Guide](https://thegraph.com/docs/en/subgraphs/quick-start/) | -| Envio Indexer ERC20 | [GitHub](https://github.com/berachain/guides/tree/main/apps/envio-indexer-erc20) | -| Index & Query Berachain Data with SubQuery | [Guide](https://subquery.network/indexer/berachain-bepolia-testnet) | +| Project Name | Git Repository | +| ------------------------------------------- | -------------------------------------------------------------------------------- | +| Index & Query Berachain Data with Goldsky | [GitHub](https://github.com/berachain/guides/tree/main/apps/goldsky-subgraph) | +| Index & Query Berachain Data with The Graph | [Guide](https://thegraph.com/docs/en/subgraphs/quick-start/) | +| Envio Indexer ERC20 | [GitHub](https://github.com/berachain/guides/tree/main/apps/envio-indexer-erc20) | +| Index & Query Berachain Data with SubQuery | [Guide](https://subquery.network/indexer/berachain-bepolia-testnet) | ## Verifiable Randomness diff --git a/build/pol/lst-integration.mdx b/build/pol/lst-integration.mdx index b0e5b5a..65cc1ba 100644 --- a/build/pol/lst-integration.mdx +++ b/build/pol/lst-integration.mdx @@ -21,7 +21,7 @@ Stakers of a registered LST do not need to interact with PoL directly. As long a ## How auction yield reaches an LST vault 1. Reward Vaults transfer redirected incentive tokens (incentives not paid as validator commission) into `IncentivesCollector`. -2. An auction buyer calls `claimFees(recipient, feeTokens)` and pays WBERA into the collector. +2. An auction buyer calls `claim(recipient, incentiveTokens)` and pays WBERA into the collector. 3. The collector splits the paid WBERA pro-rata across the sWBERA Staking Vault and registered `LSTStakerVault`s, sized by each vault's WBERA-denominated total assets. 4. For each registered LST vault, the collector calls the vault's registered **adapter** to convert that WBERA share into the vault's underlying LST, then credits the LST to the vault through `receiveRewards`. 5. The vault's per-share value rises; its stakers earn the increment without taking any action. diff --git a/data/pol-addresses-mapping.json b/data/pol-addresses-mapping.json index 26169f7..bd6bd16 100644 --- a/data/pol-addresses-mapping.json +++ b/data/pol-addresses-mapping.json @@ -47,12 +47,12 @@ }, { "polField": "bgtIncentiveDistributorImpl", "kind": "implementation", "published": false }, { - "polField": "bgtIncentiveFeeCollector", + "polField": "incentivesCollector", "contractsPath": "pol.bgtIncentiveFeeCollector", "kind": "proxy", "published": true }, - { "polField": "bgtIncentiveFeeCollectorImpl", "kind": "implementation", "published": false }, + { "polField": "incentivesCollectorImpl", "kind": "implementation", "published": false }, { "polField": "wberaStakerVault", "contractsPath": "tokens.wberaStakerVault", "kind": "proxy", "published": true }, { "polField": "wberaStakerVaultImpl", "kind": "implementation", "published": false }, { diff --git a/general/proof-of-liquidity/changelog.mdx b/general/proof-of-liquidity/changelog.mdx index d248da5..4ad8099 100644 --- a/general/proof-of-liquidity/changelog.mdx +++ b/general/proof-of-liquidity/changelog.mdx @@ -90,6 +90,8 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid | `rewardToken()` | `StakingRewards`, `RewardVault` | | `claim(address, address[])` | `IIncentivesCollector`, `IncentivesCollector` | +`claimFees(address, address[])` remains exposed on `IIncentivesCollector` and `IncentivesCollector`; it delegates to the same settlement flow as `claim(address, address[])`. + | Functions Removed | Location | | -------------------------------------------------- | ------------------------------------------------- | | `setBaseRate(uint256)` | `IBlockRewardController`, `BlockRewardController` | diff --git a/nodes/operations/fusaka.mdx b/nodes/operations/fusaka.mdx index 53d1c02..c3088f4 100644 --- a/nodes/operations/fusaka.mdx +++ b/nodes/operations/fusaka.mdx @@ -57,8 +57,8 @@ The old style of `--chain ` still works, but you must be sure to fetch and 2. **DO NOT deploy this on a mainnet node** until 1.4.1 binaries designated for mainnet are released - approx June 22. 3. Once released, obtain release binaries of BeaconKit and Bera-Reth from the [recommended versions](/nodes/architecture/evm-execution) page. 4. Adjust Bera-Reth startup: - - Change your `--chain` option to `--chain bepolia` and remove `--bootnodes [enode-list]`. - - OR download and fetch the current bepolia genesis file from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it. + - Change your `--chain` option to `--chain bepolia` or `--chain mainnet`, and remove `--bootnodes [enode-list]`. + - OR download and fetch the current genesis file for your network from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it. 5. No changes are needed to BeaconKit options. 6. Start the new `beacond` and `bera-reth` binaries. From dfee6d36a1d02fadc2f38f16a9807eb2e1825940 Mon Sep 17 00:00:00 2001 From: Camembear Date: Fri, 26 Jun 2026 16:38:05 -0400 Subject: [PATCH 5/5] Update deployed contract links --- build/bex/deployed-contracts.mdx | 5 - build/getting-started/deployed-contracts.mdx | 8 - data/contracts.json | 185 ++++++++++--- nodes/operations/fusaka.mdx | 14 +- scripts/contracts/generate-pages.mjs | 212 +++++++++++---- .../generated/bend-contracts-table.mdx | 111 ++++++-- .../generated/bex-contracts-table.mdx | 248 ++++++++++++++++-- .../generated/core-contracts-table.mdx | 152 ++++++----- .../staking-pools-singletons-table.mdx | 68 ++++- 9 files changed, 768 insertions(+), 235 deletions(-) diff --git a/build/bex/deployed-contracts.mdx b/build/bex/deployed-contracts.mdx index 86a90f7..e299b27 100644 --- a/build/bex/deployed-contracts.mdx +++ b/build/bex/deployed-contracts.mdx @@ -18,9 +18,4 @@ For more information, see the [Balancer disclosure](https://forum.balancer.fi/t/ The following is a list of contract addresses for interacting with Berachain BEX. - - A full list of contract ABIs can be found at - [github.com/berachain/doc-abis](https://github.com/berachain/doc-abis). - - diff --git a/build/getting-started/deployed-contracts.mdx b/build/getting-started/deployed-contracts.mdx index 754f188..2b3b416 100644 --- a/build/getting-started/deployed-contracts.mdx +++ b/build/getting-started/deployed-contracts.mdx @@ -4,7 +4,6 @@ description: "Berachain core and staking-pool contract addresses by network." --- import CoreContractsTable from "/snippets/contracts/generated/core-contracts-table.mdx"; -import StakingPoolSingletonsTable from "/snippets/contracts/generated/staking-pools-singletons-table.mdx"; For **BEX** (DEX) addresses, see [BEX deployed contracts](/build/bex/deployed-contracts). For **Bend** (lending) addresses, see [Bend deployed contracts](/build/bend/deployed-contracts). @@ -12,7 +11,6 @@ All contracts are verified at the [block explorer](https://berascan.com). - ABI files: [berachain/abis](https://github.com/berachain/abis). - Core protocol: [berachain/contracts](https://github.com/berachain/contracts). -- Staking pools: [berachain/contracts-staking-pools](https://github.com/berachain/contracts-staking-pools). All audit reports are publicly available on @@ -20,9 +18,3 @@ All contracts are verified at the [block explorer](https://berascan.com). - -## Staking pool contracts - -Shared singleton addresses for staking pools are listed below. For per-pool proxies, behavior, and links to the guides repo, see [Staking pool contracts](/nodes/staking-pools/contracts). - - diff --git a/data/contracts.json b/data/contracts.json index 4f542e0..79304f8 100644 --- a/data/contracts.json +++ b/data/contracts.json @@ -9,26 +9,47 @@ "pol": { "berachef": { "name": "BeraChef", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BeraChef.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BeraChef.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BeraChef.json" + }, "address": { "berachainMainnet": "0xdf960E8F3F19C481dDE769edEDD439ea1a63426a", "berachainBepolia": "0xdf960E8F3F19C481dDE769edEDD439ea1a63426a" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/BeraChef.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BeraChef.sol" } }, "blockRewardController": { "name": "BlockRewardController", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BlockRewardController.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BlockRewardController.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BlockRewardController.json" + }, "address": { "berachainMainnet": "0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e", "berachainBepolia": "0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/BlockRewardController.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BlockRewardController.sol" } }, "distributor": { "name": "Distributor", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/Distributor.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/Distributor.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/Distributor.json" + }, "address": { "berachainMainnet": "0xD2f19a79b026Fb636A7c300bF5947df113940761", "berachainBepolia": "0xD2f19a79b026Fb636A7c300bF5947df113940761" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/Distributor.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/Distributor.sol" } }, "dedicatedEmissionStreamManager": { @@ -36,106 +57,198 @@ "address": { "berachainMainnet": "0x813dCdBa9197947792985c866cE98D6739cA821A", "berachainBepolia": "0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd" + }, + "abi": { + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/DedicatedEmissionStreamManager.json", + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/DedicatedEmissionStreamManager.json" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/DedicatedEmissionStreamManager.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/DedicatedEmissionStreamManager.sol" } }, "feeCollector": { "name": "FeeCollector", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/FeeCollector.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/FeeCollector.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/FeeCollector.json" + }, "address": { "berachainMainnet": "0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650", "berachainBepolia": "0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/FeeCollector.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/FeeCollector.sol" } }, "bgtIncentiveFeeCollector": { "name": "IncentivesCollector", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/IncentivesCollector.json", + "abi": { + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/IncentivesCollector.json", + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/IncentivesCollector.json" + }, "address": { "berachainMainnet": "0x1984Baf659607Cc5f206c55BB3B00eb3E180190B", "berachainBepolia": "0x1984Baf659607Cc5f206c55BB3B00eb3E180190B" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/IncentivesCollector.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/IncentivesCollector.sol" } }, "rewardVaultFactory": { "name": "RewardVaultFactory", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultFactory.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultFactory.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultFactory.json" + }, "address": { "berachainMainnet": "0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8", "berachainBepolia": "0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultFactory.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultFactory.sol" } }, "rewardVaultHelper": { "name": "RewardVaultHelper", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultHelper.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultHelper.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultHelper.json" + }, "address": { "berachainMainnet": "0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2", "berachainBepolia": "0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultHelper.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultHelper.sol" } }, "lstStakerVaultFactory": { "name": "LSTStakerVaultFactory", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/lst/LSTStakerVaultFactory.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/lst/LSTStakerVaultFactory.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/lst/LSTStakerVaultFactory.json" + }, "address": { "berachainMainnet": "0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500", "berachainBepolia": "0xAf10B532cCC25B26a8e28913D5C4056a77e7a178" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/lst/LSTStakerVaultFactory.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/lst/LSTStakerVaultFactory.sol" } }, "honeyFactory": { "name": "HoneyFactory", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/HoneyFactory.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/HoneyFactory.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/HoneyFactory.json" + }, "address": { "berachainMainnet": "0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401", "berachainBepolia": "0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/honey/HoneyFactory.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/honey/HoneyFactory.sol" } } }, "tokens": { "bgtToken": { "name": "BGT Token", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGT.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGT.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BGT.json" + }, "address": { "berachainMainnet": "0x656b95E550C07a9ffe548bd4085c72418Ceb1dba", "berachainBepolia": "0x656b95E550C07a9ffe548bd4085c72418Ceb1dba" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/BGT.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/BGT.sol" } }, "wbera": { "name": "WBERA", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/WBERA.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/WBERA.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/WBERA.json" + }, "address": { "berachainMainnet": "0x6969696969696969696969696969696969696969", "berachainBepolia": "0x6969696969696969696969696969696969696969" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/WBERA.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/WBERA.sol" } }, "honey": { "name": "HONEY", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/Honey.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/Honey.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/Honey.json" + }, "address": { "berachainMainnet": "0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce", "berachainBepolia": "0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/honey/Honey.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/honey/Honey.sol" } }, "wberaStakerVault": { "name": "WBERA Staker Vault (sWBERA)", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/WBERAStakerVault.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/WBERAStakerVault.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/WBERAStakerVault.json" + }, "address": { "berachainMainnet": "0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a", "berachainBepolia": "0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/WBERAStakerVault.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/WBERAStakerVault.sol" } } }, "governance": { "governance": { "name": "Governance", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/BerachainGovernance.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/BerachainGovernance.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/BerachainGovernance.json" + }, "address": { "berachainMainnet": "0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5", "berachainBepolia": "0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/gov/BerachainGovernance.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/gov/BerachainGovernance.sol" } }, "timelock": { "name": "Timelock", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/TimeLock.json", + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/TimeLock.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/TimeLock.json" + }, "address": { "berachainMainnet": "0xb5f2000b5744f207c931526cAE2134cAa8b6862a", "berachainBepolia": "0xb5f2000b5744f207c931526cAE2134cAa8b6862a" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/gov/TimeLock.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/gov/TimeLock.sol" } } }, @@ -145,6 +258,14 @@ "address": { "berachainMainnet": "0x4242424242424242424242424242424242424242", "berachainBepolia": "0x4242424242424242424242424242424242424242" + }, + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BeaconDeposit.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BeaconDeposit.json" + }, + "source": { + "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/BeaconDeposit.sol", + "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/BeaconDeposit.sol" } }, "create2": { @@ -153,7 +274,8 @@ "address": { "berachainMainnet": "0x4e59b44847b379578588920cA78FbF26c0B4956C", "berachainBepolia": "0x4e59b44847b379578588920cA78FbF26c0B4956C" - } + }, + "reference": "https://github.com/Arachnid/deterministic-deployment-proxy" }, "multicall3": { "name": "Multicall3", @@ -161,7 +283,8 @@ "address": { "berachainMainnet": "0xcA11bde05977b3631167028862bE2a173976CA11", "berachainBepolia": "0xcA11bde05977b3631167028862bE2a173976CA11" - } + }, + "reference": "https://github.com/mds1/multicall" }, "permit2": { "name": "Permit2", @@ -169,7 +292,8 @@ "address": { "berachainMainnet": "0x000000000022D473030F116dDEE9F6B43aC78BA3", "berachainBepolia": "0x000000000022D473030F116dDEE9F6B43aC78BA3" - } + }, + "reference": "https://docs.uniswap.org/contracts/permit2/overview" } }, "nfts": { @@ -219,7 +343,6 @@ "bex": { "vault": { "name": "Vault", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IVault.abi.json", "address": { "berachainMainnet": "0x4Be03f781C497A489E3cB0287833452cA9B9E80B", "berachainBepolia": "0x708cA656b68A6b7384a488A36aD33505a77241FE" @@ -227,7 +350,6 @@ }, "protocolFeesCollector": { "name": "ProtocolFeesCollector", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesCollector.abi.json", "address": { "berachainMainnet": "0xB8Cf46Cf1b1476E707619913a70B2085d26f1707", "berachainBepolia": "0x05A607aCf3548E84DD1E44c3706F850c849058Da" @@ -235,7 +357,6 @@ }, "balancerHelpers": { "name": "BalancerHelpers", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IBalancerHelpers.abi.json", "address": { "berachainMainnet": "0x5083737EC75a728c265BE578C9d0d5333a2c5951", "berachainBepolia": "0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f" @@ -243,7 +364,6 @@ }, "poolCreationHelper": { "name": "PoolCreationHelper", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IPoolCreationHelper.abi.json", "address": { "berachainMainnet": "0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2", "berachainBepolia": "0x0dC9964F6CA33d9EF38DEB4925234766127C6B36" @@ -251,7 +371,6 @@ }, "protocolFeesWithdrawer": { "name": "ProtocolFeesWithdrawer", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesWithdrawer.abi.json", "address": { "berachainMainnet": "0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7", "berachainBepolia": "0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06" @@ -259,7 +378,6 @@ }, "stablePoolFactory": { "name": "ComposableStablePoolFactory", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IComposableStablePoolFactoryCreateV6.abi.json", "address": { "berachainMainnet": "0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1", "berachainBepolia": "0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1" @@ -281,7 +399,6 @@ }, "balancerRelayer": { "name": "BalancerRelayer", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IBalancerRelayer.abi.json", "address": { "berachainMainnet": "0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7", "berachainBepolia": "0x343215E156Ff586711a5B8C49Fe3099BAF22624C" @@ -289,7 +406,6 @@ }, "weightedPoolFactory": { "name": "WeightedPoolFactory", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IWeightedPoolFactory.abi.json", "address": { "berachainMainnet": "0xa966fA8F2d5B087FFFA499C0C1240589371Af409", "berachainBepolia": "0xf1d23276C7b271B2aC595C78977b2312E9954D57" @@ -297,7 +413,6 @@ }, "protocolFeePercentagesProvider": { "name": "ProtocolFeePercentagesProvider", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeePercentagesProvider.abi.json", "address": { "berachainMainnet": "0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf", "berachainBepolia": "0x8119E412E00fe3c857739E95dB147817Bf615dB8" @@ -305,7 +420,6 @@ }, "balancerQueries": { "name": "BalancerQueries", - "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IBalancerQueries.abi.json", "address": { "berachainMainnet": "0x3C612e132624f4Bd500eE1495F54565F0bcc9b59", "berachainBepolia": "0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92" @@ -440,7 +554,10 @@ "berachainMainnet": "0xb79b43dBA821Cb67751276Ce050fF4111445fB99", "berachainBepolia": "0x24b8223864d3936F56e5a24C4245ae7620471D4C" }, - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json" + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/StakingPoolContractsFactory.json" + } }, "delegationHandlerFactory": { "name": "DelegationHandlerFactory", @@ -448,7 +565,10 @@ "berachainMainnet": "0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0", "berachainBepolia": "0x0aEf09EC97bAc354d31F180b401454cB76abc395" }, - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json" + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/delegation/DelegationHandlerFactory.json" + } }, "withdrawalVault": { "name": "WithdrawalVault", @@ -456,7 +576,10 @@ "berachainMainnet": "0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4", "berachainBepolia": "0xBBed2D94338cdE2926A8C0576432De32C05c66e9" }, - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json" + "abi": { + "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json", + "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/WithdrawalVault.json" + } } } } diff --git a/nodes/operations/fusaka.mdx b/nodes/operations/fusaka.mdx index c6fed24..19ee98e 100644 --- a/nodes/operations/fusaka.mdx +++ b/nodes/operations/fusaka.mdx @@ -51,22 +51,12 @@ With this approach, there is no longer any need to manually fetch or deploy upda The old style of `--chain ` still works, but you must be sure to fetch and deploy the genesis files linked from our [release page](/nodes/architecture/evm-execution). 1. **If you are running Bera-Geth, you [have to migrate to Bera-Reth](/nodes/operations/bera-geth-to-reth).** -<<<<<<< docs/pol-incentives-collector-refactor -2. **DO NOT deploy this on a mainnet node** until 1.4.1 binaries designated for mainnet are released - approx June 22. -3. Once released, obtain release binaries of BeaconKit and Bera-Reth from the [recommended versions](/nodes/architecture/evm-execution) page. -4. Adjust Bera-Reth startup: - - Change your `--chain` option to `--chain bepolia` or `--chain mainnet`, and remove `--bootnodes [enode-list]`. - - OR download and fetch the current genesis file for your network from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it. -5. No changes are needed to BeaconKit options. -6. Start the new `beacond` and `bera-reth` binaries. -======= 2. Download the [recommended versions](/nodes/architecture/evm-execution). 3. Adjust Bera-Reth startup: - - Change your `--chain` option to `--chain bepolia` and remove `--bootnodes [enode-list]`. - - OR download and fetch the current bepolia genesis file from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it. + - Change your `--chain` option to `--chain bepolia` or `--chain mainnet`, and remove `--bootnodes [enode-list]`. + - OR download and fetch the current genesis file for your network from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it. 4. No changes are needed to BeaconKit options. 5. Start the new `beacond` and `bera-reth` binaries. ->>>>>>> main ## Support diff --git a/scripts/contracts/generate-pages.mjs b/scripts/contracts/generate-pages.mjs index d8f5aff..acfcab7 100644 --- a/scripts/contracts/generate-pages.mjs +++ b/scripts/contracts/generate-pages.mjs @@ -7,6 +7,7 @@ const repoRoot = path.resolve(path.dirname(new URL(import.meta.url).pathname), " const contracts = JSON.parse(fs.readFileSync(path.join(repoRoot, "data/contracts.json"), "utf8")); const generatedSnippetDir = "snippets/contracts/generated"; const checkMode = process.argv.includes("--check"); +const missingValue = "🤓"; let changedCount = 0; let wroteCount = 0; let unchangedCount = 0; @@ -36,7 +37,7 @@ function write(relPath, content) { } function berascanLink(address, network) { - if (!address) return "N/A"; + if (!address) return missingValue; const host = network === "berachainBepolia" ? "https://testnet.berascan.com" : "https://berascan.com"; return `[\`${address}\`](${host}/address/${address})`; } @@ -49,34 +50,126 @@ function hasAnyDeployment(items, network) { return items.some((item) => Boolean(addressFor(item, network))); } -function networkRow(item, network, includeAbi = false, boldName = false) { +function linkFor(item, key, network) { + const value = item?.[key]; + if (!value) return ""; + if (typeof value === "string") return value; + return value[network] ?? ""; +} + +function linkCell(item, key, network, label) { + const href = linkFor(item, key, network); + return href ? `[${label}](${href})` : missingValue; +} + +function resourcesCell(item, network, abiLabel = "ABI") { + const resources = [ + ["abi", abiLabel], + ["source", "Source"], + ["reference", "Reference"] + ] + .map(([key, label]) => { + const href = linkFor(item, key, network); + return href ? `[${label}](${href})` : ""; + }) + .filter(Boolean); + + return resources.length ? resources.join(" · ") : missingValue; +} + +function berascanUrl(address, network) { + if (!address) return ""; + const host = network === "berachainBepolia" ? "https://testnet.berascan.com" : "https://berascan.com"; + return `${host}/address/${address}`; +} + +function resourceLinks(item, network, abiLabel = "ABI") { + const address = addressFor(item, network); + const links = [ + address ? `[Berascan](${berascanUrl(address, network)})` : "", + linkFor(item, "abi", network) ? `[${abiLabel}](${linkFor(item, "abi", network)})` : "", + linkFor(item, "source", network) ? `[Source](${linkFor(item, "source", network)})` : "", + linkFor(item, "reference", network) ? `[Reference](${linkFor(item, "reference", network)})` : "" + ].filter(Boolean); + + return links.length ? links.join(" · ") : missingValue; +} + +function codeBlock(value) { + return `\`\`\`text +${value} +\`\`\``; +} + +function contractCard(item, network, abiLabel = "ABI") { + const address = addressFor(item, network); + if (!address) return ""; + return ` + +${codeBlock(address)} + +${resourceLinks(item, network, abiLabel)} + +`; +} + +function renderCardCategory(title, items, network, abiLabel = "ABI") { + const cards = items.map((item) => contractCard(item, network, abiLabel)).filter(Boolean); + if (!cards.length) return ""; + return `### ${title} + + +${cards.join("\n")} +`; +} + +function contractCell(item, network, boldName = false) { const address = berascanLink(addressFor(item, network), network); const name = boldName ? `**${item.name}**` : item.name; - if (includeAbi) { - const abi = item.abi ? `[ABI](${item.abi})` : "N/A"; - return `| ${name} | ${address} | ${abi} |`; - } - return `| ${name} | ${address} |`; + return `${name}
${address}`; +} + +function networkRow(item, network, options = {}) { + const { + includeAbi = false, + includeSource = false, + includeResources = false, + combineNameAddress = false, + boldName = false, + abiLabel = "ABI" + } = options; + const columns = combineNameAddress + ? [contractCell(item, network, boldName)] + : [boldName ? `**${item.name}**` : item.name, berascanLink(addressFor(item, network), network)]; + if (includeResources) columns.push(resourcesCell(item, network, abiLabel)); + if (includeAbi) columns.push(linkCell(item, "abi", network, abiLabel)); + if (includeSource) columns.push(linkCell(item, "source", network, "Source")); + return `| ${columns.join(" | ")} |`; } -function renderAddressCategory(title, items, network) { +function renderAddressCategory(title, items, network, options = {}) { if (!hasAnyDeployment(items, network)) return ""; - const rows = items.map((item) => networkRow(item, network)).join("\n"); + const rows = items.map((item) => networkRow(item, network, options)).join("\n"); + const header = options.combineNameAddress ? ["Contract"] : ["Name", "Address"]; + if (options.includeResources) header.push("Resources"); + if (options.includeAbi) header.push("ABI"); + if (options.includeSource) header.push("Source"); return `### ${title} -| Name | Address | -|------|---------| +| ${header.join(" | ")} | +| ${header.map(() => "---").join(" | ")} | ${rows}`; } function renderAbiCategory(title, items, network, boldName = false) { if (!hasAnyDeployment(items, network)) return ""; - const rows = items.map((item) => networkRow(item, network, true, boldName)).join("\n"); + void boldName; + const cards = items.map((item) => contractCard(item, network)).filter(Boolean); return `### ${title} -| Name | Address | ABI | -| --- | ------- | --- | -${rows}`; + +${cards.join("\n")} +`; } function renderGettingStartedSnippet() { @@ -84,19 +177,29 @@ function renderGettingStartedSnippet() { const tokenItems = Object.values(contracts.tokens); const governanceItems = Object.values(contracts.governance ?? {}); const otherItems = Object.values(contracts.other); + const stakingPoolItems = Object.values(contracts.stakingPools); + const linkedColumns = { combineNameAddress: true, includeResources: true }; const mainSections = [ - renderAddressCategory("Proof of Liquidity", polItems, "berachainMainnet"), - renderAddressCategory("Tokens", tokenItems, "berachainMainnet"), - renderAddressCategory("Governance", governanceItems, "berachainMainnet"), - renderAddressCategory("Other", otherItems, "berachainMainnet") + renderAddressCategory("Proof of Liquidity", polItems, "berachainMainnet", linkedColumns), + renderAddressCategory("Tokens", tokenItems, "berachainMainnet", linkedColumns), + renderAddressCategory("Governance", governanceItems, "berachainMainnet", linkedColumns), + renderAddressCategory("Staking pools", stakingPoolItems, "berachainMainnet", { + ...linkedColumns, + abiLabel: "ABI JSON" + }), + renderAddressCategory("Other", otherItems, "berachainMainnet", linkedColumns) ] .filter(Boolean) .join("\n\n"); const bepSections = [ - renderAddressCategory("Proof of Liquidity", polItems, "berachainBepolia"), - renderAddressCategory("Tokens", tokenItems, "berachainBepolia"), - renderAddressCategory("Governance", governanceItems, "berachainBepolia"), - renderAddressCategory("Other", otherItems, "berachainBepolia") + renderAddressCategory("Proof of Liquidity", polItems, "berachainBepolia", linkedColumns), + renderAddressCategory("Tokens", tokenItems, "berachainBepolia", linkedColumns), + renderAddressCategory("Governance", governanceItems, "berachainBepolia", linkedColumns), + renderAddressCategory("Staking pools", stakingPoolItems, "berachainBepolia", { + ...linkedColumns, + abiLabel: "ABI JSON" + }), + renderAddressCategory("Other", otherItems, "berachainBepolia", linkedColumns) ] .filter(Boolean) .join("\n\n"); @@ -105,17 +208,19 @@ function renderGettingStartedSnippet() { .map((item) => `| ${item.name} | \`${item.address.ethereumMainnet}\` | \`${item.address.berachainMainnet}\` |`) .join("\n"); - return `## Mainnet contracts - -${mainSections}${bepSections ? `\n\n## Bepolia testnet contracts\n\n${bepSections}` : ""} - -### NFT contracts + const nftSection = `### NFT contracts Berachain NFT contract addresses on both Ethereum (via LayerZero adapters) and Berachain mainnet. | Collection | Ethereum Adapter | Berachain Address | |------------|------------------|-------------------| -${nftRows} +${nftRows}`; + + return `## Mainnet contracts + +${mainSections} + +${nftSection}${bepSections ? `\n\n## Bepolia testnet contracts\n\n${bepSections}` : ""} `; } @@ -124,16 +229,22 @@ function renderBexSnippet() { const mainSection = hasAnyDeployment(items, "berachainMainnet") ? `## Mainnet contracts -| Name | Address | ABI | -| ---- | ------- | --- | -${items.map((item) => networkRow(item, "berachainMainnet", true)).join("\n")}` + +${items + .map((item) => contractCard(item, "berachainMainnet")) + .filter(Boolean) + .join("\n")} +` : ""; const bepSection = hasAnyDeployment(items, "berachainBepolia") ? `## Bepolia testnet contracts -| Name | Address | ABI | -| ---- | ------- | --- | -${items.map((item) => networkRow(item, "berachainBepolia", true)).join("\n")}` + +${items + .map((item) => contractCard(item, "berachainBepolia")) + .filter(Boolean) + .join("\n")} +` : ""; return [mainSection, bepSection].filter(Boolean).join("\n\n"); @@ -188,20 +299,22 @@ function renderStakingPoolsSnippet() { const mainSection = hasAnyDeployment(items, "berachainMainnet") ? `#### Mainnet -| Name | Address | ABI | -|------|---------|-----| + ${items - .map((item) => `| **${item.name}** | ${berascanLink(item.address.berachainMainnet, "berachainMainnet")} | [ABI JSON](${item.abi}) |`) - .join("\n")}` + .map((item) => contractCard(item, "berachainMainnet", "ABI JSON")) + .filter(Boolean) + .join("\n")} +` : ""; const bepSection = hasAnyDeployment(items, "berachainBepolia") ? `#### Bepolia -| Name | Address | ABI | -|------|---------|-----| + ${items - .map((item) => `| **${item.name}** | ${berascanLink(item.address.berachainBepolia, "berachainBepolia")} | [ABI JSON](${item.abi}) |`) - .join("\n")}` + .map((item) => contractCard(item, "berachainBepolia", "ABI JSON")) + .filter(Boolean) + .join("\n")} +` : ""; return [mainSection, bepSection].filter(Boolean).join("\n\n"); @@ -214,26 +327,18 @@ description: "Berachain core and staking-pool contract addresses by network." --- import CoreContractsTable from "/snippets/contracts/generated/core-contracts-table.mdx"; -import StakingPoolSingletonsTable from "/snippets/contracts/generated/staking-pools-singletons-table.mdx"; For **BEX** (DEX) addresses, see [BEX deployed contracts](/build/bex/deployed-contracts). For **Bend** (lending) addresses, see [Bend deployed contracts](/build/bend/deployed-contracts). All contracts are verified at the [block explorer](https://berascan.com). * ABI files: [berachain/abis](https://github.com/berachain/abis). * Core protocol: [berachain/contracts](https://github.com/berachain/contracts). -* Staking pools: [berachain/contracts-staking-pools](https://github.com/berachain/contracts-staking-pools). All audit reports are publicly available on [Github](https://github.com/berachain/security-audits). - -## Staking pool contracts - -Shared singleton addresses for staking pools are listed below. For per-pool proxies, behavior, and links to the guides repo, see [Staking pool contracts](/nodes/staking-pools/contracts). - - `; } @@ -257,11 +362,6 @@ For more information, see the [Balancer disclosure](https://forum.balancer.fi/t/ The following is a list of contract addresses for interacting with Berachain BEX. - - A full list of contract ABIs can be found at - [github.com/berachain/doc-abis](https://github.com/berachain/doc-abis). - - `; } diff --git a/snippets/contracts/generated/bend-contracts-table.mdx b/snippets/contracts/generated/bend-contracts-table.mdx index 680ff89..366e8f5 100644 --- a/snippets/contracts/generated/bend-contracts-table.mdx +++ b/snippets/contracts/generated/bend-contracts-table.mdx @@ -2,20 +2,89 @@ ### Morpho -| Name | Address | ABI | -| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --- | -| **Morpho (Vault)** | [`0x24147243f9c08d835C218Cda1e135f8dFD0517D0`](https://berascan.com/address/0x24147243f9c08d835C218Cda1e135f8dFD0517D0) | N/A | -| **Adaptive Curve IRM** | [`0xcf247Df3A2322Dea0D408f011c194906E77a6f62`](https://berascan.com/address/0xcf247Df3A2322Dea0D408f011c194906E77a6f62) | N/A | -| **Bundler3** | [`0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae`](https://berascan.com/address/0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae) | N/A | -| **General Adapter 1** | [`0xd2B9667F5214115E27937C410cAeE83E3a901Df7`](https://berascan.com/address/0xd2B9667F5214115E27937C410cAeE83E3a901Df7) | N/A | -| **Meta Morpho V1.1** | N/A | N/A | -| **Meta Morpho Factory V1.1** | [`0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616`](https://berascan.com/address/0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616) | N/A | -| **Meta Fee Partitioner** | [`0x80108Ee81A92091Db6B8B2326B1875ce9388f461`](https://berascan.com/address/0x80108Ee81A92091Db6B8B2326B1875ce9388f461) | N/A | -| **Public Allocator** | [`0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7`](https://berascan.com/address/0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7) | N/A | -| **Morpho Chainlink Oracle V2** | N/A | N/A | -| **Morpho Chainlink Oracle V2 Factory** | [`0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E`](https://berascan.com/address/0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E) | N/A | -| **Universal Reward Distributer (URD)** | N/A | N/A | -| **Universal Reward Distributer (URD) Factory** | [`0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802`](https://berascan.com/address/0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802) | N/A | + + + +```text +0x24147243f9c08d835C218Cda1e135f8dFD0517D0 +``` + +[Berascan](https://berascan.com/address/0x24147243f9c08d835C218Cda1e135f8dFD0517D0) + + + + +```text +0xcf247Df3A2322Dea0D408f011c194906E77a6f62 +``` + +[Berascan](https://berascan.com/address/0xcf247Df3A2322Dea0D408f011c194906E77a6f62) + + + + +```text +0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae +``` + +[Berascan](https://berascan.com/address/0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae) + + + + +```text +0xd2B9667F5214115E27937C410cAeE83E3a901Df7 +``` + +[Berascan](https://berascan.com/address/0xd2B9667F5214115E27937C410cAeE83E3a901Df7) + + + + +```text +0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616 +``` + +[Berascan](https://berascan.com/address/0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616) + + + + +```text +0x80108Ee81A92091Db6B8B2326B1875ce9388f461 +``` + +[Berascan](https://berascan.com/address/0x80108Ee81A92091Db6B8B2326B1875ce9388f461) + + + + +```text +0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7 +``` + +[Berascan](https://berascan.com/address/0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7) + + + + +```text +0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E +``` + +[Berascan](https://berascan.com/address/0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E) + + + + +```text +0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802 +``` + +[Berascan](https://berascan.com/address/0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802) + + + More vaults may be deployed, please check @@ -24,6 +93,14 @@ ### Vaults -| Name | Address | ABI | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------- | --- | -| **Re7 Honey Vault** | [`0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1`](https://berascan.com/address/0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1) | N/A | + + + +```text +0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1 +``` + +[Berascan](https://berascan.com/address/0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1) + + + diff --git a/snippets/contracts/generated/bex-contracts-table.mdx b/snippets/contracts/generated/bex-contracts-table.mdx index ced3970..b046272 100644 --- a/snippets/contracts/generated/bex-contracts-table.mdx +++ b/snippets/contracts/generated/bex-contracts-table.mdx @@ -1,33 +1,225 @@ ## Mainnet contracts -| Name | Address | ABI | -| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| Vault | [`0x4Be03f781C497A489E3cB0287833452cA9B9E80B`](https://berascan.com/address/0x4Be03f781C497A489E3cB0287833452cA9B9E80B) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IVault.abi.json) | -| ProtocolFeesCollector | [`0xB8Cf46Cf1b1476E707619913a70B2085d26f1707`](https://berascan.com/address/0xB8Cf46Cf1b1476E707619913a70B2085d26f1707) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesCollector.abi.json) | -| BalancerHelpers | [`0x5083737EC75a728c265BE578C9d0d5333a2c5951`](https://berascan.com/address/0x5083737EC75a728c265BE578C9d0d5333a2c5951) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerHelpers.abi.json) | -| PoolCreationHelper | [`0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2`](https://berascan.com/address/0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IPoolCreationHelper.abi.json) | -| ProtocolFeesWithdrawer | [`0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7`](https://berascan.com/address/0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesWithdrawer.abi.json) | -| ComposableStablePoolFactory | [`0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1`](https://berascan.com/address/0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IComposableStablePoolFactoryCreateV6.abi.json) | -| BatchRelayerLibrary | [`0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf`](https://berascan.com/address/0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf) | N/A | -| BatchRelayerQueryLibrary | [`0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d`](https://berascan.com/address/0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d) | N/A | -| BalancerRelayer | [`0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7`](https://berascan.com/address/0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerRelayer.abi.json) | -| WeightedPoolFactory | [`0xa966fA8F2d5B087FFFA499C0C1240589371Af409`](https://berascan.com/address/0xa966fA8F2d5B087FFFA499C0C1240589371Af409) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IWeightedPoolFactory.abi.json) | -| ProtocolFeePercentagesProvider | [`0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf`](https://berascan.com/address/0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeePercentagesProvider.abi.json) | -| BalancerQueries | [`0x3C612e132624f4Bd500eE1495F54565F0bcc9b59`](https://berascan.com/address/0x3C612e132624f4Bd500eE1495F54565F0bcc9b59) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerQueries.abi.json) | + + + +```text +0x4Be03f781C497A489E3cB0287833452cA9B9E80B +``` + +[Berascan](https://berascan.com/address/0x4Be03f781C497A489E3cB0287833452cA9B9E80B) + + + + +```text +0xB8Cf46Cf1b1476E707619913a70B2085d26f1707 +``` + +[Berascan](https://berascan.com/address/0xB8Cf46Cf1b1476E707619913a70B2085d26f1707) + + + + +```text +0x5083737EC75a728c265BE578C9d0d5333a2c5951 +``` + +[Berascan](https://berascan.com/address/0x5083737EC75a728c265BE578C9d0d5333a2c5951) + + + + +```text +0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2 +``` + +[Berascan](https://berascan.com/address/0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2) + + + + +```text +0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7 +``` + +[Berascan](https://berascan.com/address/0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7) + + + + +```text +0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1 +``` + +[Berascan](https://berascan.com/address/0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1) + + + + +```text +0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf +``` + +[Berascan](https://berascan.com/address/0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf) + + + + +```text +0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d +``` + +[Berascan](https://berascan.com/address/0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d) + + + + +```text +0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7 +``` + +[Berascan](https://berascan.com/address/0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7) + + + + +```text +0xa966fA8F2d5B087FFFA499C0C1240589371Af409 +``` + +[Berascan](https://berascan.com/address/0xa966fA8F2d5B087FFFA499C0C1240589371Af409) + + + + +```text +0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf +``` + +[Berascan](https://berascan.com/address/0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf) + + + + +```text +0x3C612e132624f4Bd500eE1495F54565F0bcc9b59 +``` + +[Berascan](https://berascan.com/address/0x3C612e132624f4Bd500eE1495F54565F0bcc9b59) + + + ## Bepolia testnet contracts -| Name | Address | ABI | -| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| Vault | [`0x708cA656b68A6b7384a488A36aD33505a77241FE`](https://testnet.berascan.com/address/0x708cA656b68A6b7384a488A36aD33505a77241FE) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IVault.abi.json) | -| ProtocolFeesCollector | [`0x05A607aCf3548E84DD1E44c3706F850c849058Da`](https://testnet.berascan.com/address/0x05A607aCf3548E84DD1E44c3706F850c849058Da) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesCollector.abi.json) | -| BalancerHelpers | [`0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f`](https://testnet.berascan.com/address/0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerHelpers.abi.json) | -| PoolCreationHelper | [`0x0dC9964F6CA33d9EF38DEB4925234766127C6B36`](https://testnet.berascan.com/address/0x0dC9964F6CA33d9EF38DEB4925234766127C6B36) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IPoolCreationHelper.abi.json) | -| ProtocolFeesWithdrawer | [`0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06`](https://testnet.berascan.com/address/0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesWithdrawer.abi.json) | -| ComposableStablePoolFactory | [`0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1`](https://testnet.berascan.com/address/0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IComposableStablePoolFactoryCreateV6.abi.json) | -| BatchRelayerLibrary | [`0xfD772657FC8c4Ed3884AfF151b680883814052FA`](https://testnet.berascan.com/address/0xfD772657FC8c4Ed3884AfF151b680883814052FA) | N/A | -| BatchRelayerQueryLibrary | [`0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601`](https://testnet.berascan.com/address/0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601) | N/A | -| BalancerRelayer | [`0x343215E156Ff586711a5B8C49Fe3099BAF22624C`](https://testnet.berascan.com/address/0x343215E156Ff586711a5B8C49Fe3099BAF22624C) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerRelayer.abi.json) | -| WeightedPoolFactory | [`0xf1d23276C7b271B2aC595C78977b2312E9954D57`](https://testnet.berascan.com/address/0xf1d23276C7b271B2aC595C78977b2312E9954D57) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IWeightedPoolFactory.abi.json) | -| ProtocolFeePercentagesProvider | [`0x8119E412E00fe3c857739E95dB147817Bf615dB8`](https://testnet.berascan.com/address/0x8119E412E00fe3c857739E95dB147817Bf615dB8) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeePercentagesProvider.abi.json) | -| BalancerQueries | [`0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92`](https://testnet.berascan.com/address/0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerQueries.abi.json) | + + + +```text +0x708cA656b68A6b7384a488A36aD33505a77241FE +``` + +[Berascan](https://testnet.berascan.com/address/0x708cA656b68A6b7384a488A36aD33505a77241FE) + + + + +```text +0x05A607aCf3548E84DD1E44c3706F850c849058Da +``` + +[Berascan](https://testnet.berascan.com/address/0x05A607aCf3548E84DD1E44c3706F850c849058Da) + + + + +```text +0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f +``` + +[Berascan](https://testnet.berascan.com/address/0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f) + + + + +```text +0x0dC9964F6CA33d9EF38DEB4925234766127C6B36 +``` + +[Berascan](https://testnet.berascan.com/address/0x0dC9964F6CA33d9EF38DEB4925234766127C6B36) + + + + +```text +0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06 +``` + +[Berascan](https://testnet.berascan.com/address/0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06) + + + + +```text +0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1 +``` + +[Berascan](https://testnet.berascan.com/address/0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1) + + + + +```text +0xfD772657FC8c4Ed3884AfF151b680883814052FA +``` + +[Berascan](https://testnet.berascan.com/address/0xfD772657FC8c4Ed3884AfF151b680883814052FA) + + + + +```text +0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601 +``` + +[Berascan](https://testnet.berascan.com/address/0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601) + + + + +```text +0x343215E156Ff586711a5B8C49Fe3099BAF22624C +``` + +[Berascan](https://testnet.berascan.com/address/0x343215E156Ff586711a5B8C49Fe3099BAF22624C) + + + + +```text +0xf1d23276C7b271B2aC595C78977b2312E9954D57 +``` + +[Berascan](https://testnet.berascan.com/address/0xf1d23276C7b271B2aC595C78977b2312E9954D57) + + + + +```text +0x8119E412E00fe3c857739E95dB147817Bf615dB8 +``` + +[Berascan](https://testnet.berascan.com/address/0x8119E412E00fe3c857739E95dB147817Bf615dB8) + + + + +```text +0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92 +``` + +[Berascan](https://testnet.berascan.com/address/0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92) + + + diff --git a/snippets/contracts/generated/core-contracts-table.mdx b/snippets/contracts/generated/core-contracts-table.mdx index 81fcff3..8227ca5 100644 --- a/snippets/contracts/generated/core-contracts-table.mdx +++ b/snippets/contracts/generated/core-contracts-table.mdx @@ -2,85 +2,51 @@ ### Proof of Liquidity -| Name | Address | -| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| BeraChef | [`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) | -| BlockRewardController | [`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) | -| Distributor | [`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | -| DedicatedEmissionStreamManager | [`0x813dCdBa9197947792985c866cE98D6739cA821A`](https://berascan.com/address/0x813dCdBa9197947792985c866cE98D6739cA821A) | -| FeeCollector | [`0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://berascan.com/address/0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | -| IncentivesCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | -| RewardVaultFactory | [`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | -| RewardVaultHelper | [`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | -| LSTStakerVaultFactory | [`0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500`](https://berascan.com/address/0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500) | -| HoneyFactory | [`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) | +| Contract | Resources | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| BeraChef
[`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BeraChef.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/BeraChef.sol) | +| BlockRewardController
[`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BlockRewardController.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/BlockRewardController.sol) | +| Distributor
[`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/Distributor.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/Distributor.sol) | +| DedicatedEmissionStreamManager
[`0x813dCdBa9197947792985c866cE98D6739cA821A`](https://berascan.com/address/0x813dCdBa9197947792985c866cE98D6739cA821A) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/DedicatedEmissionStreamManager.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/DedicatedEmissionStreamManager.sol) | +| FeeCollector
[`0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://berascan.com/address/0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/FeeCollector.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/FeeCollector.sol) | +| IncentivesCollector
[`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/IncentivesCollector.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/IncentivesCollector.sol) | +| RewardVaultFactory
[`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultFactory.sol) | +| RewardVaultHelper
[`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultHelper.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultHelper.sol) | +| LSTStakerVaultFactory
[`0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500`](https://berascan.com/address/0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/lst/LSTStakerVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/lst/LSTStakerVaultFactory.sol) | +| HoneyFactory
[`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/HoneyFactory.json) · [Source](https://github.com/berachain/contracts/blob/main/src/honey/HoneyFactory.sol) | ### Tokens -| Name | Address | -| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| BGT Token | [`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) | -| WBERA | [`0x6969696969696969696969696969696969696969`](https://berascan.com/address/0x6969696969696969696969696969696969696969) | -| HONEY | [`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) | -| WBERA Staker Vault (sWBERA) | [`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) | +| Contract | Resources | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BGT Token
[`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGT.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/BGT.sol) | +| WBERA
[`0x6969696969696969696969696969696969696969`](https://berascan.com/address/0x6969696969696969696969696969696969696969) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/WBERA.json) · [Source](https://github.com/berachain/contracts/blob/main/src/WBERA.sol) | +| HONEY
[`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/Honey.json) · [Source](https://github.com/berachain/contracts/blob/main/src/honey/Honey.sol) | +| WBERA Staker Vault (sWBERA)
[`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/WBERAStakerVault.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/WBERAStakerVault.sol) | ### Governance -| Name | Address | -| ---------- | ----------------------------------------------------------------------------------------------------------------------- | -| Governance | [`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) | -| Timelock | [`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) | +| Contract | Resources | +| --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Governance
[`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/BerachainGovernance.json) · [Source](https://github.com/berachain/contracts/blob/main/src/gov/BerachainGovernance.sol) | +| Timelock
[`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/TimeLock.json) · [Source](https://github.com/berachain/contracts/blob/main/src/gov/TimeLock.sol) | -### Other - -| Name | Address | -| ------------- | ----------------------------------------------------------------------------------------------------------------------- | -| BeaconDeposit | [`0x4242424242424242424242424242424242424242`](https://berascan.com/address/0x4242424242424242424242424242424242424242) | -| Create2 | [`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) | -| Multicall3 | [`0xcA11bde05977b3631167028862bE2a173976CA11`](https://berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | -| Permit2 | [`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | - -## Bepolia testnet contracts - -### Proof of Liquidity - -| Name | Address | -| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | -| BeraChef | [`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://testnet.berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) | -| BlockRewardController | [`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://testnet.berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) | -| Distributor | [`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://testnet.berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | -| DedicatedEmissionStreamManager | [`0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd`](https://testnet.berascan.com/address/0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd) | -| FeeCollector | [`0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://testnet.berascan.com/address/0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | -| IncentivesCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://testnet.berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | -| RewardVaultFactory | [`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://testnet.berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | -| RewardVaultHelper | [`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://testnet.berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | -| LSTStakerVaultFactory | [`0xAf10B532cCC25B26a8e28913D5C4056a77e7a178`](https://testnet.berascan.com/address/0xAf10B532cCC25B26a8e28913D5C4056a77e7a178) | -| HoneyFactory | [`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://testnet.berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) | +### Staking pools -### Tokens - -| Name | Address | -| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| BGT Token | [`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://testnet.berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) | -| WBERA | [`0x6969696969696969696969696969696969696969`](https://testnet.berascan.com/address/0x6969696969696969696969696969696969696969) | -| HONEY | [`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://testnet.berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) | -| WBERA Staker Vault (sWBERA) | [`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://testnet.berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) | - -### Governance - -| Name | Address | -| ---------- | ------------------------------------------------------------------------------------------------------------------------------- | -| Governance | [`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://testnet.berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) | -| Timelock | [`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://testnet.berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) | +| Contract | Resources | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| StakingPoolContractsFactory
[`0xb79b43dBA821Cb67751276Ce050fF4111445fB99`](https://berascan.com/address/0xb79b43dBA821Cb67751276Ce050fF4111445fB99) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) | +| DelegationHandlerFactory
[`0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0`](https://berascan.com/address/0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) | +| WithdrawalVault
[`0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4`](https://berascan.com/address/0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) | ### Other -| Name | Address | -| ------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| BeaconDeposit | [`0x4242424242424242424242424242424242424242`](https://testnet.berascan.com/address/0x4242424242424242424242424242424242424242) | -| Create2 | [`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://testnet.berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) | -| Multicall3 | [`0xcA11bde05977b3631167028862bE2a173976CA11`](https://testnet.berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | -| Permit2 | [`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://testnet.berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | +| Contract | Resources | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BeaconDeposit
[`0x4242424242424242424242424242424242424242`](https://berascan.com/address/0x4242424242424242424242424242424242424242) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BeaconDeposit.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/BeaconDeposit.sol) | +| Create2
[`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) | [Reference](https://github.com/Arachnid/deterministic-deployment-proxy) | +| Multicall3
[`0xcA11bde05977b3631167028862bE2a173976CA11`](https://berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | [ABI](https://github.com/mds1/multicall/releases/download/v3.1.0/Multicall3.json) · [Reference](https://github.com/mds1/multicall) | +| Permit2
[`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | [ABI](https://github.com/Uniswap/permit2-sdk/blob/main/abis/Permit2.json) · [Reference](https://docs.uniswap.org/contracts/permit2/overview) | ### NFT contracts @@ -94,3 +60,53 @@ Berachain NFT contract addresses on both Ethereum (via LayerZero adapters) and B | Baby Bears | `0xc48C54e92d135B356DD0CbF50F803A8c8d38968b` | `0xDDeAf391c4be2d01ca52aBb8C159a06820ef078C` | | Band Bears | `0x392Faa1b0EF108ded69897Ba5382E909C39Fc09e` | `0x7711B2Eb2451259dbF211e30157ceB7CFeb79a19` | | Bit Bears | `0x3EB12398753eEd7E8747321c37C85De30d8E2e94` | `0x72D876D9cdf4001b836f8E47254d0551EdA2eebB` | + +## Bepolia testnet contracts + +### Proof of Liquidity + +| Contract | Resources | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BeraChef
[`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://testnet.berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BeraChef.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BeraChef.sol) | +| BlockRewardController
[`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://testnet.berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BlockRewardController.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BlockRewardController.sol) | +| Distributor
[`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://testnet.berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/Distributor.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/Distributor.sol) | +| DedicatedEmissionStreamManager
[`0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd`](https://testnet.berascan.com/address/0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/DedicatedEmissionStreamManager.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/DedicatedEmissionStreamManager.sol) | +| FeeCollector
[`0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://testnet.berascan.com/address/0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/FeeCollector.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/FeeCollector.sol) | +| IncentivesCollector
[`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://testnet.berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/IncentivesCollector.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/IncentivesCollector.sol) | +| RewardVaultFactory
[`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://testnet.berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultFactory.sol) | +| RewardVaultHelper
[`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://testnet.berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultHelper.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultHelper.sol) | +| LSTStakerVaultFactory
[`0xAf10B532cCC25B26a8e28913D5C4056a77e7a178`](https://testnet.berascan.com/address/0xAf10B532cCC25B26a8e28913D5C4056a77e7a178) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/lst/LSTStakerVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/lst/LSTStakerVaultFactory.sol) | +| HoneyFactory
[`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://testnet.berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/HoneyFactory.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/honey/HoneyFactory.sol) | + +### Tokens + +| Contract | Resources | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BGT Token
[`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://testnet.berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BGT.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/BGT.sol) | +| WBERA
[`0x6969696969696969696969696969696969696969`](https://testnet.berascan.com/address/0x6969696969696969696969696969696969696969) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/WBERA.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/WBERA.sol) | +| HONEY
[`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://testnet.berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/Honey.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/honey/Honey.sol) | +| WBERA Staker Vault (sWBERA)
[`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://testnet.berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/WBERAStakerVault.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/WBERAStakerVault.sol) | + +### Governance + +| Contract | Resources | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Governance
[`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://testnet.berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/BerachainGovernance.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/gov/BerachainGovernance.sol) | +| Timelock
[`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://testnet.berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/TimeLock.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/gov/TimeLock.sol) | + +### Staking pools + +| Contract | Resources | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| StakingPoolContractsFactory
[`0x24b8223864d3936F56e5a24C4245ae7620471D4C`](https://testnet.berascan.com/address/0x24b8223864d3936F56e5a24C4245ae7620471D4C) | [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/StakingPoolContractsFactory.json) | +| DelegationHandlerFactory
[`0x0aEf09EC97bAc354d31F180b401454cB76abc395`](https://testnet.berascan.com/address/0x0aEf09EC97bAc354d31F180b401454cB76abc395) | [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/delegation/DelegationHandlerFactory.json) | +| WithdrawalVault
[`0xBBed2D94338cdE2926A8C0576432De32C05c66e9`](https://testnet.berascan.com/address/0xBBed2D94338cdE2926A8C0576432De32C05c66e9) | [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/WithdrawalVault.json) | + +### Other + +| Contract | Resources | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BeaconDeposit
[`0x4242424242424242424242424242424242424242`](https://testnet.berascan.com/address/0x4242424242424242424242424242424242424242) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BeaconDeposit.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/BeaconDeposit.sol) | +| Create2
[`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://testnet.berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) | [Reference](https://github.com/Arachnid/deterministic-deployment-proxy) | +| Multicall3
[`0xcA11bde05977b3631167028862bE2a173976CA11`](https://testnet.berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | [ABI](https://github.com/mds1/multicall/releases/download/v3.1.0/Multicall3.json) · [Reference](https://github.com/mds1/multicall) | +| Permit2
[`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://testnet.berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | [ABI](https://github.com/Uniswap/permit2-sdk/blob/main/abis/Permit2.json) · [Reference](https://docs.uniswap.org/contracts/permit2/overview) | diff --git a/snippets/contracts/generated/staking-pools-singletons-table.mdx b/snippets/contracts/generated/staking-pools-singletons-table.mdx index b84a86c..055ef98 100644 --- a/snippets/contracts/generated/staking-pools-singletons-table.mdx +++ b/snippets/contracts/generated/staking-pools-singletons-table.mdx @@ -1,15 +1,63 @@ #### Mainnet -| Name | Address | ABI | -| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| **StakingPoolContractsFactory** | [`0xb79b43dBA821Cb67751276Ce050fF4111445fB99`](https://berascan.com/address/0xb79b43dBA821Cb67751276Ce050fF4111445fB99) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) | -| **DelegationHandlerFactory** | [`0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0`](https://berascan.com/address/0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) | -| **WithdrawalVault** | [`0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4`](https://berascan.com/address/0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) | + + + +```text +0xb79b43dBA821Cb67751276Ce050fF4111445fB99 +``` + +[Berascan](https://berascan.com/address/0xb79b43dBA821Cb67751276Ce050fF4111445fB99) · [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) + + + + +```text +0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0 +``` + +[Berascan](https://berascan.com/address/0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0) · [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) + + + + +```text +0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4 +``` + +[Berascan](https://berascan.com/address/0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4) · [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) + + + #### Bepolia -| Name | Address | ABI | -| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| **StakingPoolContractsFactory** | [`0x24b8223864d3936F56e5a24C4245ae7620471D4C`](https://testnet.berascan.com/address/0x24b8223864d3936F56e5a24C4245ae7620471D4C) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) | -| **DelegationHandlerFactory** | [`0x0aEf09EC97bAc354d31F180b401454cB76abc395`](https://testnet.berascan.com/address/0x0aEf09EC97bAc354d31F180b401454cB76abc395) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) | -| **WithdrawalVault** | [`0xBBed2D94338cdE2926A8C0576432De32C05c66e9`](https://testnet.berascan.com/address/0xBBed2D94338cdE2926A8C0576432De32C05c66e9) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) | + + + +```text +0x24b8223864d3936F56e5a24C4245ae7620471D4C +``` + +[Berascan](https://testnet.berascan.com/address/0x24b8223864d3936F56e5a24C4245ae7620471D4C) · [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/StakingPoolContractsFactory.json) + + + + +```text +0x0aEf09EC97bAc354d31F180b401454cB76abc395 +``` + +[Berascan](https://testnet.berascan.com/address/0x0aEf09EC97bAc354d31F180b401454cB76abc395) · [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/delegation/DelegationHandlerFactory.json) + + + + +```text +0xBBed2D94338cdE2926A8C0576432De32C05c66e9 +``` + +[Berascan](https://testnet.berascan.com/address/0xBBed2D94338cdE2926A8C0576432De32C05c66e9) · [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/WithdrawalVault.json) + + +