enum RestrictionType {
Fixed,
Percentage
}
enum TypeOfPeriod {
MultipleDays,
OneDay,
Both
}
struct VolumeRestriction {
uint256 allowedTokens,
uint256 startTime,
uint256 rollingPeriodInDays,
uint256 endTime,
enum VolumeRestrictionTMStorage.RestrictionType typeOfRestriction
}
struct IndividualRestrictions {
mapping(address => struct VolumeRestrictionTMStorage.VolumeRestriction) individualRestriction,
mapping(address => struct VolumeRestrictionTMStorage.VolumeRestriction) individualDailyRestriction
}
struct GlobalRestrictions {
struct VolumeRestrictionTMStorage.VolumeRestriction defaultRestriction,
struct VolumeRestrictionTMStorage.VolumeRestriction defaultDailyRestriction
}
struct BucketDetails {
uint256 lastTradedDayTime,
uint256 sumOfLastPeriod,
uint256 daysCovered,
uint256 dailyLastTradedDayTime,
uint256 lastTradedTimestamp
}
struct BucketData {
mapping(address => mapping(uint256 => uint256)) bucket,
mapping(address => mapping(uint256 => uint256)) defaultBucket,
mapping(address => struct VolumeRestrictionTMStorage.BucketDetails) userToBucket,
mapping(address => struct VolumeRestrictionTMStorage.BucketDetails) defaultUserToBucket
}
struct Exemptions {
mapping(address => uint256) exemptIndex,
address[] exemptAddresses
}
mapping(address => enum VolumeRestrictionTMStorage.TypeOfPeriod) internal holderToRestrictionType;
struct VolumeRestrictionTMStorage.IndividualRestrictions internal individualRestrictions;
struct VolumeRestrictionTMStorage.GlobalRestrictions internal globalRestrictions;
struct VolumeRestrictionTMStorage.BucketData internal bucketData;
struct VolumeRestrictionTMStorage.Exemptions internal exemptions;