Skip to content
KitploitKITPLOIT
أدواتالمدونة
Log in
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
hookmate — (تجريبي) مكونات وأدوات Solidity لتطوير Uniswap v4 Hook | Kitploit
أدوات/GitHubGitHub/gmh5225/hookmate
أدوات عامةالتشفيرالأدوات والمكونات
GitHubgmh5225/hookmate

hookmate

(تجريبي) مكونات وأدوات Solidity لتطوير Uniswap v4 Hook

عرض المستودع
2منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

hookmate

أدوات ومرافق ومكونات Solidity تجريبية لتطوير Uniswap v4 Hook


التثبيت

يتطلب foundry

forge install uniswapfoundation/hookmate

التوثيق

المكتبات

PoolStateLibrary.sol

⚠️ غير جاهزة للإنتاج. ستشهد تغييرات كاسرة في المستقبل ⚠️

حتى يتم تجميد كود v4-core، فإن الواجهات عرضة للتغييرات

مكتبة Solidity للوصول إلى معلومات Pool.State -- حتى التعيينات المتداخلة. تعتمد على قراءات فتحات التخزين العشوائية المتاحة عبر PoolManager.extsload

كل قيمة في mapping(PoolId id => Pool.State) public pools; متاحة عبر PoolStateLibrary:

// PoolManager.sol
mapping(PoolId id => Pool.State) public pools;

// Pool.sol
struct State {
    Slot0 slot0;                   // getSlot0()
        | uint160 sqrtPriceX96;
        | int24 tick;
        | uint16 protocolFee;
        | uint24 swapFee;
    uint256 feeGrowthGlobal0X128;  // getFeeGrowthGlobal()
    uint256 feeGrowthGlobal1X128;  // ..
    uint128 liquidity;             // getLiquidity()
    mapping(int24 => TickInfo) ticks;      // getTickInfo()
        | uint128 liquidityGross;          // getTickLiquidity()
        | int128 liquidityNet;             // ..
        | uint256 feeGrowthOutside0X128;   // getTickFeeGrowthOutside()
        | uint256 feeGrowthOutside1X128;   // ..
    mapping(int16 => uint256) tickBitmap;  // getTickBitmap()
    mapping(bytes32 => Position.Info) positions;  // getPositionInfo()
        | uint128 liquidity;                      // getPositionLiquidity()
        | uint256 feeGrowthInside0LastX128;       // getFeeGrowthInside() (calculated live)
        | uint256 feeGrowthInside1LastX128;       // ..
}

مثال على الاستخدام: الحصول على رسوم المركز

import {PoolStateLibrary} from "hookmate/libraries/PoolStateLibrary.sol";
import {PoolId, PoolIdLibrary} from "v4-core/src/types/PoolId.sol";

...

using PoolIdLibrary for PoolKey;

...

IPoolManager manager = address(0xABC);
address liquidityOwner = address(0x123); // likely will be PoolModifyLiquidityTest
int24 tickLower = -60;
int24 tickUpper = 60;
PoolKey memory key = PoolKey(...);

bytes32 positionId = keccak256(abi.encodePacked(address(liquidityOwner), tickLower, tickUpper));

(uint128 liquidity, uint256 feeGrowthInside0X128, uint256 feeGrowthInside1X128) =
    PoolStateLibrary.getPositionInfo(manager, key.toId(), positionId);

تنزيل الأداة