Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions batch_slot_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,29 @@ def main():
tip = w3.eth.block_number
print(f"🌐 Connected (chainId={chain_id}, tip={tip})")

reader = csv.DictReader(open(inp, newline=""))
required = {"address","slot","block_a","block_b"}
if not required.issubset(reader.fieldnames or set()): print(f"❌ CSV must contain: {sorted(required)}"); sys.exit(2)
fieldnames = ["address","slot","block_a","block_b","value_a","value_b","leaf_a","leaf_b","pair_root","changed"]
required = {"address", "slot", "block_a", "block_b"}
fieldnames = [
"address",
"slot",
"block_a",
"block_b",
"value_a",
"value_b",
"leaf_a",
"leaf_b",
"pair_root",
"changed",
]
writer = csv.DictWriter(sys.stdout, fieldnames=fieldnames)
writer.writeheader()

for row in reader:
with open(inp, newline="") as f:
reader = csv.DictReader(f)
if not required.issubset(reader.fieldnames or set()):
print(f"❌ CSV must contain: {sorted(required)}", file=sys.stderr)
sys.exit(2)

for row in reader:
try:
address = checksum(row["address"].strip())
if not Web3.is_address(address): print(f"❌ Invalid address: {row['address']}"); continue
Expand Down