매일 손이 가는 개발자 도구를 한곳에.
변환기, 포맷터, 해시, 검증기, 그리고 계속 다시 열게 되는 작은 유틸리티들이 여러 탭에 흩어지지 않고 한자리에 모여 있습니다.
Solidity 스마트 컨트랙트의 매핑과 배열에 대한 스토리지 슬롯을 계산합니다
이더리움 스마트 컨트랙트에서 스토리지는 32바이트 슬롯으로 구성됩니다. 각 상태 변수는 특정 슬롯을 차지하며, 매핑(mapping)은 키와 기준 슬롯 번호를 바탕으로 계산된 슬롯을 사용합니다.
매핑의 경우 스토리지 슬롯은 다음과 같이 계산됩니다: 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')) {