foundry-huff icon indicating copy to clipboard operation
foundry-huff copied to clipboard

Console.log functionality for debugging huff contracts

Open AmadiMichael opened this issue 2 years ago • 0 comments

Console.log functionalities for Huff contracts

Console.huff lets devs visualize the state of the stack, memory and calldata at any point while huffing simply by specifying what they wish to visualize all using foundry's native console logging functionality under the hood.

Huffors can

  • log out the stack (up to 16 items deep) as bytes32 values (similar to evm.codes)

  • log individual stack items as any variable type (uint256, int256, address, bool, bytes32)

  • log out an area of memory or calldata as bytes(dynamic) or as a string.

  • (experimental): log out an area in memory as a string and with styling (using foundry's new log styling feature)

src/test/contracts/HuffConsoleWrapper.huff has examples on how it can be used.

Run forge test -vvv to see how it displays.

AmadiMichael avatar Mar 05 '23 18:03 AmadiMichael