You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While rethinking the verification flow we should keep in mind the following features:
Multiple languages support: we recently added Vyper support. The new verification flow should abstract away the language of the contract
Not focused on metadata: we need a “std-json based” verification. Metadata should be an opt-in feature, not the foundation of the verification flow. We should also consider support for alternatives such as Vyper's integrity field.
Compiler package: we already extracted the compilers code from lib-sourcify. But we are not shipping the compiler code in any package. We need to maintain a new package @ethereum-sourcify/compilation.
APIV2: it is important to keep in mind all the new fields needed by APIV2. Also, the new verification flow will be executed in an async environment by the server, but it will probably doesn't affect much the architecture of the new verification.
@kuzdogan is currently suggesting the following new structure:
1. Validation step
📋MetadataContract object
previously CheckedContract and validate.ts
Does the validation, source fetching, preparing the compilation with the metadata.json, tryToFindPerfectMetadata()
input:
metadata.json
sources
creates:
⚙️Compilation object
MetadataValidation
IntegrityValidation
2. Compilation step
⚙️Compilation object:
input:
std-json
ISolidityCompiler / IVyperCompiler
contract identifier (for the output)
compile()
output:
creationBytecode
runtimeBytecode
metadata
other compilation artifacts
compilation metadata: duration, hardware?
SolidityCompilation
VyperCompilation
3. Verification step
✔Verification object
input:
SourcifyChain / chainId
address
⚙️Compilation
output:
match status
transformations
⚙️Compilation properties
Other things like findAuxdataPositions
The content you are editing has changed. Please copy your edits and refresh the page.
While rethinking the verification flow we should keep in mind the following features:
integrity
field.lib-sourcify
. But we are not shipping the compiler code in any package. We need to maintain a new package@ethereum-sourcify/compilation
.@kuzdogan is currently suggesting the following new structure:
1. Validation step
📋MetadataContract
objectvalidate.ts
⚙️Compilation
objectMetadataValidation
IntegrityValidation
2. Compilation step
⚙️Compilation
object:ISolidityCompiler
/IVyperCompiler
compile()
SolidityCompilation
VyperCompilation
3. Verification step
✔Verification
objectSourcifyChain
/ chainId⚙️Compilation
⚙️Compilation
propertiesfindAuxdataPositions
Tasks
useCompiler
#1348The text was updated successfully, but these errors were encountered: