{"id":19830734,"url":"https://github.com/crytic/crytic-compile","last_synced_at":"2025-05-15T01:08:00.160Z","repository":{"id":37493343,"uuid":"180202668","full_name":"crytic/crytic-compile","owner":"crytic","description":"Abstraction layer for smart contract build systems","archived":false,"fork":false,"pushed_at":"2025-05-02T17:11:03.000Z","size":1305,"stargazers_count":171,"open_issues_count":112,"forks_count":83,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-07T23:35:38.015Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crytic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-08T17:48:03.000Z","updated_at":"2025-05-02T16:19:13.000Z","dependencies_parsed_at":"2023-12-29T23:01:17.462Z","dependency_job_id":"72c38b17-65cc-4522-8c35-aff9f0cfa97e","html_url":"https://github.com/crytic/crytic-compile","commit_stats":{"total_commits":560,"total_committers":49,"mean_commits":"11.428571428571429","dds":0.5392857142857144,"last_synced_commit":"3a4b0de72ad418b60b9ef8c38d7de31ed39e3898"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fcrytic-compile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fcrytic-compile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fcrytic-compile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crytic%2Fcrytic-compile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crytic","download_url":"https://codeload.github.com/crytic/crytic-compile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254042,"owners_count":22039792,"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":"2024-11-12T11:25:05.887Z","updated_at":"2025-05-15T01:07:55.145Z","avatar_url":"https://github.com/crytic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crytic-compile\n[![Build Status](https://img.shields.io/github/actions/workflow/status/crytic/crytic-compile/ci.yml?branch=master)](https://github.com/crytic/crytic-compile/actions?query=workflow%3ACI)\n[![Slack Status](https://slack.empirehacking.nyc/badge.svg)](https://slack.empirehacking.nyc)\n[![PyPI version](https://badge.fury.io/py/crytic-compile.svg)](https://badge.fury.io/py/crytic-compile)\n\nLibrary to help smart contract compilation. It includes support for:\n- Direct solc compilation\n- [Foundry](https://github.com/foundry-rs/foundry/)\n- [Hardhat](https://github.com/nomiclabs/hardhat)\n- [Brownie](https://github.com/iamdefinitelyahuman/brownie)\n- [Buidler](https://github.com/nomiclabs/buidler)\n- [Dapp](https://dapp.tools/dapp/)\n- [Embark](https://embark.status.im/)\n- [Etherlime](https://github.com/LimeChain/etherlime)\n- [Etherscan](https://etherscan.io/) (including several alt-chain explorers and testnets)\n- [Truffle](https://truffleframework.com/)\n- [Waffle](https://github.com/EthWorks/Waffle)\n\nTo force compilation with a specific framework, use the `--compile-force-framework` flag. For example, to force compilation with Hardhat:\n\n```shell\ncrytic-compile . --compile-force-framework hardhat\n```\n\nSee the [Configuration](https://github.com/crytic/crytic-compile/wiki/Configuration) documentation for advanced usages.\n\nThe plugin is used in Trail of Bits tools, including:\n- [Slither](https://github.com/crytic/slither)\n- [Echidna](https://github.com/crytic/echidna)\n- [Manticore](https://github.com/trailofbits/manticore/)\n- [evm-cfg-builder](https://github.com/crytic/evm_cfg_builder)\n\n\n## Installation\n\n```shell\npip3 install crytic-compile\n```\n\n## Usage\n\nIn the root directory of your project e.g. same directory as `hardhat.config.js` or `foundry.toml`, run:\n\n```shell\ncrytic-compile .\n```\n\nCrytic-compile will generate `crytic-export/contracts.json` containing the AST/ABI and bytecodes of the contracts.\n\nRun `crytic-compile --help` for more options.\n\n## Library Linking\n\nIf your project uses [libraries](https://docs.soliditylang.org/en/latest/contracts.html#libraries) with external functions, they can be linked to their deployed address with the `--compile-libraries` flag. For example, if you have a library `SafeMath` deployed at `0xff`, you can link it with:\n\n\n```shell\ncrytic-compile . --compile-libraries \"(SafeMath, 0xff)\"\n```\n\nIf you are fuzzing with Echidna or Medusa, follow this [tutorial on linking libraries](https://secure-contracts.com/program-analysis/echidna/advanced/working-with-libraries.html?highlight=library#linking-libraries).\n\n### As a library\n\nSee the [library documentation](https://github.com/crytic/crytic-compile/wiki/Library-Documentation).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrytic%2Fcrytic-compile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrytic%2Fcrytic-compile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrytic%2Fcrytic-compile/lists"}