Uniswap 钩子
一个用于安全和模块化 Uniswap v4 钩子的 Solidity 库。该库包括:
-
用于自定义会计、异步交换和自定义曲线的基础实现
-
用于管理和执行的费用相关实现
-
用于通用场景的即用型钩子,例如三明治保护
-
用于钩子开发的实用程序和库
概述
使用
安装完成后,您可以通过导入来使用库中的合约:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {BaseDynamicFee, IPoolManager, PoolKey} from "src/fee/BaseDynamicFee.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
/**
* @dev 一个允许所有者动态更新 LP 费用的钩子。
*/
contract DynamicLPFeeHook is BaseDynamicFee, Ownable {
uint24 public fee;
constructor(IPoolManager _poolManager) BaseDynamicFee(_poolManager) Ownable(msg.sender) {}
/**
* @inheritdoc BaseDynamicFee
*/
function _getFee(PoolKey calldata) internal view override returns (uint24) {
return fee;
}
/**
* @notice 设置 LP 费用,以百分之一的基点表示。
*/
function setFee(uint24 _fee) external onlyOwner {
fee = _fee;
}
}
为了确保您的系统安全,您应该始终按原样使用已安装的代码,既不要从在线来源复制粘贴它,也不要自己修改它。该库的设计使得只部署您使用的合约和函数,因此您无需担心它不必要地增加 Gas 成本。
安全
钩子库中的合约按原样提供,不提供任何特定保证,包括向后兼容性。
请直接通过我们的安全 联系方式 报告任何问题。该团队将尽最大努力协助并缓解对该库的任何潜在误用。