Skip to content

feat: JSON + TOML Parsing with Default Fallbacks #7052

Open
@mds1

Description

@mds1

Component

Forge

Describe the feature you would like

Ref #8900:

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 #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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions