- 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.
75 lines
1.6 KiB
Solidity
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);
|
|
}
|
|
|