Last active
November 27, 2025 10:15
-
-
Save bitgamma/a5ced5fd58335e5c6be3d39d9c907135 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: UNLICENSED | |
| pragma solidity ^0.8.13; | |
| struct PermitDetails { | |
| address token; | |
| uint160 amount; | |
| uint48 expiration; | |
| uint48 nonce; | |
| } | |
| struct PermitSingle { | |
| PermitDetails details; | |
| address spender; | |
| uint256 sigDeadline; | |
| } | |
| struct PermitBatch { | |
| PermitDetails[] details; | |
| address spender; | |
| uint256 sigDeadline; | |
| } | |
| struct AllowanceTransferDetails { | |
| address from; | |
| address to; | |
| uint160 amount; | |
| address token; | |
| } | |
| type Currency is address; | |
| interface IHooks {} | |
| struct PoolKey { | |
| Currency currency0; | |
| Currency currency1; | |
| uint24 fee; | |
| int24 tickSpacing; | |
| IHooks hooks; | |
| } | |
| contract Stubs { | |
| // Swap Functions | |
| function v3SwapExactInput(address recipient, uint256 amountIn, uint256 amountOutMin, bytes calldata path, bool payerIsUser) public {} | |
| function v3SwapExactOutput(address recipient, uint256 amountOut, uint256 amountInMax, bytes calldata path, bool payerIsUser) public {} | |
| function v2SwapExactInput(address recipient, uint256 amountIn, uint256 amountOutMin, address[] calldata path, bool payerIsUser) public {} | |
| function v2SwapExactOutput(address recipient, uint256 amountOut, uint256 amountInMax, address[] calldata path, bool payerIsUser) public {} | |
| // Permit2 | |
| function permit2TransferFrom(address token, address recipient, uint160 amount) public {} | |
| function permit(PermitBatch calldata permitBatch, bytes calldata signature) public {} | |
| function permit(PermitSingle calldata permitSingle, bytes calldata signature) public {} | |
| function permit2TransferFrom(AllowanceTransferDetails[] calldata batch) public {} | |
| // Payment & Balance | |
| function sweep(address token, address recipient, uint256 amountMin) public {} | |
| function pay(address token, address recipient, uint256 amount) public {} | |
| function payPortion(address token, address recipient, uint256 bips) public {} | |
| function balanceOf(address owner, address token, uint256 minBalance) public {} | |
| // ETH & WETH | |
| /// forge-lint: disable-next-item(mixed-case-function) | |
| function wrapETH(address recipient, uint256 amount) public {} | |
| /// forge-lint: disable-next-item(mixed-case-function) | |
| function unwrapWETH9(address recipient, uint256 amountMin) public {} | |
| // v3 & v4 Advanced | |
| function v4HandleAction(bytes calldata actions, bytes[] calldata params) public {} | |
| function nftPermit(address spender, uint256 tokenId, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {} | |
| function nftPositionCall(bytes calldata callData) public {} | |
| function poolInitialize(PoolKey calldata key, uint160 sqrtPriceX96) public {} | |
| function v4PositionCall(bytes calldata callData) public {} | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment