Files
asle/contracts/src/interfaces/IComplianceFacet.sol
defiQUG 507d9a35b1 Add initial project structure and documentation files
- Created .gitignore to exclude sensitive files and directories.
- Added API documentation in API_DOCUMENTATION.md.
- Included deployment instructions in DEPLOYMENT.md.
- Established project structure documentation in PROJECT_STRUCTURE.md.
- Updated README.md with project status and team information.
- Added recommendations and status tracking documents.
- Introduced testing guidelines in TESTING.md.
- Set up CI workflow in .github/workflows/ci.yml.
- Created Dockerfile for backend and frontend setups.
- Added various service and utility files for backend functionality.
- Implemented frontend components and pages for user interface.
- Included mobile app structure and services.
- Established scripts for deployment across multiple chains.
2025-12-03 21:22:31 -08:00

75 lines
1.6 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
interface IComplianceFacet {
enum ComplianceMode {
Regulated, // Mode A: Full KYC/AML
Fintech, // Mode B: Tiered KYC
Decentralized // Mode C: No KYC
}
struct UserCompliance {
ComplianceMode mode;
bool kycVerified;
bool amlVerified;
uint256 tier;
bool active;
}
event ComplianceModeSet(
address indexed user,
ComplianceMode mode
);
event KYCVerified(
address indexed user,
bool verified
);
event OFACCheck(
address indexed user,
bool sanctioned
);
event TravelRuleCompliance(
address indexed from,
address indexed to,
uint256 amount,
bytes32 transactionHash
);
event ISO20022Message(
address indexed user,
string messageType,
bytes32 messageId
);
function setUserComplianceMode(
address user,
ComplianceMode mode
) external;
function verifyKYC(address user, bool verified) external;
function verifyAML(address user, bool verified) external;
function getUserCompliance(
address user
) external view returns (UserCompliance memory);
function canAccess(
address user,
ComplianceMode requiredMode
) external view returns (bool);
function setVaultComplianceMode(
uint256 vaultId,
ComplianceMode mode
) external;
function getVaultComplianceMode(
uint256 vaultId
) external view returns (ComplianceMode);
}