{"id":25237195,"url":"https://github.com/Recon-Fuzz/call-test-undo","last_synced_at":"2025-10-26T12:30:38.422Z","repository":{"id":237700925,"uuid":"795079101","full_name":"Recon-Fuzz/call-test-undo","owner":"Recon-Fuzz","description":"CallTestAndUndo - a simple abstract contract to help you write invariant tests that do not influence the story","archived":false,"fork":false,"pushed_at":"2024-05-02T14:58:19.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-03T01:39:47.766Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Recon-Fuzz.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-02T14:42:10.000Z","updated_at":"2024-05-03T01:39:59.590Z","dependencies_parsed_at":"2024-05-03T01:39:55.779Z","dependency_job_id":null,"html_url":"https://github.com/Recon-Fuzz/call-test-undo","commit_stats":null,"previous_names":["recon-fuzz/call-test-undo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Recon-Fuzz%2Fcall-test-undo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Recon-Fuzz%2Fcall-test-undo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Recon-Fuzz%2Fcall-test-undo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Recon-Fuzz%2Fcall-test-undo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Recon-Fuzz","download_url":"https://codeload.github.com/Recon-Fuzz/call-test-undo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238320486,"owners_count":19452562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-11T15:33:37.990Z","updated_at":"2025-10-26T12:30:38.090Z","avatar_url":"https://github.com/Recon-Fuzz.png","language":"Solidity","funding_links":[],"categories":["Tooling"],"sub_categories":["Libraries \u0026 Frameworks"],"readme":"# CallTestAndUndo\n\nA simple contract that allows you to perform stateful invariant tests without changing global state\n\n## Use Cases\n\nWhen you're doing tests and don't want to track their side effects into the global state\n\nYou can use this abstract contract to perform the test and then revert all state changes\n\nThis way you can keep the \"Story\" simple while testing complex behavior\n\n## Usage\n\nMake your contract inherit `CallTestAndUndo`\n\nEdit the function you want to test to require it being called by `this`\n\nUse `_doTestAndReturnResult` to call the function (use `encodeCall`)\n\n## Demo\n\nSee `testDemoCal` for a quick demo","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRecon-Fuzz%2Fcall-test-undo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRecon-Fuzz%2Fcall-test-undo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRecon-Fuzz%2Fcall-test-undo/lists"}