crytic-compile

Abstraction layer for smart contract build systems

https://github.com/crytic/crytic-compile

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary

Keywords from Contributors

solidity vulnerability-detection static-analysis vyper symbolic-execution academic-papers conference-presentations security-reviews emulation z3
Last synced: 10 months ago · JSON representation

Repository

Abstraction layer for smart contract build systems

Basic Info
  • Host: GitHub
  • Owner: crytic
  • License: agpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.31 MB
Statistics
  • Stars: 181
  • Watchers: 2
  • Forks: 88
  • Open Issues: 115
  • Releases: 30
Created over 7 years ago · Last pushed 11 months ago
Metadata Files
Readme Contributing License Codeowners

README.md

Crytic-compile

Build Status Slack Status PyPI version

Library to help smart contract compilation. It includes support for: - Direct solc compilation - Foundry - Hardhat - Brownie - Buidler - Dapp - Embark - Etherlime - Etherscan (including several alt-chain explorers and testnets) - Truffle - Waffle

To force compilation with a specific framework, use the --compile-force-framework flag. For example, to force compilation with Hardhat:

shell crytic-compile . --compile-force-framework hardhat

See the Configuration documentation for advanced usages.

The plugin is used in Trail of Bits tools, including: - Slither - Echidna - Manticore - evm-cfg-builder

Installation

shell pip3 install crytic-compile

Usage

In the root directory of your project e.g. same directory as hardhat.config.js or foundry.toml, run:

shell crytic-compile .

Crytic-compile will generate crytic-export/contracts.json containing the AST/ABI and bytecodes of the contracts.

Run crytic-compile --help for more options.

Library Linking

If your project uses 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:

shell crytic-compile . --compile-libraries "(SafeMath, 0xff)"

If you are fuzzing with Echidna or Medusa, follow this tutorial on linking libraries.

As a library

See the library documentation.

Owner

  • Name: Crytic
  • Login: crytic
  • Kind: organization
  • Email: opensource@trailofbits.com
  • Location: New York, NY

Blockchain Security, by @trailofbits

GitHub Events

Total
  • Create event: 50
  • Release event: 3
  • Issues event: 7
  • Watch event: 27
  • Delete event: 38
  • Member event: 3
  • Issue comment event: 44
  • Push event: 58
  • Pull request review comment event: 2
  • Pull request review event: 14
  • Pull request event: 54
  • Fork event: 8
Last Year
  • Create event: 50
  • Release event: 3
  • Issues event: 7
  • Watch event: 27
  • Delete event: 38
  • Member event: 3
  • Issue comment event: 44
  • Push event: 58
  • Pull request review comment event: 2
  • Pull request review event: 14
  • Pull request event: 54
  • Fork event: 8

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 627
  • Total Committers: 49
  • Avg Commits per committer: 12.796
  • Development Distribution Score (DDS): 0.514
Past Year
  • Commits: 14
  • Committers: 5
  • Avg Commits per committer: 2.8
  • Development Distribution Score (DDS): 0.643
Top Committers
Name Email Commits
Josselin j****n@t****m 305
alpharush 0****h@p****m 76
Emilio López e****z@t****m 60
dependabot[bot] 4****] 32
David Pokora d****a@g****m 22
bohendo b****o@p****e 18
Simone s****a@t****m 18
rmi7 u****r@r****e 16
Gustavo Grieco 3****b 7
Murray, Cory M (CGI Federal) c****y@c****m 6
Sam Alws s****s@t****m 5
shortdoom o****i@g****m 4
bohendo b****o@s****m 3
Audit Wizard 8****c 3
garythung g****g@g****m 3
Usmann Khan u****n@u****m 3
Sheldon Holmgren s****n@p****e 3
Paul Kehrer p****r@g****m 3
Khang Vo (doublevkay) 4****v 3
Nat Chin n****n@t****m 2
Alexander Remie r****7 2
Artur Cygan a****n@g****m 2
Francesco Bertolaccini f****i@t****m 2
Gronw D g****d@o****m 2
damilola edwards d****s@g****m 2
samczsun g****b@s****m 2
zhiqiangxu 6****0@q****m 1
wakiyamap w****p@g****m 1
vikramarun 3****n 1
technovision99 2****9 1
and 19 more...

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 98
  • Total pull requests: 213
  • Average time to close issues: 8 months
  • Average time to close pull requests: 24 days
  • Total issue authors: 45
  • Total pull request authors: 36
  • Average comments per issue: 2.04
  • Average comments per pull request: 0.72
  • Merged pull requests: 161
  • Bot issues: 0
  • Bot pull requests: 55
Past Year
  • Issues: 8
  • Pull requests: 50
  • Average time to close issues: about 5 hours
  • Average time to close pull requests: 8 days
  • Issue authors: 8
  • Pull request authors: 9
  • Average comments per issue: 2.75
  • Average comments per pull request: 0.36
  • Merged pull requests: 35
  • Bot issues: 0
  • Bot pull requests: 16
