Beethoven X
Search…
Security

Contracts

All contracts are immutable and not upgradable!

Balancer Contracts

Balancer V2 uses an authorization mechanism which allows fine grained access control on a function level. At its core is the Authorizer contract which manages access to all protected function calls.

Default admin role

The default admin role does not give permission to execute any protected function but allows granting or revoking roles to other entities (or himself).

Execution roles

All entities which are granted the default admin role can grant and revoke execution roles on a function level. For singleton contracts like the Vault, all roles granted on it are bound to its contract address. So if we would deploy another Vault contract, roles granted on the 'old' Vault would not apply on the new one. For contracts deployed via a factory like the pools, roles are bound to all pools created by the same factory address. So if a role is granted on a StablePool created by the StablePoolFactory contract, then the role applies to all other StablePools created by this factory. It's bound to the StablePoolFactory address. So if we were to deploy another StablePoolFactory, pools created by it would not share the same access roles.
Currently, all roles are only granted to the Balancer Admin multisig.

Token contracts

The MasterChef is the owner of the BeethovenX Token (BEETS) and is behind a 6h minimum delay timelock.

Configuration

  • minimum delay - 6h
  • maximum delay - 30days
  • delay - 6h
The timelock admin is the MasterChef Admin multisig.

Audits

Beethoven X uses Balancer V2 contracts verbatim, which have completed several full audits and have a comprehensive bug bounty program; a program the Beethoven X financially contributes to.
Beethoven X has completed an audit with Trail of Bits. You can read the audit here
We created a script which compares all deployed contracts from beethovenx against balancer. Make sure to enter your ftmscan & etherscan api keys
balancer-beethovenx-diff.py
3KB
Text
Output:
COMPARING 'vault' CONTRACT
contracts/vault/Vault.sol ✅
contracts/vault/interfaces/IAuthorizer.sol ✅
contracts/vault/interfaces/IWETH.sol ✅
contracts/vault/VaultAuthorization.sol ✅
contracts/vault/FlashLoans.sol ✅
contracts/vault/Swaps.sol ✅
contracts/lib/openzeppelin/IERC20.sol ✅
contracts/lib/helpers/BalancerErrors.sol ✅
contracts/lib/helpers/Authentication.sol ✅
contracts/lib/helpers/TemporarilyPausable.sol ✅
contracts/lib/helpers/SignaturesValidator.sol ✅
contracts/lib/openzeppelin/ReentrancyGuard.sol ✅
contracts/vault/interfaces/IVault.sol ✅
contracts/lib/helpers/IAuthentication.sol ✅
contracts/lib/helpers/ITemporarilyPausable.sol ✅
contracts/lib/helpers/ISignaturesValidator.sol ✅
contracts/lib/openzeppelin/EIP712.sol ✅
contracts/vault/interfaces/IAsset.sol ✅
contracts/vault/interfaces/IFlashLoanRecipient.sol ✅
contracts/vault/ProtocolFeesCollector.sol ✅
contracts/lib/helpers/InputHelpers.sol ✅
contracts/lib/openzeppelin/SafeERC20.sol ✅
contracts/vault/Fees.sol ✅
contracts/lib/math/FixedPoint.sol ✅
contracts/lib/math/LogExpMath.sol ✅
contracts/lib/math/Math.sol ✅
contracts/lib/openzeppelin/EnumerableMap.sol ✅
contracts/lib/openzeppelin/EnumerableSet.sol ✅
contracts/lib/openzeppelin/SafeCast.sol ✅
contracts/vault/PoolBalances.sol ✅
contracts/vault/interfaces/IPoolSwapStructs.sol ✅
contracts/vault/interfaces/IGeneralPool.sol ✅
contracts/vault/interfaces/IMinimalSwapInfoPool.sol ✅
contracts/vault/balances/BalanceAllocation.sol ✅
contracts/vault/PoolTokens.sol ✅
contracts/vault/UserBalance.sol ✅
contracts/vault/interfaces/IBasePool.sol ✅
contracts/vault/AssetManagers.sol ✅
contracts/vault/PoolRegistry.sol ✅
contracts/vault/balances/GeneralPoolsBalance.sol ✅
contracts/vault/balances/MinimalSwapInfoPoolsBalance.sol ✅
contracts/vault/balances/TwoTokenPoolsBalance.sol ✅
contracts/vault/AssetTransfersHandler.sol ✅
contracts/lib/helpers/AssetHelpers.sol ✅
contracts/lib/openzeppelin/Address.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'protocolFeesCollector' CONTRACT
contracts/vault/ProtocolFeesCollector.sol ✅
contracts/lib/openzeppelin/IERC20.sol ✅
contracts/lib/helpers/InputHelpers.sol ✅
contracts/lib/helpers/Authentication.sol ✅
contracts/lib/openzeppelin/ReentrancyGuard.sol ✅
contracts/lib/openzeppelin/SafeERC20.sol ✅
contracts/vault/interfaces/IVault.sol ✅
contracts/vault/interfaces/IAuthorizer.sol ✅
contracts/lib/helpers/BalancerErrors.sol ✅
contracts/vault/interfaces/IAsset.sol ✅
contracts/lib/helpers/IAuthentication.sol ✅
contracts/vault/interfaces/IWETH.sol ✅
contracts/vault/interfaces/IFlashLoanRecipient.sol ✅
contracts/lib/helpers/ISignaturesValidator.sol ✅
contracts/lib/helpers/ITemporarilyPausable.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'authorizer' CONTRACT
contracts/vault/Authorizer.sol ✅
contracts/vault/interfaces/IAuthorizer.sol ✅
contracts/lib/openzeppelin/AccessControl.sol ✅
contracts/lib/helpers/InputHelpers.sol ✅
contracts/lib/helpers/BalancerErrors.sol ✅
contracts/lib/openzeppelin/EnumerableSet.sol ✅
contracts/lib/openzeppelin/IERC20.sol ✅
contracts/vault/interfaces/IAsset.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'weightedPoolFactory' CONTRACT
contracts/pools/weighted/WeightedPoolFactory.sol ✅
contracts/vault/interfaces/IVault.sol ✅
contracts/pools/factories/BasePoolFactory.sol ✅
contracts/pools/factories/FactoryWidePauseWindow.sol ✅
contracts/pools/weighted/WeightedPool.sol ✅
contracts/lib/openzeppelin/IERC20.sol ✅
contracts/vault/interfaces/IWETH.sol ✅
contracts/vault/interfaces/IAsset.sol ✅
contracts/vault/interfaces/IAuthorizer.sol ✅
contracts/vault/interfaces/IFlashLoanRecipient.sol ✅
contracts/vault/ProtocolFeesCollector.sol ✅
contracts/lib/helpers/ISignaturesValidator.sol ✅
contracts/lib/helpers/ITemporarilyPausable.sol ✅
contracts/lib/helpers/InputHelpers.sol ✅
contracts/lib/helpers/Authentication.sol ✅
contracts/lib/openzeppelin/ReentrancyGuard.sol ✅
contracts/lib/openzeppelin/SafeERC20.sol ✅
contracts/lib/helpers/BalancerErrors.sol ✅
contracts/lib/helpers/IAuthentication.sol ✅
contracts/vault/interfaces/IBasePool.sol ✅
contracts/vault/interfaces/IPoolSwapStructs.sol ✅
contracts/lib/math/FixedPoint.sol ✅
contracts/pools/BaseMinimalSwapInfoPool.sol ✅
contracts/pools/weighted/WeightedMath.sol ✅
contracts/pools/weighted/WeightedPoolUserDataHelpers.sol ✅
contracts/lib/math/LogExpMath.sol ✅
contracts/pools/BasePool.sol ✅
contracts/vault/interfaces/IMinimalSwapInfoPool.sol ✅
contracts/lib/helpers/TemporarilyPausable.sol ✅
contracts/lib/openzeppelin/ERC20.sol ✅
contracts/pools/BalancerPoolToken.sol ✅
contracts/pools/BasePoolAuthorization.sol ✅
contracts/lib/openzeppelin/SafeMath.sol ✅
contracts/lib/math/Math.sol ✅
contracts/lib/openzeppelin/IERC20Permit.sol ✅
contracts/lib/openzeppelin/EIP712.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'weightedPool2TokensFactory' CONTRACT
contracts/pools/weighted/WeightedPool2TokensFactory.sol ✅
contracts/vault/interfaces/IVault.sol ✅
contracts/pools/factories/BasePoolFactory.sol ✅
contracts/pools/factories/FactoryWidePauseWindow.sol ✅
contracts/pools/weighted/WeightedPool2Tokens.sol ✅
contracts/lib/openzeppelin/IERC20.sol ✅
contracts/vault/interfaces/IWETH.sol ✅
contracts/vault/interfaces/IAsset.sol ✅
contracts/vault/interfaces/IAuthorizer.sol ✅
contracts/vault/interfaces/IFlashLoanRecipient.sol ✅
contracts/vault/ProtocolFeesCollector.sol ✅
contracts/lib/helpers/ISignaturesValidator.sol ✅
contracts/lib/helpers/ITemporarilyPausable.sol ✅
contracts/lib/helpers/InputHelpers.sol ✅
contracts/lib/helpers/Authentication.sol ✅
contracts/lib/openzeppelin/ReentrancyGuard.sol ✅
contracts/lib/openzeppelin/SafeERC20.sol ✅
contracts/lib/helpers/BalancerErrors.sol ✅
contracts/lib/helpers/IAuthentication.sol ✅
contracts/vault/interfaces/IBasePool.sol ✅
contracts/vault/interfaces/IPoolSwapStructs.sol ✅
contracts/lib/math/FixedPoint.sol ✅
contracts/lib/helpers/TemporarilyPausable.sol ✅
contracts/lib/openzeppelin/ERC20.sol ✅
contracts/pools/weighted/WeightedMath.sol ✅
contracts/pools/weighted/WeightedOracleMath.sol ✅
contracts/pools/weighted/WeightedPool2TokensMiscData.sol ✅
contracts/pools/weighted/WeightedPoolUserDataHelpers.sol ✅
contracts/pools/BalancerPoolToken.sol ✅
contracts/pools/BasePoolAuthorization.sol ✅
contracts/pools/oracle/PoolPriceOracle.sol ✅
contracts/pools/oracle/Buffer.sol ✅
contracts/vault/interfaces/IMinimalSwapInfoPool.sol ✅
contracts/pools/IPriceOracle.sol ✅
contracts/lib/math/LogExpMath.sol ✅
contracts/lib/openzeppelin/SafeMath.sol ✅
contracts/lib/math/Math.sol ✅
contracts/lib/helpers/WordCodec.sol ✅
contracts/pools/weighted/WeightedPool.sol ✅
contracts/pools/BaseMinimalSwapInfoPool.sol ✅
contracts/pools/BasePool.sol ✅
contracts/lib/openzeppelin/IERC20Permit.sol ✅
contracts/lib/openzeppelin/EIP712.sol ✅
contracts/pools/oracle/Samples.sol ✅
contracts/pools/oracle/IWeightedPoolPriceOracle.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'stablePoolFactory' CONTRACT
contracts/StablePoolFactory.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IVault.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/BasePoolFactory.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/FactoryWidePauseWindow.sol ✅
contracts/StablePool.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/ISignaturesValidator.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/ITemporarilyPausable.sol ✅
@balancer-labs/v2-solidity-utils/contracts/misc/IWETH.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IAuthorizer.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IProtocolFeesCollector.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/WordCodec.sol ✅
@balancer-labs/v2-pool-utils/contracts/BaseGeneralPool.sol ✅
@balancer-labs/v2-pool-utils/contracts/BaseMinimalSwapInfoPool.sol ✅
contracts/StableMath.sol ✅
contracts/StablePoolUserDataHelpers.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/LogExpMath.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/BalancerErrors.sol ✅
@balancer-labs/v2-pool-utils/contracts/BasePool.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IGeneralPool.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/Math.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/TemporarilyPausable.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IBasePool.sol ✅
@balancer-labs/v2-pool-utils/contracts/BalancerPoolToken.sol ✅
@balancer-labs/v2-pool-utils/contracts/BasePoolAuthorization.sol ✅
@balancer-labs/v2-asset-manager-utils/contracts/IAssetManager.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IPoolSwapStructs.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20Permit.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20Permit.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/EIP712.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/Authentication.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/IAuthentication.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IMinimalSwapInfoPool.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'liquidityBootstrappingPoolFactory' CONTRACT
contracts/BaseWeightedPool.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol ✅
@balancer-labs/v2-pool-utils/contracts/BaseMinimalSwapInfoPool.sol ✅
contracts/WeightedMath.sol ✅
contracts/WeightedPoolUserDataHelpers.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/LogExpMath.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/BalancerErrors.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol ✅
@balancer-labs/v2-pool-utils/contracts/BasePool.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IMinimalSwapInfoPool.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/Math.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/TemporarilyPausable.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/WordCodec.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IVault.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IBasePool.sol ✅
@balancer-labs/v2-asset-manager-utils/contracts/IAssetManager.sol ✅
@balancer-labs/v2-pool-utils/contracts/BalancerPoolToken.sol ✅
@balancer-labs/v2-pool-utils/contracts/BasePoolAuthorization.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/ITemporarilyPausable.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/ISignaturesValidator.sol ✅
@balancer-labs/v2-solidity-utils/contracts/misc/IWETH.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IAuthorizer.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IProtocolFeesCollector.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IPoolSwapStructs.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20Permit.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20Permit.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/EIP712.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/Authentication.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/IAuthentication.sol ✅
contracts/WeightedPool.sol ✅
contracts/WeightedPoolNoAMFactory.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/BasePoolSplitCodeFactory.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/FactoryWidePauseWindow.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/BaseSplitCodeFactory.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/CodeDeployer.sol ✅
contracts/WeightedPoolFactory.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/BasePoolFactory.sol ✅
contracts/WeightedPool2Tokens.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/LogCompression.sol ✅
@balancer-labs/v2-pool-utils/contracts/interfaces/IPriceOracle.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/PoolPriceOracle.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/Buffer.sol ✅
contracts/WeightedOracleMath.sol ✅
contracts/WeightedPool2TokensMiscData.sol ✅
@balancer-labs/v2-pool-utils/contracts/interfaces/IPoolPriceOracle.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/Samples.sol ✅
@balancer-labs/v2-pool-utils/contracts/test/oracle/MockSamples.sol ✅
@balancer-labs/v2-pool-utils/contracts/test/oracle/MockPoolPriceOracle.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ReentrancyGuard.sol ✅
contracts/smart/LiquidityBootstrappingPool.sol ✅
contracts/smart/WeightCompression.sol ✅
contracts/smart/LiquidityBootstrappingPoolFactory.sol ✅
@balancer-labs/v2-solidity-utils/contracts/test/MockLogCompression.sol ✅
contracts/test/MockWeightedOracleMath.sol ✅
contracts/test/MockWeightedPool2Tokens.sol ✅
contracts/test/MockWeightedMath.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
COMPARING 'metaStablePoolFactory' CONTRACT
contracts/meta/MetaStablePoolFactory.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IVault.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/BasePoolSplitCodeFactory.sol ✅
@balancer-labs/v2-pool-utils/contracts/factories/FactoryWidePauseWindow.sol ✅
contracts/meta/MetaStablePool.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/ISignaturesValidator.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/ITemporarilyPausable.sol ✅
@balancer-labs/v2-solidity-utils/contracts/misc/IWETH.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IAuthorizer.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IProtocolFeesCollector.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/BaseSplitCodeFactory.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/BalancerErrors.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/CodeDeployer.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/PoolPriceOracle.sol ✅
@balancer-labs/v2-pool-utils/contracts/interfaces/IRateProvider.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/LogCompression.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol ✅
contracts/StablePool.sol ✅
contracts/meta/OracleMiscData.sol ✅
contracts/meta/StableOracleMath.sol ✅
@balancer-labs/v2-pool-utils/contracts/interfaces/IPriceOracle.sol ✅
@balancer-labs/v2-pool-utils/contracts/interfaces/IPoolPriceOracle.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/Buffer.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/Samples.sol ✅
@balancer-labs/v2-pool-utils/contracts/oracle/QueryProcessor.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/WordCodec.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/LogExpMath.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol ✅
@balancer-labs/v2-pool-utils/contracts/BaseGeneralPool.sol ✅
@balancer-labs/v2-pool-utils/contracts/BaseMinimalSwapInfoPool.sol ✅
contracts/StableMath.sol ✅
contracts/StablePoolUserDataHelpers.sol ✅
@balancer-labs/v2-pool-utils/contracts/BasePool.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IGeneralPool.sol ✅
@balancer-labs/v2-solidity-utils/contracts/math/Math.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/TemporarilyPausable.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IBasePool.sol ✅
@balancer-labs/v2-asset-manager-utils/contracts/IAssetManager.sol ✅
@balancer-labs/v2-pool-utils/contracts/BalancerPoolToken.sol ✅
@balancer-labs/v2-pool-utils/contracts/BasePoolAuthorization.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IPoolSwapStructs.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20Permit.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20Permit.sol ✅
@balancer-labs/v2-solidity-utils/contracts/openzeppelin/EIP712.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/Authentication.sol ✅
@balancer-labs/v2-solidity-utils/contracts/helpers/IAuthentication.sol ✅
@balancer-labs/v2-vault/contracts/interfaces/IMinimalSwapInfoPool.sol ✅
ALL SOURCES EQUAL
-------------------------------------------
Copy link
On this page
Contracts
Balancer Contracts
Token contracts
Audits