{"id":16319179,"url":"https://github.com/controlcpluscontrolv/jade","last_synced_at":"2025-10-05T05:11:32.987Z","repository":{"id":161020125,"uuid":"629092600","full_name":"ControlCplusControlV/Jade","owner":"ControlCplusControlV","description":"Vyper Mutation Testing Framework","archived":false,"fork":false,"pushed_at":"2023-05-03T13:22:29.000Z","size":32,"stargazers_count":17,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T09:36:33.706Z","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-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ControlCplusControlV.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":"2023-04-17T15:48:19.000Z","updated_at":"2023-06-06T00:41:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"49b0ccd1-cbe9-42ae-9b3c-7144be90c9ee","html_url":"https://github.com/ControlCplusControlV/Jade","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ControlCplusControlV/Jade","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ControlCplusControlV%2FJade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ControlCplusControlV%2FJade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ControlCplusControlV%2FJade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ControlCplusControlV%2FJade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ControlCplusControlV","download_url":"https://codeload.github.com/ControlCplusControlV/Jade/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ControlCplusControlV%2FJade/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278411261,"owners_count":25982368,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-10-10T22:26:05.691Z","updated_at":"2025-10-05T05:11:32.972Z","avatar_url":"https://github.com/ControlCplusControlV.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐉💎🟢 Jade 🐉💎🟢\n\nA Vyper Mutation Testing Framework\n\nJade uses mutation testing, which injects modifications into your code, then re-runs your test suite. The goal is to ensure your tests fail when breaking changes are made to your code, and if not the mutation test will fail.\n\nCurrently Vyper is written in such a way where Mutations are manually added, but the goal is to eventually support Vyper AST crawling to auto-inject mutations during testing.\n\n## Guide\n\n- [ ] - Support package publishing, and running as a binary\n\nTo run the demo\n```\ncd Foundry-Vyper\npython3 ../src/cli.py --path ./vyper_contracts\n```\n\nand it will run a mutation test on a simplestore contract. \n\n## Usage\n\nInsert mutations tests into your Vyper contract by adding\n\n```\n# @Jade:\u003cMUTATION\u003e\n```\n\nSo for example, to add a BINARY_OP mutation, simply add\n```\n    # @Jade:BINARY_OP\n    variable = 5 + 5\n```\n\n## Progess\n\nSupported \n- [x] - BINARY_OP\n- [x] - UNARY_OP\n- [x] - REQUIRE (Assert in this case)\n- [ ] - ASSIGNMENT\n- [ ] - DELETE_EXPRESSION\n- [ ] - FUNCTION_CALL\n- [x] - IF_STATEMENT\n- [ ] - SWAP_ARGUMENTS_FUNCTION\n- [ ] - SWAP_ARGUMENTS_OPERATOR\n- [x] - SWAP_LINES\n- [ ] - ELIM_DELEGATE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontrolcpluscontrolv%2Fjade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontrolcpluscontrolv%2Fjade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontrolcpluscontrolv%2Fjade/lists"}