AttestationStorage
Storage library for EAS attestation-based compliance functionality
Manages storage for EAS attestation-based compliance requirements
State Variables
ATTESTATION_STORAGE_POSITION
bytes32 constant ATTESTATION_STORAGE_POSITION = keccak256("capsign.storage.attestations");
Functions
layout
function layout() internal pure returns (Layout storage l);
setAttestationRegistry
function setAttestationRegistry(address registry) internal;
getAttestationRegistry
function getAttestationRegistry() internal view returns (address);
setLotComplianceRequirement
function setLotComplianceRequirement(uint256 customLotId, ComplianceRequirement memory requirement) internal;
getLotComplianceRequirement
function getLotComplianceRequirement(uint256 customLotId) internal view returns (ComplianceRequirement memory);
clearLotComplianceRequirement
function clearLotComplianceRequirement(uint256 customLotId) internal;
hasLotComplianceRequirement
function hasLotComplianceRequirement(uint256 customLotId) internal view returns (bool);
setCachedComplianceLevel
function setCachedComplianceLevel(address investor, uint8 level) internal;
getCachedComplianceLevel
function getCachedComplianceLevel(address investor) internal view returns (uint8 level, bool isValid);
setComplianceCacheDuration
function setComplianceCacheDuration(uint256 duration) internal;
getComplianceCacheDuration
function getComplianceCacheDuration() internal view returns (uint256);
setDefaultComplianceRequirement
function setDefaultComplianceRequirement(ComplianceRequirement memory requirement) internal;
clearDefaultComplianceRequirement
function clearDefaultComplianceRequirement() internal;
getDefaultComplianceRequirement
function getDefaultComplianceRequirement() internal view returns (ComplianceRequirement memory);
hasDefaultRequirement
function hasDefaultRequirement() internal view returns (bool);
getComplianceLevelString
Get compliance level as string for display
function getComplianceLevelString(uint8 level) internal pure returns (string memory);
Parameters
level
uint8
The compliance level
Returns
<none>
string
String representation of compliance level
getBusinessTypeString
Get business type as string for display
function getBusinessTypeString(uint8 businessType) internal pure returns (string memory);
Parameters
businessType
uint8
The business type
Returns
<none>
string
String representation of business type
isBusinessTypeAllowed
Check if business type is allowed
function isBusinessTypeAllowed(uint8 businessType, uint8[] memory allowedTypes) internal pure returns (bool);
Parameters
businessType
uint8
The business type to check
allowedTypes
uint8[]
Array of allowed business types
Returns
<none>
bool
True if business type is allowed
isNaicsCodeBlocked
Check if NAICS code is blocked
function isNaicsCodeBlocked(uint32 naicsCode, uint32[] memory blockedCodes) internal pure returns (bool);
Parameters
naicsCode
uint32
The NAICS code to check
blockedCodes
uint32[]
Array of blocked NAICS codes
Returns
<none>
bool
True if NAICS code is blocked
getRequirementSummary
Get compliance requirement summary for display
function getRequirementSummary(ComplianceRequirement memory requirement)
internal
pure
returns (string memory summary);
Parameters
requirement
ComplianceRequirement
The compliance requirement
Returns
summary
string
String summary of the requirement
validateComplianceRequirement
Validate compliance requirement parameters
function validateComplianceRequirement(ComplianceRequirement memory requirement)
internal
pure
returns (bool isValid, string memory errorMessage);
Parameters
requirement
ComplianceRequirement
The compliance requirement to validate
Returns
isValid
bool
True if requirement is valid
errorMessage
string
Error message if invalid
getAllLotsWithRequirements
Get all lots with compliance requirements
function getAllLotsWithRequirements(uint256 maxLots)
internal
view
returns (uint256[] memory lotIds, ComplianceRequirement[] memory requirements);
Parameters
maxLots
uint256
Maximum number of lots to check (gas limit protection)
Returns
lotIds
uint256[]
Array of lot IDs with requirements
requirements
ComplianceRequirement[]
Array of corresponding requirements
areRequirementsEquivalent
Check if two compliance requirements are equivalent
function areRequirementsEquivalent(ComplianceRequirement memory req1, ComplianceRequirement memory req2)
internal
pure
returns (bool);
Parameters
req1
ComplianceRequirement
First requirement
req2
ComplianceRequirement
Second requirement
Returns
<none>
bool
True if requirements are equivalent
Structs
ComplianceRequirement
struct ComplianceRequirement {
uint8 minComplianceLevel;
string jurisdiction;
uint8[] allowedBusinessTypes;
uint32[] blockedNaicsCodes;
bool requirePrivateReference;
bool isActive;
}
Layout
struct Layout {
address attestationRegistry;
mapping(uint256 => ComplianceRequirement) lotComplianceRequirements;
mapping(address => uint8) investorComplianceLevels;
mapping(address => uint256) lastComplianceCheck;
uint256 complianceCacheDuration;
ComplianceRequirement defaultComplianceRequirement;
bool hasDefaultComplianceRequirement;
}
Last updated
Was this helpful?