AriaIPRWAVaultStorage
Library defining the storage layout for AriaIPRWAVault
State Variables
_USDC_WHITELIST
address internal constant _USDC_WHITELIST = address(0x1111);
_VAULT_STORAGE_LOCATION
bytes32 internal constant _VAULT_STORAGE_LOCATION = 0xe7b1abf471f6912a1af2d62d0d4c101e77095c0310eb81a682a961d537170900;
Functions
load
Returns the storage struct of AriaIPRWAVault.
function load() internal pure returns (VaultLayout storage $);
Structs
FractionalTokenDetails
Storage strXuct for fractional token details to be used.
struct FractionalTokenDetails {
string fractionalTokenName;
string fractionalTokenSymbol;
uint104 fractionalTokenTotalSupply;
}
Properties
fractionalTokenName
string
The name of the fractional token
fractionalTokenSymbol
string
The symbol of the fractional token
fractionalTokenTotalSupply
uint104
The total supply of the fractional token
MintTimelock
Storage structure for admin fractional token mint timelock.
struct MintTimelock {
uint256 pendingAmount;
address pendingRecipient;
uint48 mintExec;
uint48 timelockDuration;
uint48 pendingTimelockDuration;
uint48 timelockDurationExec;
}
Properties
pendingAmount
uint256
The amount of fractional tokens pending for mint.
pendingRecipient
address
The recipient address for the pending mint.
mintExec
uint48
The Unix timestamp when the admin mint becomes executable.
timelockDuration
uint48
The timelock duration to wait for every new admin mint - will never be zero (checked in contract initializer and setter).
pendingTimelockDuration
uint48
The new timelock duration to be used for the mint.
timelockDurationExec
uint48
The Unix timestamp when the new timelock duration can be applied.
VaultLayout
Storage structure for the AriaIPRWAVault
struct VaultLayout {
StoryAddrs storyAddrs;
FractionalTokenDetails tokenDetails;
VaultType vaultType;
address ipId;
address fractionalToken;
address fractionalTokenReceiver;
mapping(address usdc => mapping(address user => bool claimed)) fractionalTokenClaimed;
MintTimelock timelock;
uint256 claimDeadline;
address legal;
}
Properties
storyAddrs
StoryAddrs
The addresses of the Story Protocol's contracts
tokenDetails
FractionalTokenDetails
The details of the fractional token
vaultType
VaultType
The type of the vault either Fundraise or Whitelist. Only a single type can be used at a time. Can not be updated once set.
ipId
address
The ID of the IP
fractionalToken
address
The address of deployed fractional token
fractionalTokenReceiver
address
The address of fractional token receiver - usually staking contract, to collect royalties and distributed to stakers.
fractionalTokenClaimed
mapping(address usdc => mapping(address user => bool claimed))
The flag to check if the user has claimed the fractional token for a given USDC address. In whitelist, there is a workaround with _USDC_WHITELIST as users have not deposited USDC.
timelock
MintTimelock
State for the admin's fractional token mint timelock.
claimDeadline
uint256
The deadline for the users to claim the fractional token.
legal
address
The address of the legal contract that checks blacklist and license.