毎日使う開発者ツールを、すべて一か所に。
コンバーター、フォーマッター、ハッシュ、バリデーター、そして何度も開き直す小さなユーティリティが、タブの海に散らばることなく一か所にまとまります。
Solidity スマートコントラクトのマッピングと配列のストレージスロットを計算します
Ethereum のスマートコントラクトでは、ストレージは 32 バイトのスロットに整理されています。各状態変数は特定のスロットを占め、マッピングはキーとベーススロット番号に基づいて計算されたスロットを使います。
マッピングの場合、ストレージスロットは次のように計算されます: keccak256(key . slot) ここで key はマッピングのキー (32 バイトにパディング)、slot はマッピングのベーススロット番号です。// 例: balances[user] のスロットを計算…
ERC-20 の残高マッピング、NFT の所有者マッピング (uint256 キー)、ネストされたマッピングをカバーしているので、一般的な入力と出力をすばやく比較できます。
選択したツールのソースコード。右側のライブ版と並べて表示されます。
// npm install viem import { keccak256, encodePacked, pad, toHex } from 'viem'; // Calculate storage slot for mapping function getMappingSlot(key: string, slotNumber: number): string { let keyBytes: `0x${string}`; // Handle address (20 bytes) or uint256 (32 bytes) if (key.startsWith('0x')) {