Skip to content

Commit

Permalink
pull v4 periphery and revert payments
Browse files Browse the repository at this point in the history
  • Loading branch information
dianakocsis committed Oct 16, 2024
1 parent 44fd388 commit e5ad3bd
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 14 deletions.
10 changes: 4 additions & 6 deletions contracts/modules/Payments.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ pragma solidity ^0.8.24;

import {Constants} from '../libraries/Constants.sol';
import {ActionConstants} from '@uniswap/v4-periphery/src/libraries/ActionConstants.sol';
import {BipsLibrary} from '@uniswap/v4-periphery/src/libraries/BipsLibrary.sol';
import {PaymentsImmutables} from '../modules/PaymentsImmutables.sol';
import {SafeTransferLib} from 'solmate/src/utils/SafeTransferLib.sol';
import {ERC20} from 'solmate/src/tokens/ERC20.sol';
Expand All @@ -12,12 +13,10 @@ import {ERC20} from 'solmate/src/tokens/ERC20.sol';
abstract contract Payments is PaymentsImmutables {
using SafeTransferLib for ERC20;
using SafeTransferLib for address;
using BipsLibrary for uint256;

error InsufficientToken();
error InsufficientETH();
error InvalidBips();

uint256 internal constant BPS_DENOMINATOR = 10_000;

/// @notice Pays an amount of ETH or ERC20 to a recipient
/// @param token The token to pay (can be ETH using Constants.ETH)
Expand All @@ -40,14 +39,13 @@ abstract contract Payments is PaymentsImmutables {
/// @param recipient The address that will receive payment
/// @param bips Portion in bips of whole balance of the contract
function payPortion(address token, address recipient, uint256 bips) internal {
if (bips > BPS_DENOMINATOR) revert InvalidBips();
if (token == Constants.ETH) {
uint256 balance = address(this).balance;
uint256 amount = (balance * bips) / BPS_DENOMINATOR;
uint256 amount = balance.calculatePortion(bips);
recipient.safeTransferETH(amount);
} else {
uint256 balance = ERC20(token).balanceOf(address(this));
uint256 amount = (balance * bips) / BPS_DENOMINATOR;
uint256 amount = balance.calculatePortion(bips);
ERC20(token).safeTransfer(recipient, amount);
}
}
Expand Down
2 changes: 1 addition & 1 deletion contracts/modules/V3ToV4Migrator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ abstract contract V3ToV4Migrator is MigratorImmutables {
}

/// @dev check that a call is to the ERC721 permit function
function _checkV3PermitCall(bytes calldata inputs) internal view {
function _checkV3PermitCall(bytes calldata inputs) internal pure {
bytes4 selector;
assembly {
selector := calldataload(inputs.offset)
Expand Down
2 changes: 1 addition & 1 deletion lib/v4-periphery
Submodule v4-periphery updated 37 files
+1 −1 .forge-snapshots/PositionManager_burn_nonEmpty_native_withClose.snap
+1 −1 .forge-snapshots/PositionManager_burn_nonEmpty_native_withTakePair.snap
+1 −1 .forge-snapshots/PositionManager_burn_nonEmpty_withClose.snap
+1 −1 .forge-snapshots/PositionManager_burn_nonEmpty_withTakePair.snap
+1 −1 .forge-snapshots/PositionManager_collect_native.snap
+1 −1 .forge-snapshots/PositionManager_collect_sameRange.snap
+1 −1 .forge-snapshots/PositionManager_collect_withClose.snap
+1 −1 .forge-snapshots/PositionManager_collect_withTakePair.snap
+1 −1 .forge-snapshots/PositionManager_decreaseLiquidity_native.snap
+1 −1 .forge-snapshots/PositionManager_decreaseLiquidity_withClose.snap
+1 −1 .forge-snapshots/PositionManager_decreaseLiquidity_withTakePair.snap
+1 −1 .forge-snapshots/PositionManager_decrease_burnEmpty.snap
+1 −1 .forge-snapshots/PositionManager_decrease_burnEmpty_native.snap
+1 −1 .forge-snapshots/PositionManager_decrease_sameRange_allLiquidity.snap
+1 −1 .forge-snapshots/PositionManager_decrease_take_take.snap
+1 −1 .forge-snapshots/PositionManager_increaseLiquidity_erc20_withClose.snap
+1 −1 .forge-snapshots/PositionManager_increaseLiquidity_erc20_withSettlePair.snap
+1 −1 .forge-snapshots/PositionManager_increaseLiquidity_native.snap
+1 −1 .forge-snapshots/PositionManager_increase_autocompoundExcessFeesCredit.snap
+1 −1 .forge-snapshots/PositionManager_increase_autocompound_clearExcess.snap
+1 −1 .forge-snapshots/PositionManager_mint_native.snap
+1 −1 .forge-snapshots/PositionManager_mint_nativeWithSweep_withClose.snap
+1 −1 .forge-snapshots/PositionManager_mint_nativeWithSweep_withSettlePair.snap
+1 −1 .forge-snapshots/PositionManager_mint_onSameTickLower.snap
+1 −1 .forge-snapshots/PositionManager_mint_onSameTickUpper.snap
+1 −1 .forge-snapshots/PositionManager_mint_sameRange.snap
+1 −1 .forge-snapshots/PositionManager_mint_settleWithBalance_sweep.snap
+1 −1 .forge-snapshots/PositionManager_mint_warmedPool_differentRange.snap
+1 −1 .forge-snapshots/PositionManager_mint_withClose.snap
+1 −1 .forge-snapshots/PositionManager_mint_withSettlePair.snap
+1 −1 .forge-snapshots/PositionManager_multicall_initialize_mint.snap
+1 −1 .forge-snapshots/PositionManager_permit_twice.snap
+1 −1 lib/v4-core
+1 −1 src/V4Router.sol
+17 −0 src/libraries/BipsLibrary.sol
+51 −0 test/libraries/BipsLibrary.t.sol
+1 −1 test/router/Payments.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Object {
exports[`Payments Gas Tests Individual Command Tests gas: SWEEP_WITH_FEE 1`] = `
Object {
"calldataByteLength": 516,
"gasUsed": 65702,
"gasUsed": 65726,
}
`;

Expand Down Expand Up @@ -38,7 +38,7 @@ Object {
exports[`Payments Gas Tests Individual Command Tests gas: UNWRAP_WETH_WITH_FEE 1`] = `
Object {
"calldataByteLength": 644,
"gasUsed": 50973,
"gasUsed": 51006,
}
`;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ Object {
exports[`Uniswap Gas Tests Trade on UniswapV2 with Universal Router. ERC20 --> ERC20 gas: exactIn trade, where an output fee is taken 1`] = `
Object {
"calldataByteLength": 836,
"gasUsed": 126681,
"gasUsed": 126705,
}
`;

Expand Down Expand Up @@ -220,7 +220,7 @@ Object {
exports[`Uniswap Gas Tests Trade on UniswapV2 with Universal Router. ERC20 --> ETH gas: exactOut, with ETH fee 1`] = `
Object {
"calldataByteLength": 964,
"gasUsed": 135975,
"gasUsed": 136008,
}
`;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`UniversalRouter Gas Tests gas: bytecode size 1`] = `19630`;
exports[`UniversalRouter Gas Tests gas: bytecode size 1`] = `19615`;
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Object {
exports[`V3 to V4 Migration Gas Tests V4 Commands initialize pool gas: initialize a pool 1`] = `
Object {
"calldataByteLength": 484,
"gasUsed": 64626,
"gasUsed": 62478,
}
`;

Expand Down

0 comments on commit e5ad3bd

Please sign in to comment.