Steps for Basic Integration
Step 1. Import and inheritance
Step 1.1
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {IMicapassBaseVerifier} from "../interfaces/IMicapassBaseVerifier.sol";
contract MicapassBasicClient {
IMicapassBaseVerifier internal _micapass;
// Declare claim topics for function access control
uint256 internal constant CLAIM_TOPIC_KYC = 1000001;
uint256 internal constant CLAIM_TOPIC_WALLET_SCREENING = 1000002;
uint256 internal constant CLAIM_TOPIC_WALLET_RISK_SCREENING = 1000003;
/**
* @dev Requires the set of claims for specific wallet address
* @param walletAddress - user wallet address
* @param requiredClaimTopic - claim topic id that needs to be checked
*/
modifier micapassProtected(
address walletAddress,
uint256 requiredClaimTopic
) {
require(
_micapass.isUserVerifiedForClaim(walletAddress, requiredClaimTopic),
"Lacking required claims"
);
_;
}
constructor(address micapassAddress) {
_setMicapass(micapassAddress);
}
function getMicapass() external view returns (address) {
return address(_micapass);
}
function _setMicapass(address micapassAddress) internal {
require(
IMicapassBaseVerifier(micapassAddress).supportsInterface(
type(IMicapassBaseVerifier).interfaceId
),
"Creator interface is incorrect"
);
_micapass = IMicapassBaseVerifier(micapassAddress);
}
}
Step 1.2
Step 2. Initialization
Step 3. Prepare methods and requirements
Step 3.1
Step 3.2
Step 4. Protection implementation
Examples
Last updated