Skip to content

Conversation

0xClandestine
Copy link

@0xClandestine 0xClandestine commented Oct 5, 2025

@0xrusowsky
Copy link
Contributor

@0xClandestine the cheatcodes were merged, so not a blocker for this PR anymore.
Feel free to finish this whenever u have time

@0xClandestine
Copy link
Author

@0xClandestine the cheatcodes were merged, so not a blocker for this PR anymore. Feel free to finish this whenever u have time

Heard, will wrap it up thanks for the reminder.

@0xClandestine 0xClandestine marked this pull request as ready for review October 23, 2025 15:53

import {VmSafe} from "./Vm.sol";

// TODO: Account Fields (CodeHash, Balance, Nonce, StorageRoot).
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to add the --raw flag to cast proof in order to easily parse a tightly packed account proof (otherwise a small bash script is needed).

Example:
cast proof vitalik.eth --flashbots --raw

Current output is json, would expect --raw flag to return bytes memory accountProof and bytes[] memory storageProofs. Though some separation may be nice.

{"address":"0xd8da6bf26964af9d7eed9e03e53415d37aa96045","balance":"0xafa159b955546af","codeHash":"0xd8ef78646344da0ceb69cbcdb306939b3ba0514174fa28b6c6fa189953ff226d","nonce":"0x641","storageHash":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","accountProof":["0xf90211a0cbdb7a2804c1de5c2b8417600e74ef3be008bbab38067f5fe4638a8f490406aea0a044812ea722d0208515f767b45c4f8919e74431ff0dcb38fc392446add78ae7a002587abd7d09555d6356389c90be318e3c0cae5eac2e4d3736241fcb9dfa082ba0121923ab8a729fa586a0e846b3b48bac156c52d3d0137365cb0fadf3acbd78ada003bb533e327165bd2a6a803ccfaaff95290847ff91bd91fc6454aaaa71a1509ea0e3b94e6ef034c2578eecb0f120730dafe7b3e9371b477f892240bbacd8e5d147a0d88cf9c7dc99287998786c5828b2a3263430c5437e5468d69c323bdf6f749539a091274b937f44f25f11cfd80d50a35e2261975473d4cb29583e5df1daa2aa80e6a008fa4a245f8fa8c7332d5397e80650fec54bde250a3e009829c787a475cff583a057a6673a01971605c23d346cfe8cdc8eaf8df569ca86afb9dd8cb3bfca4b24c2a0960cc30d720a35a312ce76afe7a18a0075077ab7bfdb73c41a70ec2e5846133ca086442718bfdf1ed516fb4f18ab8f573835d3aca9693fb2e3039decb858c15294a0e8508bd7f0322736422ec86073464cf1ed36346b5d942b70be214b9c6f356548a07b80c945dada851001c13077cfb56de6585950e130a9bc7b78994bb9b855e51ba016051140d13634f0b8a6e9f7fa19d7fd20940f9bbe0d12886b5241c6ceb0e7a7a021d56f674052eb9349441d98a7fd71e5aa72047b23e915aa9abcd176662935a080","0xf90211a01b45909320a7c199379bd6369bd0559a3c96b4ab522a77d9e5c08b1abf4e7eb0a0c6dc9545af11858894b7dfc534ead2dcd5121357bc552d40d9a27ae3ae7d3256a037aa525303cbc0542305dff5b64cf0f6c96073fea092fe10806bebac42527f9fa083327f3d8c36ca3b197f3508ce4fc310cdccabecf241ed1cf54e758c053dd1f1a08b4ddf2a6446237b8ef1b8a5f33b8111cf87d9714891691dbbda72245d3feba7a04e23fa490184d9b8795b71c45f2c57627dcd812d3e7fff32109cc1ce5f6e7e40a055eb11341d03424998e3863510a43b7678ff168af2e7bab24f6960f280187ffea02cd04c2bdab9d11554e8517ddc0a8cd15b90e77f7123385a32d21db7288e8ae0a0b85ae99e75d27a99eddf4ac4b3afa616221d2bc682fb659425c1c7b8b355b456a02b5edbac02045d4825e0a5187bf0b84d9175b55ada474584e5bdd8085d132203a0abad76b0f6607d3a4ac60f734d834b6609f0b4a6fcdd1468ab865ebc33fc9dfaa03e04d434f77e0f122448eb1a5144eba28b41e4966979bdd64a7826d3d57eb52aa0a80ec56b3bffa32ade3d40736ae69de74b30ed83565b3952cbabb55ecdfc2f5ba0ceeb0bb61a1a1761f9262265c62e4e05f5bb0ba0975c32c452f53a6e04f93e92a0173394de1c48ae8dbd93c1ea1093e4f2b77099e2b5aee7442bcb594c50903a84a0aa920cc387d36f29c4eb6996c955a36ddfca9b01f173528f2641f3868cd4ab8a80","0xf90211a0306c6894fed8294adda43d6ad4c7857ea9a4f01d42696479cbee176a91fca5e7a001a8c9de6703c8949a508ced3b8a3f93601838c700a0f71cb129622601087a9ba004188435bc65053ba893d3ff6a708a68e590046e3824d98e5d1a92be2ac51df9a062d3a0bc4bd5f7df02854ac093df7df8fa34fc5fdf90e658e317cd56aaa2b210a06935778a82b2b3c2ea3467ff48d77a87640c92dd02a9d9527e2d8ee491a6e5c1a015dec949e718eb12e5fd874399b76923f27289d365866cb7b1368a7328218f72a0412020a077205ef449212ef5bbdfdae5e5eeb9f90546f168b4cfd66262efb414a0943ea8eac24e1a12e11b8ff3a7d4ccb0c9bc48510defa120adeb50e01dc66c2fa01913b39eb5799eeeb57cd3eaa29f5fb1dbb4b8cf6c99c4e19b605bce1ff0e065a078aef276974875c256a883450894b9e4298952c5234dc36a4585c65b6ec4ddc8a07eeee7157b39aac0c455e0c4398e60336d327f49925c4323d855a5c2ec816ef7a0ec75681c58b0c01b6f4eb2126553d763e974540f8f78684398b440f590fec138a064d0f134e21d08fe56cc7c9c3fc693f525bb31dc518078cc0d459d9643663325a0962aedb4413b29bd017bbd03df67e60b30453a7e75555f825498ade30cf2ad7da0cda23201a406fbe1a01c728890671630578a51fa26974508a8f12c98e8f19e45a0b6e4ce7c25635171b0e861bc75042fb087b36b80c533e0d659a553e40523011280","0xf90211a0766955f6d0e588d105f14583e6d7d79764f88e7902fd58733345be247ba440bfa0abd15483baed8641696dd30ed560cb983937e65a27158264c5b34a71c92f1c36a0259001f26c7d44a144efd838592d3c63a05ac88e5bfed03baae907a20eda2090a0eb2cc955472155eca3e1f4274f134fed59a8061815b3060b98a1b70ffdf2f0baa068aa7eb400c2ddca050939c08e14d07628cdd9793252164f3d1e23445ab2b690a0c8b3d14a51c13c944ab7a9ca688ed2cdc9789958618f1f7b55e3e976ca5b51b7a0bbe71600e8003081707537947d8945ad09c6471aa7fe4eafacfe502f983fda7ca0c6bab338ccad8f83802de698eba00fddc1af5dd158789ce2128a11f4163c53cca0d31c2f70c538496a4f3c60238fea7d2487eeec6f170253a22c2524efa3d39864a025c6c834bacc62356a15964cd662befdf842182d836b59b08cc58f61089ee536a08073e8c8005e5ec27bdfa1d7f2d6bc56a915f9c11a0f353884d2d33a5ab78cfba02859e52de6b50b0ded27e7d7a70df1a6c8663a4d55973e1f558dd91cbea1fd57a057b187fcbbf56b60d1885585c54bafcc035250d7610d96c0aaeb0291f63b44bda0fa538d25100b6c88f43f9e784e3620cb17baf8183cbe9bad9004b5039233480ba06709d4932ab8f9268e5b7f945824105381e0535db94143bd3004fb1f4e2d1db2a08c8d1fc836b7804bdb26bda87c4564795e9dd2c421c4e9b74b59f98791ddfa6980","0xf90211a0ed3e47666344c6e6bf30a62f4924d690af34b99c5603138e2e7e59b4d6598780a0c742acf5763d7e73d24f8ce3be79fd249e483fc9e7fe146610fef2c7ac2edec8a09f237160e187ec41e000c2f6d3726688439e17c3fcc509ddd9cf53c3dab974afa0924b110ea83b19f6d5889a15f970ead90e2940ec1bad187e49c6c091646d2727a0853e32327dd89d80c9bac5dd1c4c97a500b66bd9497a63a6e4e2bff35054c992a0552f5b2f98903b6d551a83b36906f3382ec0cb9ac67da951398394555b0fcb8ba0c09e818d504148ef87d1b9c04ee6391862997615f4ee6b9ccee01ca3e9d7e57aa0f65dbc4bc9752eaf8ef4ef6a24497844fd86793e33b1cb2b632864db6b914fada0c351c9846a25e9c05a8e3ff0416a8edfc814dd7024b42619618a3ad471ee928fa0ce0a89079d169b0a0869c376bbdf33a74e62b5fd159a99c3b24828a98de3f78aa00c0a6229c3374de48da346313eabb7739856f8018659bb2c5fef7f93e36a5455a0b8ecbf244dc1af4194bcff4e94fd6aec194336311faa780176cac3f57c262d78a056dfd87f190a223b4fe24cbb034ee1fc83c7a4e49359cce43739d5f94f805ff6a0aa9b44ecd0223ef9a470e233955d3f2bab1189b6bdfb830dc2d4f9450166a56ca088a56c4d449deae8e47049ff9d82bcdb3ddd86c90b5574f51bfcd3580138792da0fc8096b8da6ad4e0395d1174c76f866c7480cf2ba8bddf1c8162f8b83d85724580","0xf90211a016b828b34665737d5d19c68d159172c0d655e6d3abd17661b623d94dd69717e9a0c6e4872f22518af6ced381e3688647fd5d6b697f9764454652c72c8f8823b379a019fadc6a14074f091506fb385e7bc71b0655ed8abfc4fdf48166f09193545232a0bc44c3c4cf85f36ecb4d8a3833fe32698970a603bce620bc873062bc59202684a03b108290998e407ae19c3c76905a5fd4369864eed058021454166395c22dfdaca0728a70a86349fcd202801112c3b12cbf9d463146b7477c6d5598d0e8fb11bc77a052f2ac58c3d18528021672d7da3c1d84a8a0d2acdfc2163755872196a4382712a0e769987267ea6ced32db340ad4c050f19ba1cbd57b73f817825a24ce2051d3a7a04774c49c028018b83541d03c8b7a089d0556c82ab7f67e899cdc76cff9bd8810a035db082f436b19f58bd6c08e9a8684b28780411f3e8759d48ba551f6d331a907a0a1a5abed37e33ddac5f5baceb7ca359adacbae2cb45629215c88287cd63092baa0798cb93e60154b59712efc9e7bfee281fe98bbf47d763023a0bfc9bfb5bfb66ba0bb4e30c42052230113266c668d8681c2f98dc03fe4f6bb13676676e39e3d11a0a035f9420fd6d8e65f5808a9ce7f76a1ae8196daccc4180be52479180126034414a0be8db25b78a200e01578f893e1b23ef0d9c006723b290f7c76e266fd5fe6e0d2a0a9bb0c3bc9469560d93a36970f6dbbdda1e0cd463c089f1b0587dbecba0ac34f80","0xf9015180a0b4e251151ceb76bcce749928e74ed1f9a4ea7c3e6adbf8938fecc9deb8b8832880a024b083307e38f2a989d3be587d822c36a22089057cffad0ec159b4183ae46b4aa046640e820afa78cf8f696081f6b9ff0ba4b7574d9b5b62e6d2e1560483dd7ad1a0ff7daffcfa68c12ae52a590c6317440edefc0e2df4b58c1f64c45dfc10bc5f57a095cfae180f39b2ccc507348a4ebf3d7f38bfd789ad103e6c053f4de0debfe09ba01bb319c641298631cc8b761b822c79f3e7faecd8a44b9757a7fed1d36bcbf45280a0719325223ec4156993e85c24c5e4f3b2c9ab92d2ec2ef4fa193b1e6b89a7e1ed8080a06f641f5bce95f871ea1a8777a69678bafe5629a44a5f0ffe89e56f4e6acf1873a089e444bd8ac255f3e38f7475cffff80c3d3892963416d2d7dcd9e9231339400e80a05dfc3a0fc6cf77a77df1f81deab009889690fd7f3acc5fe5f5f28fcba4907a4480","0xf8518080a0c17ff6d47e5bd7853dc8f367acb78ed35441acc223b13f93e648e8c24fb7ecc7808080808080a0550a2773f169ae53acf443a62e00b73865abb5bceb6729df4012b9b9370eac3080808080808080","0xf8709d20c3547c60ee47f712d32e5acf38b35d1cc62e23b055a69bb88284c281b850f84e820641880afa159b955546afa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0d8ef78646344da0ceb69cbcdb306939b3ba0514174fa28b6c6fa189953ff226d"],"storageProof":[]}

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side note: addr, balance, codeHash, and nonce all can be parsed from accountProof via fromRLP

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants