From 523f109c447c75ec9f2a78dc1b0d7b72c4a12480 Mon Sep 17 00:00:00 2001 From: Luiz Soares Date: Fri, 18 Oct 2024 16:59:02 -0300 Subject: [PATCH 1/3] Added readme, hook contract, tests --- README.md | 319 ++------------ img/feecalculation.png | Bin 0 -> 20488 bytes img/liquidity.png | Bin 0 -> 36003 bytes img/overview.png | Bin 0 -> 121408 bytes .../contracts/hooks/DynamicFeeHook.sol | 398 ++++++++++++++++++ .../contracts/interfaces/IDynamicFeeHook.sol | 33 ++ .../contracts/interfaces/ILendingPoolV3.sol | 49 +++ .../contracts/interfaces/IRouterCommon.sol | 10 + packages/foundry/test/DynamicFeeHook.t.sol | 166 ++++++++ packages/foundry/test/mock/ATokenMock.sol | 27 ++ packages/foundry/test/mock/FeeTokenMock.sol | 17 + .../foundry/test/mock/LendingPoolMock.sol | 55 +++ 12 files changed, 794 insertions(+), 280 deletions(-) create mode 100644 img/feecalculation.png create mode 100644 img/liquidity.png create mode 100644 img/overview.png create mode 100644 packages/foundry/contracts/hooks/DynamicFeeHook.sol create mode 100644 packages/foundry/contracts/interfaces/IDynamicFeeHook.sol create mode 100644 packages/foundry/contracts/interfaces/ILendingPoolV3.sol create mode 100644 packages/foundry/contracts/interfaces/IRouterCommon.sol create mode 100644 packages/foundry/test/DynamicFeeHook.t.sol create mode 100644 packages/foundry/test/mock/ATokenMock.sol create mode 100644 packages/foundry/test/mock/FeeTokenMock.sol create mode 100644 packages/foundry/test/mock/LendingPoolMock.sol diff --git a/README.md b/README.md index 1397b2da..83bc76b1 100644 --- a/README.md +++ b/README.md @@ -1,301 +1,60 @@ -# ๐Ÿ—๏ธŽ Scaffold Balancer v3 +## Dynamic Fees and Reinvesting -A starter kit for building on top of Balancer v3. Accelerate the process of creating custom pools and hooks contracts. Concentrate on mastering the core concepts within a swift and responsive environment augmented by a local fork and a frontend pool operations playground. +The **Dynamic Fee Hook** contract is a smart extension to the Balancer protocol, created with the purpose of dynamically adjusting swap fees based on market conditions, specifically volatility and liquidity levels. This contract not only helps to stabilize the pools but also maximizes the rewards for those who provide liquidity. It brings benefits to both liquidity providers and token holders. -[![intro-to-scaffold-balancer](https://github.com/user-attachments/assets/f862091d-2fe9-4b4b-8d70-cb2fdc667384)](https://www.youtube.com/watch?v=m6q5M34ZdXw) +## How It Works: +### 1. Overview -### ๐Ÿ” Development Life Cycle +![Overview](img/overview.png "Overview") -1. Learn the core concepts for building on top of Balancer v3 -2. Configure and deploy factories, pools, and hooks contracts to a local anvil fork of Sepolia -3. Interact with pools via a frontend that runs at [localhost:3000](http://localhost:3000/) +### 2. Dynamic Fee Calculation: +- The contract continuously monitors the volatility and liquidity of each registered pool. +- Using predefined parameters, it calculates a dynamic fee for swaps. Higher volatility results in higher swap fees, which discourages excessive speculation and protects the pool from sudden, large fluctuations. +- The more volatility the more fee charged in the pool. +- The collected fees are not just taken out of circulation. Instead, they are invested in a lending protocol. -### ๐Ÿชง Table Of Contents + ![Fee calculation](img/feecalculation.png "Fee calculation") -- [๐Ÿง‘โ€๐Ÿ’ป Environment Setup](#-environment-setup) -- [๐Ÿ‘ฉโ€๐Ÿซ Learn Core Concepts](#-learn-core-concepts) -- [๐Ÿ•ต๏ธ Explore the Examples](#-explore-the-examples) -- [๐ŸŒŠ Create a Custom Pool](#-create-a-custom-pool) -- [๐Ÿญ Create a Pool Factory](#-create-a-pool-factory) -- [๐Ÿช Create a Pool Hook](#-create-a-pool-hook) -- [๐Ÿšข Deploy the Contracts](#-deploy-the-contracts) -- [๐Ÿงช Test the Contracts](#-test-the-contracts) +### 3. Liquidity Provider Incentives: +- Liquidity providers can add and remove liquidity at any time. +- Liquidity providers who lock their liquidity for a duration longer than the minimum lock duration set by the admin are rewarded with additional earnings. +- These earnings come from both the collected swap fees and the interest generated by investing those fees in the lending protocol. -## ๐Ÿง‘โ€๐Ÿ’ป Environment Setup + ![Liquidity incentives](img/liquidity.png "Liquidity incentives") -### 1. Requirements ๐Ÿ“œ +### 4. Liquidity removal: +- Providers who have locked their liquidity for the minimum duration receive their share of the collected fees and interest. +- Early withdrawers forfeit their rewards, which are redistributed among the remaining providers. -- [Node (>= v18.17)](https://nodejs.org/en/download/) -- Yarn ([v1](https://classic.yarnpkg.com/en/docs/install/) or [v2+](https://yarnpkg.com/getting-started/install)) -- [Git](https://git-scm.com/downloads) -- [Foundry](https://book.getfoundry.sh/getting-started/installation) (>= v0.2.0) +## Benefits: +- **Liquidity Providers**: + - Increased Rewards: By participating in the pool and locking their liquidity for the set duration, providers earn a share of the collected fees, along with the interest earned from lending. + - Stability and Confidence: The dynamic fee mechanism mitigates the impact of high volatility, resulting in a more stable pool. This stability attracts more liquidity providers, ensuring a healthy and robust liquidity environment. +- **Token Holders**: + - Enhanced Pool Stability: As the dynamic fees curb excessive volatility, the pools become more stable, which in turn makes them more attractive for trading and investing. + - Improved Liquidity: With more liquidity providers incentivized to join and stay in the pool longer, the overall liquidity in the pool increases, leading to better trading conditions and reduced slippage. + - Increasing liquidity in lending markets. -### 2. Quickstart ๐Ÿƒ -1. Ensure you have the latest version of foundry installed +## Conclusion: +In summary, the Dynamic Fee Hook contract is a powerful tool that benefits both liquidity providers and token holders. By intelligently adjusting fees based on market conditions, it ensures pool stability and incentivizes long-term participation. This results in a more resilient and liquid trading environment, ultimately enhancing the overall health of the Balancer ecosystem. -``` -foundryup -``` - -2. Clone this repo & install dependencies - -```bash -git clone https://github.com/balancer/scaffold-balancer-v3.git -cd scaffold-balancer-v3 -yarn install -``` - -3. Set a `SEPOLIA_RPC_URL` in the `packages/foundry/.env` file - -``` -SEPOLIA_RPC_URL=... -``` - -4. Start a local anvil fork of the Sepolia testnet - -```bash -yarn fork -``` - -5. Deploy the mock tokens, pool factories, pool hooks, and custom pools contracts - > By default, the anvil account #0 will be the deployer and recieve the mock tokens and BPT from pool initialization - -```bash -yarn deploy -``` -6. Start the nextjs frontend +## How to build / test -```bash -yarn start +### Build +```shell +$ forge build ``` -7. Explore the frontend - -- Navigate to http://localhost:3000 to see the home page -- Visit the [Pools Page](http://localhost:3000/pools) to search by address or select using the pool buttons -- Vist the [Debug Page](http://localhost:3000/debug) to see the mock tokens, factory, and hooks contracts - -8. Run the Foundry tests +### Test +```shell +$ forge test ``` -yarn test -``` - -### 3. Scaffold ETH 2 Tips ๐Ÿ—๏ธ - -SE-2 offers a variety of configuration options for connecting an account, choosing networks, and deploying contracts - -
๐Ÿ”ฅ Burner Wallet - -If you do not have an active wallet extension connected to your web browser, then scaffold eth will automatically connect to a "burner wallet" that is randomly generated on the frontend and saved to the browser's local storage. When using the burner wallet, transactions will be instantly signed, which is convenient for quick iterative development. - -To force the use of burner wallet, disable your browsers wallet extensions and refresh the page. Note that the burner wallet comes with 0 ETH to pay for gas so you will need to click the faucet button in top right corner. Also the mock tokens for the pool are minted to your deployer account set in `.env` so you will want to navigate to the "Debug Contracts" page to mint your burner wallet some mock tokens to use with the pool. - -![Burner Wallet](https://github.com/Dev-Rel-as-a-Service/scaffold-balancer-v3/assets/73561520/0a1f3456-f22a-46b5-9e05-0ef5cd17cce7) - -![Debug Tab Mint](https://github.com/Dev-Rel-as-a-Service/scaffold-balancer-v3/assets/73561520/fbb53772-8f6d-454d-a153-0e7a2925ef9f) - -
- -
๐Ÿ‘› Browser Extension Wallet - -- To use your preferred browser extension wallet, ensure that the account you are using matches the PK you previously provided in the `foundry/.env` file -- You may need to add a local development network with rpc url `http://127.0.0.1:8545/` and chain id `31337`. Also, you may need to reset the nonce data for your wallet exension if it gets out of sync. - -
- -
๐Ÿ› Debug Contracts Page - -The [Debug Contracts Page](http://localhost:3000/debug) can be useful for viewing and interacting with all of the externally avaiable read and write functions of a contract. The page will automatically hot reload with contracts that are deployed via the `01_DeployConstantSumFactory.s.sol` script. We use this handy setup to mint `mockERC20` tokens to any connected wallet - -
- -
๐ŸŒ Changing The Frontend Network Connection - -- The network the frontend points at is set via `targetNetworks` in the `scaffold.config.ts` file using `chains` from viem. -- By default, the frontend runs on a local node at `http://127.0.0.1:8545` - -```typescript -const scaffoldConfig = { - targetNetworks: [chains.foundry], -``` - -
- -
๐Ÿด Changing The Forked Network - -- By default, the `yarn fork` command points at sepolia, but any of the network aliases from the `[rpc_endpoints]` of `foundry.toml` can be used to modify the `"fork"` alias in the `packages/foundry/package.json` file - -```json - "fork": "anvil --fork-url ${0:-sepolia} --chain-id 31337 --config-out localhost.json", -``` - -- To point the frontend at a different forked network, change the `targetFork` in `scaffold.config.ts` - -```typescript -const scaffoldConfig = { - // The networks the frontend can connect to - targetNetworks: [chains.foundry], - - // If using chains.foundry as your targetNetwork, you must specify a network to fork - targetFork: chains.sepolia, -``` - -
- -## ๐Ÿ‘ฉโ€๐Ÿซ Learn Core Concepts - -- [Contract Architecture](https://docs-v3.balancer.fi/concepts/core-concepts/architecture.html) -- [Balancer Pool Tokens](https://docs-v3.balancer.fi/concepts/core-concepts/balancer-pool-tokens.html) -- [Balancer Pool Types](https://docs-v3.balancer.fi/concepts/explore-available-balancer-pools/) -- [Building Custom AMMs](https://docs-v3.balancer.fi/build-a-custom-amm/) -- [Exploring Hooks and Custom Routers](https://pitchandrolls.com/2024/08/30/unlocking-the-power-of-balancer-v3-exploring-hooks-and-custom-routers/) -- [Hook Development Tips](https://medium.com/@johngrant/unlocking-the-power-of-balancer-v3-hook-development-made-simple-831391a68296) - -![v3-components](https://github.com/user-attachments/assets/ccda9323-790f-4276-b092-c867fd80bf9e) - -## ๐Ÿ•ต๏ธ Explore the Examples - -Each of the following examples have turn key deploy scripts that can be found in the [foundry/script/](https://github.com/balancer/scaffold-balancer-v3/tree/main/packages/foundry/script) directory - -### 1. Constant Sum Pool with Dynamic Swap Fee Hook - -The swap fee percentage is altered by the hook contract before the pool calculates the amount for the swap - -![dynamic-fee-hook](https://github.com/user-attachments/assets/5ba69ea3-6894-4eeb-befa-ed87cfeb6b13) - -### 2. Constant Product Pool with Lottery Hook - -An after swap hook makes a request to an oracle contract for a random number - -![after-swap-hook](https://github.com/user-attachments/assets/594ce1ac-2edc-4d16-9631-14feb2d085f8) - -### 3. Weighted Pool with Exit Fee Hook - -An after remove liquidity hook adjusts the amounts before the vault transfers tokens to the user - -![after-remove-liquidity-hook](https://github.com/user-attachments/assets/2e8f4a5c-f168-4021-b316-28a79472c8d1) -## ๐ŸŒŠ Create a Custom Pool +### Gas Snapshots -[![custom-amm-video](https://github.com/user-attachments/assets/e6069a51-f1b5-4f98-a2a9-3a2098696f96)](https://www.youtube.com/watch?v=kXynS3jAu0M) - -### 1. Review the Docs ๐Ÿ“– - -- [Create a custom AMM with a novel invariant](https://docs-v3.balancer.fi/build-a-custom-amm/build-an-amm/create-custom-amm-with-novel-invariant.html) - -### 2. Recall the Key Requirements ๐Ÿ”‘ - -- Must inherit from `IBasePool` and `BalancerPoolToken` -- Must implement `onSwap`, `computeInvariant`, and `computeBalance` -- Must implement `getMaximumSwapFeePercentage` and `getMinimumSwapFeePercentage` - -### 3. Write a Custom Pool Contract ๐Ÿ“ - -- To get started, edit the`ConstantSumPool.sol` contract directly or make a copy - -## ๐Ÿญ Create a Pool Factory - -After designing a pool contract, the next step is to prepare a factory contract because Balancer's off-chain infrastructure uses the factory address as a means to identify the type of pool, which is important for integration into the UI, SDK, and external aggregators - -### 1. Review the Docs ๐Ÿ“– - -- [Deploy a Custom AMM Using a Factory](https://docs-v3.balancer.fi/build-a-custom-amm/build-an-amm/deploy-custom-amm-using-factory.html) - -### 2. Recall the Key Requirements ๐Ÿ”‘ - -- A pool factory contract must inherit from [BasePoolFactory](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/vault/contracts/factories/BasePoolFactory.sol) -- Use the internal `_create` function to deploy a new pool -- Use the internal `_registerPoolWithVault` fuction to register a pool immediately after creation - -### 3. Write a Factory Contract ๐Ÿ“ - -- To get started, edit the`ConstantSumFactory.sol` contract directly or make a copy - -## ๐Ÿช Create a Pool Hook - -[![hook-video](https://github.com/user-attachments/assets/96e12c29-53c2-4a52-9437-e477f6d992d1)](https://www.youtube.com/watch?v=kaz6duliRPA) - -### 1. Review the Docs ๐Ÿ“– - -- [Extend an Existing Pool Type Using Hooks](https://docs-v3.balancer.fi/build-a-custom-amm/build-an-amm/extend-existing-pool-type-using-hooks.html) - -### 2. Recall the Key Requirements ๐Ÿ”‘ - -- A hooks contract must inherit from [BasePoolHooks.sol](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/vault/contracts/BaseHooks.sol) -- A hooks contract should also inherit from [VaultGuard.sol](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/vault/contracts/VaultGuard.sol) -- Must implement `onRegister` to determine if a pool is allowed to use the hook contract -- Must implement `getHookFlags` to define which hooks are supported -- The `onlyVault` modifier should be applied to all hooks functions (i.e. `onRegister`, `onBeforeSwap`, `onAfterSwap` ect.) - -### 3. Write a Hook Contract ๐Ÿ“ - -- To get started, edit the `VeBALFeeDiscountHook.sol` contract directly or make a copy - -## ๐Ÿšข Deploy the Contracts - -The deploy scripts are located in the [foundry/script/](https://github.com/balancer/scaffold-balancer-v3/tree/main/packages/foundry/script) directory. To better understand the lifecycle of deploying a pool that uses a hooks contract, see the diagram below - -![pool-deploy-scripts](https://github.com/user-attachments/assets/bb906080-8f42-46c0-af90-ba01ba1754fc) - -### 1. Modifying the Deploy Scripts ๐Ÿ› ๏ธ - -For all the scaffold integrations to work properly, each deploy script must be imported into `Deploy.s.sol` and inherited by the `DeployScript` contract in `Deploy.s.sol` - -### 2. Broadcast the Transactions ๐Ÿ“ก - -#### Deploy to local fork - -1. Run the following command - -```bash -yarn deploy -``` - -#### Deploy to a live network - -1. Add a `DEPLOYER_PRIVATE_KEY` to the `packages/foundry/.env` file - -``` -DEPLOYER_PRIVATE_KEY=0x... -SEPOLIA_RPC_URL=... -``` - -> The `DEPLOYER_PRIVATE_KEY` must start with `0x` and must hold enough Sepolia ETH to deploy the contracts. This account will receive the BPT from pool initialization - -2. Run the following command - -``` -yarn deploy --network sepolia -``` - -## ๐Ÿงช Test the Contracts - -The [balancer-v3-monorepo](https://github.com/balancer/balancer-v3-monorepo) provides testing utility contracts like [BasePoolTest](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/vault/test/foundry/utils/BasePoolTest.sol) and [BaseVaultTest](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/vault/test/foundry/utils/BaseVaultTest.sol). Therefore, the best way to begin writing tests for custom factories, pools, and hooks contracts is to leverage the examples established by the source code. - -### 1. Testing Factories ๐Ÿ‘จโ€๐Ÿ”ฌ - -The `ConstantSumFactoryTest` roughly mirrors the [WeightedPool8020FactoryTest -](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/pool-weighted/test/foundry/WeightedPool8020Factory.t.sol) - -``` -yarn test --match-contract ConstantSumFactoryTest -``` - -### 2. Testing Pools ๐ŸŠ - -The `ConstantSumPoolTest` roughly mirrors the [WeightedPoolTest](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/pool-weighted/test/foundry/WeightedPool.t.sol) - -``` -yarn test --match-contract ConstantSumPoolTest -``` - -### 3. Testing Hooks ๐ŸŽฃ - -The `VeBALFeeDiscountHookExampleTest` mirrors the [VeBALFeeDiscountHookExampleTest](https://github.com/balancer/balancer-v3-monorepo/blob/main/pkg/pool-hooks/test/foundry/VeBALFeeDiscountHookExample.t.sol) - -``` -yarn test --match-contract VeBALFeeDiscountHookExampleTest +```shell +$ forge snapshot ``` diff --git a/img/feecalculation.png b/img/feecalculation.png new file mode 100644 index 0000000000000000000000000000000000000000..85a3c031e4c4628387060c4d1b19fd7286c028b1 GIT binary patch literal 20488 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 z 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 K&t;ucLK6Utl2B0q literal 0 HcmV?d00001 diff --git a/img/liquidity.png b/img/liquidity.png new file mode 100644 index 0000000000000000000000000000000000000000..6b61a6c44a952a92e62763ceca4baaff2f252f5a GIT binary patch literal 36003 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

0pMWB3gH<8UBNpNB})(Z^z8n{jkjrrC1%>v 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 literal 0 HcmV?d00001 diff --git a/packages/foundry/contracts/hooks/DynamicFeeHook.sol b/packages/foundry/contracts/hooks/DynamicFeeHook.sol new file mode 100644 index 00000000..a9f3767a --- /dev/null +++ b/packages/foundry/contracts/hooks/DynamicFeeHook.sol @@ -0,0 +1,398 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.24; + +import { IBasePoolFactory } from "@balancer-labs/v3-interfaces/contracts/vault/IBasePoolFactory.sol"; +import { IHooks } from "@balancer-labs/v3-interfaces/contracts/vault/IHooks.sol"; +import { IVault } from "@balancer-labs/v3-interfaces/contracts/vault/IVault.sol"; +import { + AddLiquidityKind, + RemoveLiquidityKind, + AfterSwapParams, + LiquidityManagement, + TokenConfig, + PoolSwapParams, + HookFlags, + PoolData, + SwapKind +} from "@balancer-labs/v3-interfaces/contracts/vault/VaultTypes.sol"; +import { FixedPoint } from "@balancer-labs/v3-solidity-utils/contracts/math/FixedPoint.sol"; +import { VaultGuard } from "@balancer-labs/v3-vault/contracts/VaultGuard.sol"; +import { BaseHooks } from "@balancer-labs/v3-vault/contracts/BaseHooks.sol"; +import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; + +import { IDynamicFeeHook } from "../interfaces/IDynamicFeeHook.sol"; +import { ILendingPoolV3 } from "../interfaces/ILendingPoolV3.sol"; +import { IRouterCommon } from "../interfaces/IRouterCommon.sol"; + +contract DynamicFeeHook is IDynamicFeeHook, BaseHooks, VaultGuard, Ownable { + using FixedPoint for uint256; + using SafeERC20 for IERC20; + + // Only stable pools from the allowed factory are able to register and use this hook. + address private immutable allowedPoolFactory; + + // The address of the lending pool contract + ILendingPoolV3 public immutable LENDING; + + uint256 private constant ALPHA = 0.5e18; // smoothing parameter + + // Allow to remove liquidity early and receive rewards without `minLockDuration` restrictions + bool public isEarlyUnlockAllowed; + // Minimum duration of locking liquidity (without removing it) to be eligible for rewards + uint256 public minLockDuration; + // Fee parameters in 18-decimal fixed-point format + uint256 public minFee; // e.g. 0.001e18 (0.1%) + uint256 public maxFee; // e.g. 0.01e18 (1%) + // Higher sensitivity values will make the fee more sensitive to changes + uint256 public volatilitySensitivity; // e.g. 0.0001e18 (0.01%) + uint256 public liquiditySensitivity; // e.g. 0.00005e18 (0.005%) + + // Fee that hook will take from swap + // Calculated by calculatedSwapFeePercentage - staticSwapFeePercentage + // NOTE: will update every time when swap invokes (find solution) + uint256 public deductibleHookFeePercentage; + + // State per each registered pool + mapping(address => uint256) public lastSwapTime; + mapping(address => uint256) public volatility; + mapping(address => uint256) public liquidity; + mapping(address => PoolInfo) public poolInfo; + mapping(address => mapping(address user => LockInfo)) public userLockInfo; + + constructor( + IVault vault, + address _allowedPoolFactory, + uint256 _minFee, + uint256 _maxFee, + uint256 _volatilitySensitivity, + uint256 _liquiditySensitivity, + uint256 _minLockDuration, + address lendingPool + ) VaultGuard(vault) Ownable(msg.sender) { + // Although the hook allows any factory to be registered during deployment, it should be a stable pool factory. + allowedPoolFactory = _allowedPoolFactory; + + minFee = _minFee; + maxFee = _maxFee; + volatilitySensitivity = _volatilitySensitivity; + liquiditySensitivity = _liquiditySensitivity; + + minLockDuration = _minLockDuration; + LENDING = ILendingPoolV3(lendingPool); + } + + /// @inheritdoc IHooks + function onRegister( + address factory, + address pool, + TokenConfig[] memory, + LiquidityManagement calldata + ) public override onlyVault returns (bool) { + emit DynamicFeeHookRegistered(address(this), factory, pool); + + // This hook only allows pools deployed by `_allowedStablePoolFactory` to register it. + return factory == allowedPoolFactory && IBasePoolFactory(factory).isPoolFromFactory(pool); + } + + /// @inheritdoc IHooks + function getHookFlags() public pure override returns (HookFlags memory hookFlags) { + hookFlags.shouldCallAfterAddLiquidity = true; + hookFlags.shouldCallAfterRemoveLiquidity = true; + hookFlags.shouldCallComputeDynamicSwapFee = true; + hookFlags.shouldCallAfterSwap = true; + hookFlags.shouldCallBeforeSwap = true; + } + + function onBeforeSwap(PoolSwapParams calldata, address pool) public override returns (bool success) { + (, , , uint256[] memory lastBalancesLiveScaled18) = _vault.getPoolTokenInfo(pool); + + // Simulate updating of volatility and liquidity + (uint256 simulatedVolatility, uint256 simulatedLiquidity) = _calculateVolatilityAndLiquidity( + pool, + lastBalancesLiveScaled18 + ); + + // Calculate fee + uint256 staticSwapFeePercentage = _vault.getStaticSwapFeePercentage(pool); + uint256 calculatedSwapFeePercentage = _calculateDynamicFee(simulatedVolatility, simulatedLiquidity); + + if (calculatedSwapFeePercentage > staticSwapFeePercentage) { + deductibleHookFeePercentage = calculatedSwapFeePercentage - staticSwapFeePercentage; + } else { + deductibleHookFeePercentage = 0; + } + return true; + } + + /// @inheritdoc IHooks + function onComputeDynamicSwapFeePercentage( + PoolSwapParams calldata, + address, + uint256 staticSwapFeePercentage + ) public view override onlyVault returns (bool, uint256) { + uint256 calculatedSwapFeePercentage = deductibleHookFeePercentage + staticSwapFeePercentage; + // Charge the static or calculated fee, whichever is greater. + return ( + true, + calculatedSwapFeePercentage > staticSwapFeePercentage + ? calculatedSwapFeePercentage + : staticSwapFeePercentage + ); + } + + /// @inheritdoc IHooks + function onAfterSwap(AfterSwapParams calldata params) public override onlyVault returns (bool, uint256) { + // Get pool balances + (, , , uint256[] memory lastBalancesLiveScaled18) = _vault.getPoolTokenInfo(params.pool); + + // Calculate volatility and liquidity + (uint256 newVolatility, uint256 newLiquidity) = _calculateVolatilityAndLiquidity( + params.pool, + lastBalancesLiveScaled18 + ); + + volatility[params.pool] = newVolatility; + liquidity[params.pool] = newLiquidity; + lastSwapTime[params.pool] = block.timestamp; + + // Returning value for after swap hook + uint256 hookAdjustedAmountCalculatedRaw = params.amountCalculatedRaw; + // Check if fee is present + if (deductibleHookFeePercentage > 0) { + uint256 hookFee = params.amountCalculatedRaw.mulDown(deductibleHookFeePercentage); + + if (hookFee > 0) { + IERC20 feeToken; + + if (params.kind == SwapKind.EXACT_IN) { + // For EXACT_IN swaps, the `amountCalculated` is the amount of `tokenOut`. The fee must be taken + // from `amountCalculated`, so we decrease the amount of tokens the Vault will send to the caller. + // + // The preceding swap operation has already credited the original `amountCalculated`. Since we're + // returning `amountCalculated - hookFee` here, it will only register debt for that reduced amount + // on settlement. This call to `sendTo` pulls `hookFee` tokens of `tokenOut` from the Vault to this + // contract, and registers the additional debt, so that the total debts match the credits and + // settlement succeeds. + feeToken = params.tokenOut; + hookAdjustedAmountCalculatedRaw -= hookFee; + } else { + // For EXACT_OUT swaps, the `amountCalculated` is the amount of `tokenIn`. The fee must be taken + // from `amountCalculated`, so we increase the amount of tokens the Vault will ask from the user. + // + // The preceding swap operation has already registered debt for the original `amountCalculated`. + // Since we're returning `amountCalculated + hookFee` here, it will supply credit for that increased + // amount on settlement. This call to `sendTo` pulls `hookFee` tokens of `tokenIn` from the Vault to + // this contract, and registers the additional debt, so that the total debts match the credits and + // settlement succeeds. + feeToken = params.tokenIn; + hookAdjustedAmountCalculatedRaw += hookFee; + } + + // hookFee = calculated amount from dynamic fee + + if (poolInfo[params.pool].feeToken == address(feeToken)) { + _vault.sendTo(feeToken, address(this), hookFee); + + // Invest the collected fee + _invest(params.pool, address(feeToken), hookFee); + + emit HookFeeInvested(address(this), feeToken, hookFee); + } + } + } + return (true, hookAdjustedAmountCalculatedRaw); + } + + /// @notice This function calculates update to a pool volatility and liquidity without changing state + function _calculateVolatilityAndLiquidity( + address pool, + uint256[] memory poolBalances + ) internal view returns (uint256 newVolatility, uint256 newLiquidity) { + uint256 previousSwapTime = lastSwapTime[pool]; + uint256 currentVolatility = volatility[pool]; + + // Calculate time since the last swap + uint256 timeSinceLastSwap = previousSwapTime == 0 ? 0 : block.timestamp - previousSwapTime; + + // Convert time to fixed-point format + uint256 timeSinceLastSwapFixed = timeSinceLastSwap * FixedPoint.ONE; + + // Calculate volatility using exponential smoothing based on the time between swaps + // updatedVolatility = currentVolatility * (1 - alpha) + timeSinceLastSwapFixed * alpha + newVolatility = currentVolatility.mulDown(FixedPoint.ONE - ALPHA) + timeSinceLastSwapFixed.mulDown(ALPHA); + + // Calculate current liquidity (sum of all token balances in the pool) + uint256 totalLiquidity = 0; + for (uint256 i = 0; i < poolBalances.length; i++) { + totalLiquidity += poolBalances[i]; + } + newLiquidity = totalLiquidity; + } + + function _calculateDynamicFee(uint256 _volatility, uint256 _liquidity) internal view returns (uint256) { + // Avoid division by zero + if (_liquidity == 0) { + _liquidity = 1; + } + + // Calculate the fee component from volatility + uint256 feeFromVolatility = _volatility.mulDown(volatilitySensitivity); + + // Calculate the fee component inversely proportional to liquidity + // Lower liquidity leads to a higher fee + uint256 feeFromLiquidity = liquiditySensitivity.mulDown(FixedPoint.ONE.divDown(_liquidity)); + + // Sum the fee components and add the minimum fee + uint256 dynamicFee = minFee + feeFromVolatility + feeFromLiquidity; + + // Check fee boundaries + if (dynamicFee > maxFee) { + dynamicFee = maxFee; + } + if (dynamicFee < minFee) { + dynamicFee = minFee; + } + + return dynamicFee; + } + + /// @dev Handles investing of collected fees into Lending market + function _invest(address _pool, address _asset, uint256 _amount) internal { + _updatePoolInfo(_pool, _amount); + + // invest fees + IERC20(_asset).forceApprove(address(LENDING), _amount); + LENDING.supply(_asset, _amount, address(this), 0); + } + + /// @dev Updates poolInfo according to new balance + _amount + /// @param _pool pool address + /// @param _amount The new received amount to be distributed among liquidity providers + function _updatePoolInfo(address _pool, uint256 _amount) internal { + PoolInfo storage pool = poolInfo[_pool]; + + uint256 lastAssetBalance = pool.lastRewardBalance; + uint256 currentRewardBalance = IERC20(pool.rewardToken).balanceOf(address(this)); + + // since the balance of the rewardToken is nominated in feeToken we can safely perform the calculation + _amount = _amount + (currentRewardBalance - lastAssetBalance); + if (_amount == 0) return; + + // update poolInfo according to new balance + _amount + pool.accRewardsPerShare = pool.accRewardsPerShare + uint128(((_amount * 1e18) / pool.bptLocked)); + pool.lastRewardBalance = uint128(currentRewardBalance + _amount); + } + + function onAfterAddLiquidity( + address router, + address _pool, + AddLiquidityKind, + uint256[] memory, + uint256[] memory amountsInRaw, + uint256 bptAmountOut, + uint256[] memory, + bytes memory + ) public override returns (bool success, uint256[] memory hookAdjustedAmountsInRaw) { + if (poolInfo[_pool].feeToken == address(0)) return (false, amountsInRaw); + + address userAddress = IRouterCommon(router).getSender(); + + PoolInfo storage pool = poolInfo[_pool]; + LockInfo storage lock = userLockInfo[_pool][userAddress]; + _updatePoolInfo(_pool, 0); + + if (lock.lockStart == 0) { + lock.lockStart = uint128(block.timestamp); + } + + if (lock.bptLocked > 0) { + uint256 newRewards = (lock.bptLocked * pool.accRewardsPerShare) / 1e18 - lock.rewardDebt; + lock.accruedRewards += uint128(newRewards); + } + + pool.bptLocked += uint128(bptAmountOut); + + lock.bptLocked += uint128(bptAmountOut); + lock.rewardDebt = (lock.bptLocked * pool.accRewardsPerShare) / 1e18; + + return (true, amountsInRaw); + } + + function onAfterRemoveLiquidity( + address router, + address _pool, + RemoveLiquidityKind, + uint256 bptAmountIn, + uint256[] memory, + uint256[] memory, + uint256[] memory, + bytes memory userData + ) public override returns (bool success, uint256[] memory hookAdjustedAmountsOutRaw) { + if (poolInfo[_pool].feeToken == address(0)) return (false, hookAdjustedAmountsOutRaw); + + address userAddress = IRouterCommon(router).getSender(); + + PoolInfo storage pool = poolInfo[_pool]; + LockInfo storage lock = userLockInfo[_pool][userAddress]; + _updatePoolInfo(_pool, 0); + + uint256 newRewards = (lock.bptLocked * pool.accRewardsPerShare) / 1e18 - lock.rewardDebt; + lock.accruedRewards += uint128(newRewards); + + lock.bptLocked -= uint128(bptAmountIn); + lock.rewardDebt = (lock.bptLocked * pool.accRewardsPerShare) / 1e18; + + uint256 userRewards = lock.accruedRewards; + lock.accruedRewards = 0; + + uint256 userLockStart = lock.lockStart; + lock.lockStart = 0; // reset timer on any remove liquidity + + // rewards payment + // in case user didn't lock for minLockDuration he looses rewards + if (userLockStart + minLockDuration > block.timestamp || isEarlyUnlockAllowed) { + if (userData.length > 0 && abi.decode(userData, (bool))) { + // transfer underlying token + LENDING.withdraw(pool.feeToken, userRewards, userAddress); + } else { + // transfer aToken (can be useful in case low liquidity in the lending pool) + IERC20(pool.rewardToken).safeTransfer(userAddress, lock.accruedRewards); + } + + pool.lastRewardBalance -= uint128(userRewards); + } else { + // penalty: distribute rewards among current users + _updatePoolInfo(_pool, userRewards); + } + + return (true, hookAdjustedAmountsOutRaw); + } + + /* OWNER FUNCTIONS */ + + function addInvestPool(address _pool, address _asset) external onlyOwner { + if (poolInfo[_pool].feeToken != address(0)) revert AlreadyExist(); + + poolInfo[_pool].feeToken = _asset; + + // this call also checks if there is exist aToken for the asset + ILendingPoolV3.ReserveDataLegacy memory reserveData = ILendingPoolV3(LENDING).getReserveData(_asset); + poolInfo[_pool].rewardToken = reserveData.aTokenAddress; + + emit InvestPoolAdded(_pool, _asset); + } + + function setEarlyUnlock(bool _allowedEarlyUnlock) external onlyOwner { + isEarlyUnlockAllowed = _allowedEarlyUnlock; + + emit EarlyUnlockSet(_allowedEarlyUnlock); + } + + function setMinLockDuration(uint256 _minLockDuration) external onlyOwner { + minLockDuration = _minLockDuration; + + emit MinLockDurationSet(_minLockDuration); + } +} diff --git a/packages/foundry/contracts/interfaces/IDynamicFeeHook.sol b/packages/foundry/contracts/interfaces/IDynamicFeeHook.sol new file mode 100644 index 00000000..46e375da --- /dev/null +++ b/packages/foundry/contracts/interfaces/IDynamicFeeHook.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.24; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +interface IDynamicFeeHook { + struct LockInfo { + uint128 bptLocked; + uint128 accruedRewards; + uint128 rewardDebt; + uint128 lockStart; + } + + struct PoolInfo { + uint128 bptLocked; + uint128 lastRewardBalance; + uint128 accRewardsPerShare; + address feeToken; + address rewardToken; // an aToken of the AAVE lending + } + + // Events + + event DynamicFeeHookRegistered(address indexed hooksContract, address indexed factory, address indexed pool); + event HookFeeInvested(address indexed hooksContract, IERC20 indexed token, uint256 feeAmount); + event InvestPoolAdded(address _pool, address _asset); + event EarlyUnlockSet(bool _allowedEarlyUnlock); + event MinLockDurationSet(uint256 _minLockDuration); + + // Errors + + error AlreadyExist(); +} diff --git a/packages/foundry/contracts/interfaces/ILendingPoolV3.sol b/packages/foundry/contracts/interfaces/ILendingPoolV3.sol new file mode 100644 index 00000000..e7c30d39 --- /dev/null +++ b/packages/foundry/contracts/interfaces/ILendingPoolV3.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.24; + +interface ILendingPoolV3 { + struct ReserveConfigurationMap { + uint256 data; + } + + struct ReserveDataLegacy { + //stores the reserve configuration + ReserveConfigurationMap configuration; + //the liquidity index. Expressed in ray + uint128 liquidityIndex; + //the current supply rate. Expressed in ray + uint128 currentLiquidityRate; + //variable borrow index. Expressed in ray + uint128 variableBorrowIndex; + //the current variable borrow rate. Expressed in ray + uint128 currentVariableBorrowRate; + //the current stable borrow rate. Expressed in ray + uint128 currentStableBorrowRate; + //timestamp of last update + uint40 lastUpdateTimestamp; + //the id of the reserve. Represents the position in the list of the active reserves + uint16 id; + //aToken address + address aTokenAddress; + //stableDebtToken address + address stableDebtTokenAddress; + //variableDebtToken address + address variableDebtTokenAddress; + //address of the interest rate strategy + address interestRateStrategyAddress; + //the current treasury balance, scaled + uint128 accruedToTreasury; + //the outstanding unbacked aTokens minted through the bridging feature + uint128 unbacked; + //the outstanding debt borrowed against this asset in isolation mode + uint128 isolationModeTotalDebt; + } + + function getReserveData(address asset) external view returns (ReserveDataLegacy memory); + + // @notice Supplies an `amount` of underlying asset into the reserve, receiving in return overlying aTokens. + function supply(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external; + + // @notice Withdraws an `amount` of underlying asset from the reserve, burning the equivalent aTokens owned + function withdraw(address asset, uint256 amount, address to) external returns (uint256); +} diff --git a/packages/foundry/contracts/interfaces/IRouterCommon.sol b/packages/foundry/contracts/interfaces/IRouterCommon.sol new file mode 100644 index 00000000..8659ebcf --- /dev/null +++ b/packages/foundry/contracts/interfaces/IRouterCommon.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.24; + +interface IRouterCommon { + /** + * @notice Get the first sender which initialized the call to Router. + * @return address The sender address + */ + function getSender() external view returns (address); +} diff --git a/packages/foundry/test/DynamicFeeHook.t.sol b/packages/foundry/test/DynamicFeeHook.t.sol new file mode 100644 index 00000000..e2cd7f5b --- /dev/null +++ b/packages/foundry/test/DynamicFeeHook.t.sol @@ -0,0 +1,166 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +pragma solidity ^0.8.24; + +import "forge-std/Test.sol"; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +import { IVault } from "@balancer-labs/v3-interfaces/contracts/vault/IVault.sol"; +import { IVaultAdmin } from "@balancer-labs/v3-interfaces/contracts/vault/IVaultAdmin.sol"; +import { IVaultErrors } from "@balancer-labs/v3-interfaces/contracts/vault/IVaultErrors.sol"; +import { + HooksConfig, + LiquidityManagement, + PoolRoleAccounts, + SwapKind, + TokenConfig, + PoolSwapParams +} from "@balancer-labs/v3-interfaces/contracts/vault/VaultTypes.sol"; + +import { CastingHelpers } from "@balancer-labs/v3-solidity-utils/contracts/helpers/CastingHelpers.sol"; +import { ArrayHelpers } from "@balancer-labs/v3-solidity-utils/contracts/test/ArrayHelpers.sol"; +import { FixedPoint } from "@balancer-labs/v3-solidity-utils/contracts/math/FixedPoint.sol"; +import { StableMath } from "@balancer-labs/v3-solidity-utils/contracts/math/StableMath.sol"; + +import { StablePoolFactory } from "../lib/balancer-v3-monorepo/pkg/pool-stable/contracts/StablePoolFactory.sol"; +import { PoolMock } from "@balancer-labs/v3-vault/contracts/test/PoolMock.sol"; + +import { BaseVaultTest } from "@balancer-labs/v3-vault/test/foundry/utils/BaseVaultTest.sol"; + +import { ATokenMock } from "./mock/ATokenMock.sol"; +import { FeeTokenMock } from "./mock/FeeTokenMock.sol"; +import { LendingPoolMock } from "./mock/LendingPoolMock.sol"; +import { DynamicFeeHook } from "../contracts/hooks/DynamicFeeHook.sol"; +import { IDynamicFeeHook } from "../contracts/interfaces/IDynamicFeeHook.sol"; +import { ILendingPoolV3 } from "../contracts/interfaces/ILendingPoolV3.sol"; + +contract DynamicFeeHookTest is BaseVaultTest { + using CastingHelpers for address[]; + using FixedPoint for uint256; + using ArrayHelpers for *; + + StablePoolFactory internal stablePoolFactory; + + address internal dynamicFeeHook; + IERC20 internal feeToken; + IERC20 internal rewardToken; + ILendingPoolV3 internal lendingPool; + + uint256 internal constant DEFAULT_AMP_FACTOR = 200; + + uint256 internal constant SWAP_FEE_PERCENTAGE = 5e15; // 0.5% + + uint256 internal constant MIN_FEE = 10e15; // 0.1% + uint256 internal constant MAX_FEE = 10e16; // 1.0% + uint256 internal constant VOLATILITY_SENSITIVITY = 10e14; // 0.01% + uint256 internal constant LIQUIDITY_SENSITIVITY = 5e13; // 0.005% + uint256 internal constant MIN_LOCK_DURATION = 4 weeks; + + function setUp() public override { + super.setUp(); + + // Deploy fee, reward tokens and lending pool + feeToken = new FeeTokenMock(); + rewardToken = new ATokenMock(); + lendingPool = new LendingPoolMock(address(feeToken), address(rewardToken)); + } + + function createHook() internal override returns (address) { + // Create the factory here, because it needs to be deployed after the Vault, but before the hook contract. + stablePoolFactory = new StablePoolFactory(IVault(address(vault)), 365 days, "Factory v1", "Pool v1"); + // lp will be the owner of the hook. + vm.prank(admin); + dynamicFeeHook = address( + new DynamicFeeHook( + IVault(address(vault)), + address(stablePoolFactory), + MIN_FEE, + MAX_FEE, + VOLATILITY_SENSITIVITY, + LIQUIDITY_SENSITIVITY, + MIN_LOCK_DURATION, + address(lendingPool) + ) + ); + vm.label(dynamicFeeHook, "Dynamic Fee Hook"); + return dynamicFeeHook; + } + + function _createPool(address[] memory tokens, string memory label) internal override returns (address) { + PoolRoleAccounts memory roleAccounts; + + vm.expectEmit(true, true, false, false); + emit IDynamicFeeHook.DynamicFeeHookRegistered(dynamicFeeHook, address(stablePoolFactory), address(0)); + + address newPool = address( + stablePoolFactory.create( + "Stable Pool Test", + "STABLE-TEST", + vault.buildTokenConfig(tokens.asIERC20()), + DEFAULT_AMP_FACTOR, + roleAccounts, + BASE_MIN_SWAP_FEE, + poolHooksContract, + false, // Does not allow donations + false, // Do not disable unbalanced add/remove liquidity + ZERO_BYTES32 + ) + ); + vm.label(newPool, label); + + authorizer.grantRole(vault.getActionId(IVaultAdmin.setStaticSwapFeePercentage.selector), admin); + vm.prank(admin); + vault.setStaticSwapFeePercentage(newPool, SWAP_FEE_PERCENTAGE); + + return newPool; + } + + function testRegistryWithWrongFactory() public { + address dynamicFeePool = _createPoolToRegister(); + TokenConfig[] memory tokenConfig = vault.buildTokenConfig( + [address(dai), address(usdc)].toMemoryArray().asIERC20() + ); + + // Registration fails because this factory is not allowed to register the hook. + vm.expectRevert( + abi.encodeWithSelector( + IVaultErrors.HookRegistrationFailed.selector, + poolHooksContract, + dynamicFeePool, + address(factoryMock) + ) + ); + _registerPoolWithHook(dynamicFeePool, tokenConfig); + } + + function testSuccessfulRegistry() public view { + HooksConfig memory hooksConfig = vault.getHooksConfig(pool); + + assertEq(hooksConfig.hooksContract, poolHooksContract, "hooksContract is wrong"); + assertTrue(hooksConfig.shouldCallComputeDynamicSwapFee, "shouldCallComputeDynamicSwapFee is false"); + assertTrue(hooksConfig.shouldCallAfterAddLiquidity, "shouldCallAfterAddLiquidity is false"); + assertTrue(hooksConfig.shouldCallAfterRemoveLiquidity, "shouldCallAfterRemoveLiquidity is false"); + assertTrue(hooksConfig.shouldCallAfterSwap, "shouldCallAfterSwap is false"); + assertTrue(hooksConfig.shouldCallBeforeSwap, "shouldCallBeforeSwap is false"); + } + + function testInvestingFlow() public view {} + + // Registration tests require a new pool, because an existing pool may already be registered. + function _createPoolToRegister() private returns (address newPool) { + //newPool = address(deployPoolMock(IVault(address(vault)), "ERC20 Pool", "ERC20POOL")); + // newPool = new PoolMock(IVault(address(vault)), "ERC20 Pool", "ERC20POOL").address(); + newPool = address(new PoolMock(IVault(address(vault)), "ERC20 Pool", "ERC20POOL")); + vm.label(newPool, "Directional Fee Pool"); + } + + function _registerPoolWithHook(address dynamicFeePool, TokenConfig[] memory tokenConfig) private { + PoolRoleAccounts memory roleAccounts; + roleAccounts.poolCreator = lp; + + LiquidityManagement memory liquidityManagement; + + factoryMock.registerPool(dynamicFeePool, tokenConfig, roleAccounts, poolHooksContract, liquidityManagement); + } +} diff --git a/packages/foundry/test/mock/ATokenMock.sol b/packages/foundry/test/mock/ATokenMock.sol new file mode 100644 index 00000000..cd58ae2e --- /dev/null +++ b/packages/foundry/test/mock/ATokenMock.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.10; + +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract ATokenMock is ERC20("A-token", "A-token") { + uint256 public startBlock = block.number; + + // increases over block + function balanceOf(address account) public view override returns (uint256) { + uint256 balance = super.balanceOf(account); + uint256 profit = balance * (block.timestamp - startBlock) / startBlock; + return balance + profit; + } + + function mint(address to, uint256 amount) public { + _mint(to, amount); + } + + function burn(address from, uint256 amount) public { + if (amount > balanceOf(from)) { + amount = balanceOf(from); + } + + _burn(from, amount); + } +} diff --git a/packages/foundry/test/mock/FeeTokenMock.sol b/packages/foundry/test/mock/FeeTokenMock.sol new file mode 100644 index 00000000..10ebe055 --- /dev/null +++ b/packages/foundry/test/mock/FeeTokenMock.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.10; + +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract FeeTokenMock is ERC20("FeeToken", "FT") { + function mint(address to, uint256 amount) external { + _mint(to, amount); + } + + function burn(address from, uint256 amount) external { + if (amount > balanceOf(from)) { + amount = balanceOf(from); + } + _burn(from, amount); + } +} diff --git a/packages/foundry/test/mock/LendingPoolMock.sol b/packages/foundry/test/mock/LendingPoolMock.sol new file mode 100644 index 00000000..5abff9b2 --- /dev/null +++ b/packages/foundry/test/mock/LendingPoolMock.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.10; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { ATokenMock } from "./ATokenMock.sol"; +import { FeeTokenMock } from "./FeeTokenMock.sol"; +import { ILendingPoolV3 } from "../../contracts/interfaces/ILendingPoolV3.sol"; + +contract LendingPoolMock is ILendingPoolV3 { + address public feeToken; + address public aToken; + + constructor(address _feeToken, address _aToken) { + feeToken = _feeToken; + aToken = _aToken; + } + + function supply(address asset, uint256 amount, address onBehalfOf, uint16 /*referralCode*/) external { + FeeTokenMock(asset).transferFrom(msg.sender, address(this), amount); + + ATokenMock(asset).mint(onBehalfOf, amount); + return; + } + + function withdraw(address asset, uint256 amount, address to) external returns (uint256) { + ATokenMock(asset).burn(to, amount); + + FeeTokenMock(asset).mint(msg.sender, amount); + return amount; + } + + function getReserveData(address) external view returns (ReserveDataLegacy memory) { + ILendingPoolV3.ReserveConfigurationMap memory config = ReserveConfigurationMap(0); + config.data = 0; + + return + ReserveDataLegacy({ + configuration: config, + liquidityIndex: 0, + currentLiquidityRate: 0, + variableBorrowIndex: 0, + currentVariableBorrowRate: 0, + currentStableBorrowRate: 0, + lastUpdateTimestamp: 0, + id: 0, + aTokenAddress: aToken, + stableDebtTokenAddress: address(0), + variableDebtTokenAddress: address(0), + interestRateStrategyAddress: address(0), + accruedToTreasury: 0, + unbacked: 0, + isolationModeTotalDebt: 0 + }); + } +} From 538673d0365242f81c1d1f63039a97f4e27f5bc0 Mon Sep 17 00:00:00 2001 From: Luiz Soares Date: Fri, 18 Oct 2024 17:14:17 -0300 Subject: [PATCH 2/3] Added devx feedback and test result image --- README.md | 4 ++++ img/hookTest.png | Bin 0 -> 60658 bytes 2 files changed, 4 insertions(+) create mode 100644 img/hookTest.png diff --git a/README.md b/README.md index 83bc76b1..4a5547b7 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ The **Dynamic Fee Hook** contract is a smart extension to the Balancer protocol, ## Conclusion: In summary, the Dynamic Fee Hook contract is a powerful tool that benefits both liquidity providers and token holders. By intelligently adjusting fees based on market conditions, it ensures pool stability and incentivizes long-term participation. This results in a more resilient and liquid trading environment, ultimately enhancing the overall health of the Balancer ecosystem. +## Dev/X feedback: +The Balancer V3 Hookathon had well-written instructions that were very easy to follow. Balancer provided documentation and a video explaining how to create a new hook, which is a great resource for new users. We didn't need support, but when Discord channel was checked, the Balancer team was actively answering questions from other participants, which was helpful. We could learn from the answers, and it gave hackers the confidence that if a hacker needed help, the Balancer team would assist. ## How to build / test @@ -52,6 +54,8 @@ $ forge build ```shell $ forge test ``` + ![Test result](img/hookTest.png "Test result") + ### Gas Snapshots diff --git a/img/hookTest.png b/img/hookTest.png new file mode 100644 index 0000000000000000000000000000000000000000..5bafb5d755909b5ba6083597cb2baf3cac655333 GIT binary patch literal 60658 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

  • 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 literal 0 HcmV?d00001 From 068a8293095bc70d9634a7e71ccdfe72a0a116e9 Mon Sep 17 00:00:00 2001 From: luizpf29 Date: Fri, 18 Oct 2024 17:16:04 -0300 Subject: [PATCH 3/3] Fixed test result image display --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a5547b7..c74095e5 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,8 @@ $ forge build ```shell $ forge test ``` - ![Test result](img/hookTest.png "Test result") + +![Test result](img/hookTest.png "Test result") ### Gas Snapshots