Details about the verification microservice
MICROSERVICE_SC_VERIFIER_ENABLED=true
MICROSERVICE_SC_VERIFIER_URL=...
(verifier endpoint, see http configuration for more details)docker-compose
“
metadata.json
file, so it is parsed and the information retrieved. This includes file and contract names, compiler and evm versions, info about optimizations, contract libraries, abi, and sources.
CreationTxInputs
if there is any encoded metadata.MainPart
and the MetadataPart
.
a. MainPart
consists of consecutive bytes which are not related to the metadata hash (all bytes are the same for both local c_reationTxInputs_). MetadataPart
consists of consecutive bytes related to metadata hash (some bytes differ between local c_reationTxInputs_).MainPart
.
b. If any differences are found, identify it as a hash section of the metadata hash.
c. Iterate back byte by byte to find the beginning of that metadata hash. When we find the beginning we know where that metadata hash starts and ends. All non-categorized bytes before the start are identified as the MainPart
and bytes between the start and end identified as the MetadataPart
. Continue until there are no uncategorized bytes.
d. Once the entire local creationTxInput is categorized, we compare those parts with the corresponding remote creationTxInput bytes. For the MainPart
remote creationTxInput must have exact equivalence. For the MetadataPart
we compare some parts of the metadata (e.g. that encoded solc versions are the same), but in general we do not require them to be equal.