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/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/build/pol/lst-integration.mdx b/build/pol/lst-integration.mdx index d23c5b6..65cc1ba 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,8 +20,8 @@ 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`. -2. An auction buyer calls `claimFees(recipient, feeTokens)` and pays WBERA into the collector. +1. Reward Vaults transfer redirected incentive tokens (incentives not paid as validator commission) into `IncentivesCollector`. +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. @@ -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..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": "BGTIncentiveFeeCollector", - "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGTIncentiveFeeCollector.json", + "name": "IncentivesCollector", + "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/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/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/proof-of-liquidity/changelog.mdx b/general/proof-of-liquidity/changelog.mdx index 10d3d45..6ca021c 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,9 @@ 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` | + +`claimFees(address, address[])` remains exposed on `IIncentivesCollector` and `IncentivesCollector`; it delegates to the same settlement flow as `claim(address, address[])`. | Functions Removed | Location | | -------------------------------------------------- | ------------------------------------------------- | @@ -136,6 +147,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 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/operations/fusaka.mdx b/nodes/operations/fusaka.mdx index d48e172..19ee98e 100644 --- a/nodes/operations/fusaka.mdx +++ b/nodes/operations/fusaka.mdx @@ -53,8 +53,8 @@ The old style of `--chain ` still works, but you must be sure to fetch and 1. **If you are running Bera-Geth, you [have to migrate to Bera-Reth](/nodes/operations/bera-geth-to-reth).** 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. 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/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 ef451e8..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) | -| BGTIncentiveFeeCollector | [`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) | -| BGTIncentiveFeeCollector | [`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) + + + 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