跳到正文
← 使用教程

Sourcify 显示已验证:核对链、地址与两类字节码匹配

链小知 · 进阶 · 核验 · 依官方文档整理

从本人已保存的V2响应检查地址、字段选择及creation/runtime匹配,区分验证记录、缺项和服务错误。

开始前准备

  • 准备有权查看的已保存响应、请求路径/fields、HTTP状态、采集时间及原链/合约地址;不重新请求样本或提交验证。
  • 正文按当前V2 2.1.0方法规范;旧V1及浏览器截图不足以推定当前结果。

1. 确认这是V2查询记录而非验证工单

对照保存的入口:GET /v2/contract/{chainId}/{address}查合约记录,repo.sourcify.dev/{chainId}/{address}是UI。POST /v2/verify/{chainId}/{address}的verificationId只是工单身份,不能拿它充当contract match。

官方当前正文称V1已于2026年7月7日关闭;旧full_match/partial_match术语或旧接口存档标明版本。4byte服务的签名查询不是该合约源码验证回执。

检查结果:记录有产品入口、版本、方法与原采集时间,未把提交受理当验证完成。

2. 先配对chainId和20字节合约地址

V2规范chainId为十进制字符串,address为0x加40个十六进制字符且大小写不敏感。对照原请求与响应的chainId/address,两者都一致后才谈match;同地址跨链不是同一合约实例。

支持链正文的动态表未在本次文档读取中展开,不能由文中Ethereum等例子保证任意链当前有支持。非法参数或unsupported_chain与合约未验证分开,不把别的链记录拼接到本链。

检查结果:请求、响应与目标链/地址配对,链支持或输入缺口明确。

3. 把总match与creation/runtime逐列保存

保存match、creationMatch、runtimeMatch原值,取值可能exact_match、match或null。规范最小示例允许overall exact_match、creation exact_match而runtime只是match,不能用绿色总标签证明两类字节码都exact。

exact_match对应旧perfect,match对应旧partial;后者仍是验证匹配,不是只核一部分源码。缺字段、显式null和不认识的新值分列,不根据总体状态补齐另外两列。

检查结果:两类匹配各有原值或缺证,总标签没有替代逐类判断。

4. 按字段选择解释metadata或sources缺失

默认响应只给最小验证信息。核原fields/omit:fields可选metadata,sources,compilation等,omit排除字段,二者不能同时使用;缺sources可能只是未请求,并不等空源码或验证失败。

sources[path].content是文件正文,metadata.sources是源码身份/哈希等编译信息,不是同一字段。规范要求只选需要的字段,fields=all代价高且不能拿来批量爬取;已有存档足够时复用,不为核对表发新请求。

检查结果:列出哪些字段确实取得、哪些被选择范围排除,缺项未补成空对象。

5. 区分404未验证与限流/服务器失败

保存HTTP与正文。当前lookup规范404例子三项match均null,含义是未在Sourcify验证;它不能证明该地址没有链上code或资金。400保留customCode/message/errorId定位输入或链问题。

429与500属于读取失败,不能改写成match=null或未验证;规范对429/5xx要求退避并遵循Retry-After。没有HTTP或正文时保留未取得,不把文档例子当真实响应。

检查结果:未验证、参数失败、限流、服务错误与缺回执分别有依据。

6. 限定匹配结论和代理范围

结论写成该chain/address在存档时间的creation/runtime匹配及字段范围。exact_match可对library/immutable差异作专门转换,并不证明逻辑安全、权限配置或未来升级行为。

若原记录选择了proxyResolution,isProxy=false与proxyResolutionError不同;错误不能填false。implementations中的地址也不自动代表该implementation已验证或已审计,保留对应链和独立证据缺口。

检查结果:输出有限验证状态表,安全、当前状态和代理implementation未验范围明确。

怎样确认完成

  • 形成chain/address、版本、时间、HTTP、字段范围及creation/runtime匹配对照。
  • 没有业务API调用或验证上传;documentation仅说明如何解读已有记录。

常见错误与边界

  • verificationId是提交工单,不是验证成功;总体exact_match不保证两类字节码同级。
  • 未请求sources、HTTP404、429或500不是同一种缺失。
  • 同地址跨链、代理壳与implementation均不能合并成一份安全证明。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据