ApeWorX / ape

The smart contract development tool for Pythonistas, Data Scientists, and Security Professionals
https://apeworx.io
Apache License 2.0
887 stars 131 forks source link

Compiler Information field not stored in package manifest #792

Closed sabotagebeats closed 2 years ago

sabotagebeats commented 2 years ago

Elevator pitch:

Add compiler settings and version information to manifest for publishing use cases

Value:

Publishing a manifest, publishing files from a project (e.g. Etherscan verification)

Dependencies:

Contract manifest requires compiler to be filled in to be more useful and for contract verification https://github.com/ApeWorX/ape/issues/81

Design approach:

EIP-2678 defines an array of CompilerInformation objects that are referenced by Source objects within the same manifest. These objects are used to determine which compiler types, versions, and settings that should be used to compile the (sub-)set of sources for a given manifest.

Using EIP-2678 (or adapting for our needs via #794), add support for obtaining the information for this field in ProjectManager and CompilerAPI so that we have it for later use. The current structure may be inadequate for our purposes, requiring a breaking change to ethpm-types that should be targeted for v0.3.0 if possible.

Task list:

Estimated completion date:

TBD

Design review:

Do not signoff unless:

(Please leave a comment to sign off)

fubuloubu commented 2 years ago

p.s. next time use Work Item issue template for this kind of thing

sabotagebeats commented 2 years ago

dependency for vyper: https://github.com/ApeWorX/ape/issues/850

sabotagebeats commented 2 years ago

in progress: blocked by issue #850

antazoey commented 2 years ago

in progress: blocked by issue #850

See latest comment! Not necessarily blocked.

Also - let's get Solidity out the door since it is in-progress and then return to vyper

[status update from retro]

sabotagebeats commented 2 years ago

In progress. Needs refactor to place data correctly.

sabotagebeats commented 2 years ago

requires tests to be merged.