Skip to content

Comments

feat: improve tronbox compile & add jsoninput file output#321

Open
simbadMarino wants to merge 3 commits intotronprotocol:masterfrom
simbadMarino:solcjsoninput
Open

feat: improve tronbox compile & add jsoninput file output#321
simbadMarino wants to merge 3 commits intotronprotocol:masterfrom
simbadMarino:solcjsoninput

Conversation

@simbadMarino
Copy link

Summary
This PR enables tronbox to generate a standard solcjsoninput file for contract verification and debugging purposes.

The goal is to align TronBox with modern Solidity tooling (Hardhat / Foundry style architecture), improve reproducibility, and ensure explorer-grade verification compatibility.

Motivation:
Modern smart contract verification solutions rely on solcjson input files instead of flatten contracts which is proven to be cumbersome, moreover, aligning the solidity compiler settings with latest supported version makes tronbox future proof.

Changes:

  • Automated md5 hashed-named solcjsoninput file generation on root/build-info folder after compilation succeeds

  • Update Solidity compiler input/output to match v0.8.25:

    • Remove legacyAST
    • Add metadata, methodIdentifiers, userdoc, devdoc, storageLayout
  • Make paths relative for reproducible builds

  • Add per-contract compilation capability to produce single JSON inputs

  • Update contractSchema to include metadata and drop legacyAST

  • Prepares for future verification, debugging, and automation features

  • Matches latest Solidity documentation:
    https://docs.soliditylang.org/en/v0.8.25/using-the-compiler.html

    Improved test coverage for :

  • Compiling separate contracts (compile command upgrade)

  • Deploying contracts based on new artifact schema

  • Updated compiler outputSelection format

- Update Solidity compiler input/output to match v0.8.25:
  - Remove legacyAST
  - Add metadata, methodIdentifiers, userdoc, devdoc, storageLayout
- Make paths relative for reproducible builds
- Add per-contract compilation capability to produce single JSON inputs
- Update contractSchema to include metadata and drop legacyAST
- Prepares for future verification, debugging, and automation features
- Matches latest Solidity documentation:
  https://docs.soliditylang.org/en/v0.8.25/using-the-compiler.html
Improved test coverage for :
- Compiling separate contracts (compile command upgrade)
- Deploying contracts based on new artifact schema
- Updated compiler outputSelection format
- include compile instructions for specific contracts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant