import * as State from 'tevm/State';
import * as fs from 'fs/promises';
// Serialize storage to JSON
async function saveStorage(
storage: Map<BrandedStorageKey, bigint>,
filePath: string
): Promise<void> {
const entries = Array(storage.entries()).map(([key, value]) => ({
key: State.StorageKey.toString(key),
value: value.toString()
}));
await fs.writeFile(filePath, JSON.stringify(entries, null, 2));
}
// Example usage
const storage = new Map<BrandedStorageKey, bigint>();
storage.set(State.StorageKey(contractAddr, 0n), 1000n);
storage.set(State.StorageKey(contractAddr, 1n), 2000n);
await saveStorage(storage, './storage.json');
// storage.json:
// [
// {
// "key": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:0",
// "value": "1000"
// },
// {
// "key": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48:1",
// "value": "2000"
// }
// ]