foundry icon indicating copy to clipboard operation
foundry copied to clipboard

feat: JSON Parsing with Default Fallbacks

Open mds1 opened this issue 1 year ago • 0 comments

Component

Forge

Describe the feature you would like

Ref https://github.com/foundry-rs/forge-std/issues/508:

It would be really convenient to be able to set default values in the JSON parsing helpers with a third argument that return the default value when the key is not present in the passed in JSON string.

An example:

readBytes32(string memory json, string memory key, bytes32 default);

This would be similar to the UX of vm.envOr which reads an env var and then returns the default value if it doesn't exist. I am not particular about using overloading or following the Or suffix naming scheme. This would prevent parsing errors for when keys are not present in the JSON. I think it could be implemented by wrapping the low level vm JSON calls with try/catch

To facilitate https://github.com/foundry-rs/foundry/issues/3782, we'll first add these overloads as native cheats first, then updating StdJson.sol in forge-std to have the appropriate read* wrapper methods

cc @tynes

Additional context

No response

mds1 avatar Feb 08 '24 20:02 mds1