Files
PolyWeather/docs/payments/POLYGONSCAN_VERIFY.md
T
2026-05-28 20:46:35 +08:00

2.2 KiB
Raw Blame History

PolyWeatherCheckout PolygonScan 验证(v1.8.1

最后更新:2026-03-20

1. 目标

对生产收款合约完成源码验证,降低钱包风控误报并提升用户信任。

当前说明:

  • 现网合约仍为 V1contracts/PolyWeatherCheckout.sol
  • V2 只是升级草案contracts/PolyWeatherCheckoutV2.sol
  • 当前 PolygonScan 验证流程默认针对 V1

2. 当前部署参数(示例)

  • 链:Polygon MainnetchainId=137
  • 合约:PolyWeatherCheckout
  • 编译器:v0.8.24+commit.e11b9ed9
  • 优化器:Enabledruns=200

实际地址以线上配置为准:POLYWEATHER_PAYMENT_RECEIVER_CONTRACT

3. 构造参数编码

使用仓库脚本生成构造参数:

python scripts/encode_checkout_constructor.py \
  --token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 \
  --treasury 0xe581D578EF101c80e3F32263e97E6eA28A0B170e

将输出填入 PolygonScan 的 Constructor Arguments ABI-encoded

4. PolygonScan 操作步骤

  1. 打开合约页 -> Contract -> Verify and Publish
  2. 选择 Solidity (Single file)
  3. 粘贴 contracts/PolyWeatherCheckout.sol 源码。
  4. 填写编译器/优化器参数。
  5. 粘贴构造参数并提交。

5. 验证后检查

  • Read Contract:可见 owner / treasury / allowedToken / paidOrder
  • Write Contract:可见 pay / setTreasury / setTokenAllowed
  • 标签显示 Contract Source Code Verified

6. 双币种开启(USDC + USDC.e

验证后可通过 setTokenAllowed 开启两种代币:

  • USDC.e: 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
  • Native USDC: 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359

7. V2 说明(尚未部署)

如果后续升级到 V2,请改用:

python scripts/encode_checkout_v2_constructor.py \
  --owner 0xYourMultiSig \
  --treasury 0xYourTreasury \
  --signer 0xYourBackendSigner

V2 相关文档:

8. 说明

  • 源码验证能显著降低“欺诈/不可信”误报,但钱包风险缓存更新存在延迟。
  • 生产商用环境可使用私有升级版合约;公开仓库保留标准实现与验证流程。