-
Notifications
You must be signed in to change notification settings - Fork 1
/
SismoHelper.sol
32 lines (24 loc) · 902 Bytes
/
SismoHelper.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "@sismo-core/sismo-connect-solidity/contracts/libs/SismoLib.sol";
import { Bureau } from "../base/Bureau.sol";
import { Helper } from "../base/Helper.sol";
contract SismoHelper is Helper, SismoConnect {
event ProofAccepted(address indexed sender, uint256 indexed id);
error InvalidProof();
constructor(Bureau bureau_, bytes16 appId_)
Helper(bureau_)
SismoConnect(appId_)
{}
function verify(bytes16 groupId, bytes memory proof) external {
SismoConnectVerifiedResult memory result = verify({
responseBytes: proof,
claim: buildClaim({groupId: groupId})
});
if (result.claims.length == 0) {
revert InvalidProof();
}
_bureau.verify(_msgSender());
emit ProofAccepted(_msgSender(), result.claims[0].proofId);
}
}