zkPass案例实战之合约篇
目录
一、contracts/contracts/ProofVerifier.sol
1. License 和 Solidity 版本
2. 导入依赖
3. 合约声明和默认分配器地址
4. 验证证明
5. 验证分配器签名
6. 验证验证者签名
7. 签名前缀处理
8. 签名恢复
总结
二、contracts/contracts/SampleAttestation.sol
1. License 和 Solidity 版本
2. 导入依赖
3. Attestation 结构体
4. 合约声明和存储
5. 构造函数
6. 创建声明
功能:
7. 获取声明
8. 生成 UID
总结
三、contracts/contracts/Common.sol
一、contracts/contracts/ProofVerifier.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;import {Proof} from "./Common.sol";contract ProofVerifier {address public defaultAllocator = 0x19a567b3b212a5b35bA0E3B600FbEd5c2eE9083d;constructor() {}function verify(Proof calldata _proof) public view returns (bool) {return (verifyAllocatorSignature(_proof.taskId, _proof.schemaId, _proof.validator, _proof.allocatorSignature) &&verifyValidatorSignature(