{"id":19864394,"url":"https://github.com/balmy-protocol/call-simulation","last_synced_at":"2025-07-28T01:34:38.408Z","repository":{"id":185132469,"uuid":"672998407","full_name":"Balmy-protocol/call-simulation","owner":"Balmy-protocol","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T20:33:57.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T21:25:18.032Z","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/Balmy-protocol.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-07-31T16:26:37.000Z","updated_at":"2025-04-09T20:34:00.000Z","dependencies_parsed_at":"2024-05-07T19:49:54.032Z","dependency_job_id":null,"html_url":"https://github.com/Balmy-protocol/call-simulation","commit_stats":null,"previous_names":["mean-finance/call-simulation","balmy-protocol/call-simulation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Balmy-protocol/call-simulation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balmy-protocol%2Fcall-simulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balmy-protocol%2Fcall-simulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balmy-protocol%2Fcall-simulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balmy-protocol%2Fcall-simulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Balmy-protocol","download_url":"https://codeload.github.com/Balmy-protocol/call-simulation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Balmy-protocol%2Fcall-simulation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267451116,"owners_count":24089293,"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-07-27T02:00:11.917Z","response_time":82,"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-11-12T15:18:32.313Z","updated_at":"2025-07-28T01:34:38.357Z","avatar_url":"https://github.com/Balmy-protocol.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Call Simulation\n\nIt's fairly common to try to predict what a transaction might return, or how it would affect other contracts. There are\nmany ways to do so, ranging from complex solutions like Tenderly or Alchemy, to simple static calls. One popular way is\nthrough the use of Multicall, which allows to group many different calls into one, therefore avoiding being rate limited\nby RPCs.\n\nHowever, there is one area where Multicall might not be the best solution. For example, if you tried to simulate\nmultiple swap transactions to figure out which one would yield better results, a Multicall won't work. Since the first\ncall would modify the storage and transfer tokens between accounts, it could happen than all other quotes would fail.\nHowever, it would be interesting to be able to simulate these quotes without actually affecting the state.\n\nAnd that's where this repository comes into place. The idea is to give existing contracts the ability to simulate calls\nin a stateless way, so that they can be run independently from each other. Also, it provides the ability to simulate\nthese calls similarly to a Multicall, so as to avoid issues with RPC rate limiting.\n\n## Usage\n\nThis is a list of the most frequently needed commands.\n\n### Build\n\nBuild the contracts:\n\n```sh\n$ forge build\n```\n\n### Clean\n\nDelete the build artifacts and cache directories:\n\n```sh\n$ forge clean\n```\n\n### Compile\n\nCompile the contracts:\n\n```sh\n$ forge build\n```\n\n### Coverage\n\nGet a test coverage report:\n\n```sh\n$ forge coverage\n```\n\n### Format\n\nFormat the contracts:\n\n```sh\n$ forge fmt\n```\n\n### Gas Usage\n\nGet a gas report:\n\n```sh\n$ forge test --gas-report\n```\n\n### Lint\n\nLint the contracts:\n\n```sh\n$ pnpm lint\n```\n\n### Test\n\nRun the tests:\n\n```sh\n$ forge test\n```\n\n## License\n\nThis project is licensed under GLP 3.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalmy-protocol%2Fcall-simulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbalmy-protocol%2Fcall-simulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalmy-protocol%2Fcall-simulation/lists"}