Console.log functionality for debugging huff contracts #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.