/ 工具
■/ 工具查找器
109 个工具
/ 合约存储槽计算器
/ 所选工具
■合约存储槽计算器 - 免费 Web3 工具
计算 Solidity 智能合约中映射和数组的存储槽
■ 01
什么是存储槽?
在以太坊智能合约中,存储被组织成 32 字节的槽(slot)。每个状态变量占用一个特定的槽,而映射(mapping)则使用根据键和基础槽号计算出的槽。
■ 02
它是如何工作的?
对于映射,存储槽的计算方式为:keccak256(key . slot) 其中 key 是映射的键(填充到 32 字节),slot 是该映射的基础槽号。// 示例:计算 balances[user] 的槽 con……
■ 03
示例场景
涵盖 ERC-20 余额映射、NFT 拥有者映射(uint256 键)和嵌套映射,让你可以快速比较常见的输入与输出。
/ 相关工具
/ 代码
■所选工具的源代码,显示在此处,右侧为实时运行版本。
/ 源代码
TypeScript
typescript
// 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')) {