From 0061a6f004c419066518dd23920bd3a7b486e039 Mon Sep 17 00:00:00 2001 From: sukrucildirr Date: Thu, 25 Sep 2025 20:05:10 +0300 Subject: [PATCH 1/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 117ebc95..e5415c20 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [foundry]: https://getfoundry.sh/ [foundry-badge]: https://img.shields.io/badge/Built%20with-Foundry-FFDB1C.svg -This reposity contains the [Doppler](docs/Doppler.md) Protocol along with the [Airlock](/docs/Airlock.md) contracts. You can learn more about the technical aspects in the [documentation](https://docs.doppler.lol). +This repository contains the [Doppler](docs/Doppler.md) Protocol along with the [Airlock](/docs/Airlock.md) contracts. You can learn more about the technical aspects in the [documentation](https://docs.doppler.lol). ## Deployments From f5b9bcc002b41553398d087a7ca72d639d9969e8 Mon Sep 17 00:00:00 2001 From: sukrucildirr Date: Thu, 25 Sep 2025 20:06:12 +0300 Subject: [PATCH 2/4] Update DERC20.sol --- src/DERC20.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DERC20.sol b/src/DERC20.sol index ffa6b06d..0fcbf9ba 100644 --- a/src/DERC20.sol +++ b/src/DERC20.sol @@ -104,7 +104,7 @@ contract DERC20 is ERC20, ERC20Votes, ERC20Permit, Ownable { * @param symbol_ Symbol of the token * @param initialSupply Initial supply of the token * @param recipient Address receiving the initial supply - * @param owner_ Address receivin the ownership of the token + * @param owner_ Address receiving the ownership of the token * @param yearlyMintRate_ Maximum inflation rate of token in a year * @param vestingDuration_ Duration of the vesting period (in seconds) * @param recipients_ Array of addresses receiving vested tokens From e0c5592b993649a856a029e260ddc8e7b6126a37 Mon Sep 17 00:00:00 2001 From: sukrucildirr Date: Thu, 25 Sep 2025 20:06:46 +0300 Subject: [PATCH 3/4] Update Doppler.sol --- src/Doppler.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Doppler.sol b/src/Doppler.sol index eea6afbb..db540127 100644 --- a/src/Doppler.sol +++ b/src/Doppler.sol @@ -40,7 +40,7 @@ struct SlugData { /// @param totalTokensSold Total tokens sold by the hook /// @param totalProceeds Total amount earned from selling tokens (in numeraire token) /// @param totalTokensSoldLastEpoch Total tokens sold at the end of the last epoch -/// @param feesAccrued Fees accrued to the pool since last collection (these values won't be updated durin migration) +/// @param feesAccrued Fees accrued to the pool since last collection (these values won't be updated during migration) struct State { uint40 lastEpoch; int256 tickAccumulator; From 815a1e0a161df73f74ee9a4fb7b529a52d737227 Mon Sep 17 00:00:00 2001 From: sukrucildirr Date: Thu, 25 Sep 2025 20:10:05 +0300 Subject: [PATCH 4/4] Update Doppler.md --- docs/Doppler.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Doppler.md b/docs/Doppler.md index 9fe40d52..253d7918 100644 --- a/docs/Doppler.md +++ b/docs/Doppler.md @@ -18,7 +18,7 @@ The Doppler Protocol make use of 4 Uniswap v4 hook functions in its contract: ## Curve Accumulation -The Doppler Protocol rebalance its bonding curve according to token sales along a pre-defined schedule based on the number of tokens to sell, `numTokensToSell`, over the duration, `endingTime - startingTime`. This rebalance occurs immediately preceeding the first swap in every epoch, in the `beforeSwap` hook. If the hook doesn't have any swaps in a given epoch then the rebalance applies retroactively to all missed epochs. +The Doppler Protocol rebalance its bonding curve according to token sales along a pre-defined schedule based on the number of tokens to sell, `numTokensToSell`, over the duration, `endingTime - startingTime`. This rebalance occurs immediately preceding the first swap in every epoch, in the `beforeSwap` hook. If the hook doesn't have any swaps in a given epoch then the rebalance applies retroactively to all missed epochs. ### Max Dutch Auction @@ -52,7 +52,7 @@ Within the bonding curve, the Protocol places 3 different types of liquidity pos The lower slug is generally placed ranging from the global tickLower to the current tick. The Protocol places the total amount of proceeds from asset sales, `totalProceeds`, into the slug, allowing the users to sell their tokens back into the curve. The lower slug must have enough liquidity to support all tokens being sold back into the curve. -Ocassionally, the Protocol may not have sufficient `totalProceeds` to support all tokens being sold back into the curve with the usual slug placement. In this case, it computes the average clearing price of the tokens, computed as `totalProceeds / totalTokensSold` and place the slug at the tick corresponding to that price with a minimally sized range, i.e. range size of `tickSpacing`. +Occasionally, the Protocol may not have sufficient `totalProceeds` to support all tokens being sold back into the curve with the usual slug placement. In this case, it computes the average clearing price of the tokens, computed as `totalProceeds / totalTokensSold` and place the slug at the tick corresponding to that price with a minimally sized range, i.e. range size of `tickSpacing`. ### Upper Slug @@ -60,4 +60,4 @@ The upper slug is generally placed between the current tick and a delta, compute ### Price Discovery Slugs -The price discovery slugs are generally placed between the upper slug upper tick and the top the bonding curve, `tickUpper`. The hook creator determines at the time of deployment how many price discovery slugs should be placed. The Protocol places the slugs equidistant between the upper slug's upper tick and the `tickUpper`, contiguously. the Protocol supplies tokens in each slug according to the percentage time difference between epochs multiplied by the `numTokensToSell`. Since the Protocol is supplying amounts according to remaining epochs, if it runs out of future epochs to supply for, it stops placing slugs. In the last epoch there will be no price disovery slugs. +The price discovery slugs are generally placed between the upper slug upper tick and the top the bonding curve, `tickUpper`. The hook creator determines at the time of deployment how many price discovery slugs should be placed. The Protocol places the slugs equidistant between the upper slug's upper tick and the `tickUpper`, contiguously. the Protocol supplies tokens in each slug according to the percentage time difference between epochs multiplied by the `numTokensToSell`. Since the Protocol is supplying amounts according to remaining epochs, if it runs out of future epochs to supply for, it stops placing slugs. In the last epoch there will be no price discovery slugs.