Skip to content

Commit

Permalink
RETURNS_ -> RETURN_
Browse files Browse the repository at this point in the history
  • Loading branch information
Jun1on committed Jun 17, 2024
1 parent 837f2f3 commit 3f67de0
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 106 deletions.
2 changes: 1 addition & 1 deletion src/interfaces/IPoolManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ interface IPoolManager is IProtocolFees, IERC6909Claims, IExtsload, IExttload {
/// @param hookData Any data to pass to the callback, via `IUnlockCallback(msg.sender).unlockCallback(data)`
/// @return swapDeltas The balance delta of the address swapping
/// @dev Swapping on low liquidity pools may cause unexpected swap amounts when liquidity available is less than amountSpecified.
/// Additionally note that if interacting with hooks that have the BEFORE_SWAP_RETURNS_DELTAS_FLAG or AFTER_SWAP_RETURNS_DELTA_FLAG
/// Additionally note that if interacting with hooks that have the BEFORE_SWAP_RETURN_DELTAS_FLAG or AFTER_SWAP_RETURN_DELTA_FLAG
/// the hook may alter the swap input/output. Integrators should perform checks on the returned swapDeltas.
function swap(PoolKey memory key, SwapParams memory params, bytes calldata hookData)
external
Expand Down
42 changes: 21 additions & 21 deletions src/libraries/Hooks.sol
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ library Hooks {
uint160 internal constant BEFORE_DONATE_FLAG = 1 << 5;
uint160 internal constant AFTER_DONATE_FLAG = 1 << 4;

uint160 internal constant BEFORE_SWAP_RETURNS_DELTAS_FLAG = 1 << 3;
uint160 internal constant AFTER_SWAP_RETURNS_DELTA_FLAG = 1 << 2;
uint160 internal constant AFTER_ADD_LIQUIDITY_RETURNS_DELTAS_FLAG = 1 << 1;
uint160 internal constant AFTER_REMOVE_LIQUIDITY_RETURNS_DELTAS_FLAG = 1 << 0;
uint160 internal constant BEFORE_SWAP_RETURN_DELTAS_FLAG = 1 << 3;
uint160 internal constant AFTER_SWAP_RETURN_DELTA_FLAG = 1 << 2;
uint160 internal constant AFTER_ADD_LIQUIDITY_RETURN_DELTAS_FLAG = 1 << 1;
uint160 internal constant AFTER_REMOVE_LIQUIDITY_RETURN_DELTAS_FLAG = 1 << 0;

struct Permissions {
bool beforeInitialize;
Expand Down Expand Up @@ -91,11 +91,11 @@ library Hooks {
|| permissions.afterSwap != self.hasPermission(AFTER_SWAP_FLAG)
|| permissions.beforeDonate != self.hasPermission(BEFORE_DONATE_FLAG)
|| permissions.afterDonate != self.hasPermission(AFTER_DONATE_FLAG)
|| permissions.beforeSwapReturnDeltas != self.hasPermission(BEFORE_SWAP_RETURNS_DELTAS_FLAG)
|| permissions.afterSwapReturnDelta != self.hasPermission(AFTER_SWAP_RETURNS_DELTA_FLAG)
|| permissions.afterAddLiquidityReturnDeltas != self.hasPermission(AFTER_ADD_LIQUIDITY_RETURNS_DELTAS_FLAG)
|| permissions.beforeSwapReturnDeltas != self.hasPermission(BEFORE_SWAP_RETURN_DELTAS_FLAG)
|| permissions.afterSwapReturnDelta != self.hasPermission(AFTER_SWAP_RETURN_DELTA_FLAG)
|| permissions.afterAddLiquidityReturnDeltas != self.hasPermission(AFTER_ADD_LIQUIDITY_RETURN_DELTAS_FLAG)
|| permissions.afterRemoveLiquidityReturnDeltas
!= self.hasPermission(AFTER_REMOVE_LIQUIDITY_RETURNS_DELTAS_FLAG)
!= self.hasPermission(AFTER_REMOVE_LIQUIDITY_RETURN_DELTAS_FLAG)
) {
HookAddressNotValid.selector.revertWith(address(self));
}
Expand All @@ -106,15 +106,15 @@ library Hooks {
/// @return bool True if the hook address is valid
function isValidHookAddress(IHooks self, uint24 fee) internal pure returns (bool) {
// The hook can only have a flag to return a hook delta on an action if it also has the corresponding action flag
if (!self.hasPermission(BEFORE_SWAP_FLAG) && self.hasPermission(BEFORE_SWAP_RETURNS_DELTAS_FLAG)) return false;
if (!self.hasPermission(AFTER_SWAP_FLAG) && self.hasPermission(AFTER_SWAP_RETURNS_DELTA_FLAG)) return false;
if (!self.hasPermission(AFTER_ADD_LIQUIDITY_FLAG) && self.hasPermission(AFTER_ADD_LIQUIDITY_RETURNS_DELTAS_FLAG))
if (!self.hasPermission(BEFORE_SWAP_FLAG) && self.hasPermission(BEFORE_SWAP_RETURN_DELTAS_FLAG)) return false;
if (!self.hasPermission(AFTER_SWAP_FLAG) && self.hasPermission(AFTER_SWAP_RETURN_DELTA_FLAG)) return false;
if (!self.hasPermission(AFTER_ADD_LIQUIDITY_FLAG) && self.hasPermission(AFTER_ADD_LIQUIDITY_RETURN_DELTAS_FLAG))
{
return false;
}
if (
!self.hasPermission(AFTER_REMOVE_LIQUIDITY_FLAG)
&& self.hasPermission(AFTER_REMOVE_LIQUIDITY_RETURNS_DELTAS_FLAG)
&& self.hasPermission(AFTER_REMOVE_LIQUIDITY_RETURN_DELTAS_FLAG)
) return false;

// If there is no hook contract set, then fee cannot be dynamic
Expand Down Expand Up @@ -228,7 +228,7 @@ library Hooks {
hookDeltas = BalanceDeltas.wrap(
self.callHookWithReturnDeltas(
abi.encodeCall(IHooks.afterAddLiquidity, (msg.sender, key, params, deltas, hookData)),
self.hasPermission(AFTER_ADD_LIQUIDITY_RETURNS_DELTAS_FLAG)
self.hasPermission(AFTER_ADD_LIQUIDITY_RETURN_DELTAS_FLAG)
)
);
callerDeltas = callerDeltas - hookDeltas;
Expand All @@ -238,7 +238,7 @@ library Hooks {
hookDeltas = BalanceDeltas.wrap(
self.callHookWithReturnDeltas(
abi.encodeCall(IHooks.afterRemoveLiquidity, (msg.sender, key, params, deltas, hookData)),
self.hasPermission(AFTER_REMOVE_LIQUIDITY_RETURNS_DELTAS_FLAG)
self.hasPermission(AFTER_REMOVE_LIQUIDITY_RETURN_DELTAS_FLAG)
)
);
callerDeltas = callerDeltas - hookDeltas;
Expand All @@ -261,7 +261,7 @@ library Hooks {
if (key.fee.isDynamicFee()) lpFeeOverride = result.parseFee();

// skip this logic for the case where the hook return is 0
if (self.hasPermission(BEFORE_SWAP_RETURNS_DELTAS_FLAG)) {
if (self.hasPermission(BEFORE_SWAP_RETURN_DELTAS_FLAG)) {
hookReturn = BeforeSwapDeltas.wrap(result.parseReturnDeltas());

// any return in unspecified is passed to the afterSwap hook for handling
Expand Down Expand Up @@ -291,20 +291,20 @@ library Hooks {
if (msg.sender == address(self)) return (swapDeltas, BalanceDeltasLibrary.ZERO_DELTAS);

int128 hookDeltaSpecified = beforeSwapHookReturn.getSpecifiedDelta();
int128 hookDeltasUnspecified = beforeSwapHookReturn.getUnspecifiedDelta();
int128 hookDeltaUnspecified = beforeSwapHookReturn.getUnspecifiedDelta();

if (self.hasPermission(AFTER_SWAP_FLAG)) {
hookDeltasUnspecified += self.callHookWithReturnDeltas(
hookDeltaUnspecified += self.callHookWithReturnDeltas(
abi.encodeCall(IHooks.afterSwap, (msg.sender, key, params, swapDeltas, hookData)),
self.hasPermission(AFTER_SWAP_RETURNS_DELTA_FLAG)
self.hasPermission(AFTER_SWAP_RETURN_DELTA_FLAG)
).toInt128();
}

BalanceDeltas hookDeltas;
if (hookDeltasUnspecified != 0 || hookDeltaSpecified != 0) {
if (hookDeltaUnspecified != 0 || hookDeltaSpecified != 0) {
hookDeltas = (params.amountSpecified < 0 == params.zeroForOne)
? toBalanceDeltas(hookDeltaSpecified, hookDeltasUnspecified)
: toBalanceDeltas(hookDeltasUnspecified, hookDeltaSpecified);
? toBalanceDeltas(hookDeltaSpecified, hookDeltaUnspecified)
: toBalanceDeltas(hookDeltaUnspecified, hookDeltaSpecified);

// the caller has to pay for (or receive) the hook's deltas
swapDeltas = swapDeltas - hookDeltas;
Expand Down
2 changes: 1 addition & 1 deletion src/test/CustomCurveHook.sol
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ contract CustomCurveHook is BaseTestHooks {
address, /* sender **/
PoolKey calldata, /* key **/
IPoolManager.ModifyLiquidityParams calldata, /* params **/
BalanceDeltas, /* delta **/
BalanceDeltas, /* deltas **/
bytes calldata /* hookData **/
) external view override onlyPoolManager returns (bytes4, BalanceDeltas) {
revert AddLiquidityDirectToHook();
Expand Down
10 changes: 5 additions & 5 deletions test/CustomAccounting.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,23 @@ contract CustomAccountingTest is Test, Deployers, GasSnapshot {
}

function _setUpDeltaReturnFuzzPool() internal {
address hookAddr = address(uint160(Hooks.BEFORE_SWAP_FLAG | Hooks.BEFORE_SWAP_RETURNS_DELTAS_FLAG));
address hookAddr = address(uint160(Hooks.BEFORE_SWAP_FLAG | Hooks.BEFORE_SWAP_RETURN_DELTAS_FLAG));
address impl = address(new DeltaReturningHook(manager));
_etchHookAndInitPool(hookAddr, impl);
}

function _setUpCustomCurvePool() internal {
address hookAddr = address(uint160(Hooks.BEFORE_SWAP_FLAG | Hooks.BEFORE_SWAP_RETURNS_DELTAS_FLAG));
address hookAddr = address(uint160(Hooks.BEFORE_SWAP_FLAG | Hooks.BEFORE_SWAP_RETURN_DELTAS_FLAG));
address impl = address(new CustomCurveHook(manager));
_etchHookAndInitPool(hookAddr, impl);
}

function _setUpFeeTakingPool() internal {
address hookAddr = address(
uint160(
Hooks.AFTER_SWAP_FLAG | Hooks.AFTER_SWAP_RETURNS_DELTA_FLAG | Hooks.AFTER_ADD_LIQUIDITY_FLAG
| Hooks.AFTER_ADD_LIQUIDITY_RETURNS_DELTAS_FLAG | Hooks.AFTER_REMOVE_LIQUIDITY_FLAG
| Hooks.AFTER_REMOVE_LIQUIDITY_RETURNS_DELTAS_FLAG
Hooks.AFTER_SWAP_FLAG | Hooks.AFTER_SWAP_RETURN_DELTA_FLAG | Hooks.AFTER_ADD_LIQUIDITY_FLAG
| Hooks.AFTER_ADD_LIQUIDITY_RETURN_DELTAS_FLAG | Hooks.AFTER_REMOVE_LIQUIDITY_FLAG
| Hooks.AFTER_REMOVE_LIQUIDITY_RETURN_DELTAS_FLAG
)
);
address impl = address(new FeeTakingHook(manager));
Expand Down
4 changes: 2 additions & 2 deletions test/Reserves.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ contract ReservesTest is Test {
assertEq(value, 0);
}

function test_getReserves_returns_set() public {
function test_getReserves_RETURN_set() public {
currency0.setReserves(100);
uint256 value = currency0.getReserves();
assertEq(value, 100);
}

function test_set_twice_returns_correct_value() public {
function test_set_twice_RETURN_correct_value() public {
currency0.setReserves(100);
currency0.setReserves(200);
uint256 value = currency0.getReserves();
Expand Down
Loading

0 comments on commit 3f67de0

Please sign in to comment.