Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
hookmate — (実験的) Uniswap v4 Hook開発向けのSolidityコンポーネントとユーティリティ | Kitploit
ツール/GitHubGitHub/gmh5225/hookmate
汎用ユーティリティ暗号化ユーティリティとフレームワーク
GitHubgmh5225/hookmate

hookmate

(実験的) Uniswap v4 Hook開発向けのSolidityコンポーネントとユーティリティ

リポジトリを見る
22年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

hookmate

Uniswap v4 Hook開発向けの実験的なSolidityユーティリティ、ライブラリ、コンポーネント


インストール

foundryが必要です

forge install uniswapfoundation/hookmate

ドキュメント

ライブラリ

PoolStateLibrary.sol

⚠️ 本番環境での使用は未対応です。将来的に破壊的な変更が入ります ⚠️

v4-coreがコードフリーズするまでは、インターフェースは変更される可能性があります

Pool.Stateの情報にアクセスするためのSolidityライブラリ -- ネストされたマッピングも含む。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);

ツールをダウンロード