Top Authors
Issue Authors
  • 0xalpharush (24)
  • montyly (21)
  • Xenomega (2)
  • anishnaik (2)
  • hellwolf (2)
  • vovikhangcdv (2)
  • tunabaka (2)
  • 0xKarl98 (2)
  • elopez (2)
  • rmi7 (2)
  • wangzhecodingfy (2)
  • wk0 (1)
  • PatoSF (1)
  • Jovonni (1)
  • dependabot[bot] (1)
Pull Request Authors
  • dependabot[bot] (67)
  • 0xalpharush (60)
  • elopez (26)
  • smonicas (19)
  • montyly (17)
  • samalws-tob (7)
  • anishnaik (5)
  • bohendo (3)
  • vovikhangcdv (3)
  • garythung (2)
  • wakiyamap (2)
  • LEAFERx (2)
  • frabert (2)
  • shortdoom (2)
  • Wharpheus (2)
Top Labels
Issue Labels
bug (12) enhancement (9) high-priority (9) good first issue (6) bug-candidate (4) help wanted (2) documentation (1) Framework integration (1) dependencies (1)
Pull Request Labels
dependencies (67) github_actions (7) high-priority (1)

Packages

  • Total packages: 5
  • Total downloads:
    • pypi 147,894 last-month
    • homebrew 240 last-month
  • Total docker downloads: 214
  • Total dependent packages: 10
    (may contain duplicates)
  • Total dependent repositories: 85
    (may contain duplicates)
  • Total versions: 47
  • Total maintainers: 6
pypi.org: crytic-compile

Util to facilitate smart contracts compilation.

  • Versions: 30
  • Dependent Packages: 7
  • Dependent Repositories: 85
  • Downloads: 147,886 Last month
  • Docker Downloads: 214
Rankings
Downloads: 0.9%
Dependent packages count: 1.4%
Dependent repos count: 1.6%
Average: 3.1%
Docker downloads count: 3.5%
Forks count: 5.0%
Stargazers count: 6.2%
Last synced: 11 months ago
proxy.golang.org: github.com/crytic/crytic-compile
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 11 months ago
pypi.org: crytic-compile-master

Util to facilitate smart contracts compilation.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 8 Last month
Rankings
Forks count: 5.5%
Dependent packages count: 6.6%
Stargazers count: 6.7%
Average: 18.4%
Dependent repos count: 30.6%
Downloads: 42.3%
Maintainers (1)
Last synced: 11 months ago
formulae.brew.sh: crytic-compile

Abstraction layer for smart contract build systems

  • Versions: 13
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 240 Last month
Rankings
Dependent packages count: 7.7%
Forks count: 22.2%
Stargazers count: 32.7%
Average: 34.3%
Dependent repos count: 50.7%
Downloads: 58.3%
Last synced: 11 months ago
pypi.org: crytic-compilers

Util to facilitate smart contracts compilation.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 9.5%
Average: 35.9%
Dependent repos count: 62.4%
Maintainers (1)
Last synced: over 1 year ago

Dependencies

tests/hardhat/package.json npm
  • @nomiclabs/hardhat-ethers ^2.0.0 development
  • @nomiclabs/hardhat-waffle ^2.0.0 development
  • chai ^4.2.0 development
  • ethereum-waffle ^3.2.0 development
  • ethers ^5.0.19 development
  • hardhat ^2.0.2 development
tests/hardhat-multi-file/package.json npm
  • @nomiclabs/hardhat-ethers ^2.0.0 development
  • @nomiclabs/hardhat-waffle ^2.0.0 development
  • chai ^4.2.0 development
  • ethereum-waffle ^3.2.0 development
  • ethers ^5.0.19 development
  • hardhat ^2.0.2 development
tests/monorepo/contracts/package.json npm
  • @nomiclabs/hardhat-ethers ^2.0.0 development
  • @nomiclabs/hardhat-waffle ^2.0.0 development
  • chai ^4.2.0 development
  • ethereum-waffle ^3.2.0 development
  • ethers ^5.0.19 development
  • hardhat ^2.0.2 development
tests/monorepo/package.json npm
pyproject.toml pypi
setup.py pypi
  • pycryptodome >=3.4.6
.github/workflows/black.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • github/super-linter/slim v4.9.2 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4 composite
  • cachix/cachix-action v12 composite
  • cachix/install-nix-action v20 composite
  • foundry-rs/foundry-toolchain v1 composite
.github/workflows/darglint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/doc.yml actions
  • actions/checkout v3 composite
  • actions/configure-pages v3 composite
  • actions/deploy-pages v2 composite
  • actions/setup-python v4 composite
  • actions/upload-pages-artifact v2 composite
.github/workflows/etherscan.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/linter.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • github/super-linter/slim v4.9.2 composite
.github/workflows/mypy.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • github/super-linter/slim v4.9.2 composite
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • pypa/gh-action-pypi-publish v1.8.8 composite
  • sigstore/gh-action-sigstore-python v2.0.0 composite
.github/workflows/pylint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • github/super-linter/slim v4.9.2 composite
.github/workflows/pytest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite