VaultFundraiseStorage

Library defining the storage layout for VaultFundraise submodule.

State Variables

_FUNDRAISE_STORAGE_LOCATION

Note: storage-location: erc7201:aria-protocol.AriaIPRWAVault.Fundraise

bytes32 internal constant _FUNDRAISE_STORAGE_LOCATION =
    0xe36dd38548499b58d3fbf36ee168c9d1aec283faddba88cc1ca409b4aad71e00;

Functions

load

Returns the storage struct of VaultFundraise.

function load() internal pure returns (FundraiseLayout storage $);

Structs

Setup

Storage struct for the setup of the fundraise

struct Setup {
    uint256 expirationTime;
    address fundReceiver;
    address usdcContractAddress;
}

Properties

Name
Type
Description

expirationTime

uint256

The expiration time of the vault (0 if no expiration)

fundReceiver

address

The address of the fund receiver (a safe/multisig address)

usdcContractAddress

address

The address of the USDC contract

FundraiseLayout

Storage structure for the VaultFundraise submodule

struct FundraiseLayout {
    Setup setup;
    FundraiseState state;
    EnumerableSet.AddressSet usdcInVault;
    mapping(address token => uint256 totalDeposited) totalDeposits;
    mapping(address user => mapping(address token => uint128 amount)) deposits;
}

Properties

Name
Type
Description

setup

Setup

The setup of the fundraise

state

FundraiseState

The state of the vault either Open, Closed, or Canceled

usdcInVault

EnumerableSet.AddressSet

The set of tokens in the vault (should only be USDC)

totalDeposits

mapping(address token => uint256 totalDeposited)

The total deposits received for each token (should only be USDC)

deposits

mapping(address user => mapping(address token => uint128 amount))

The deposit token address and amount information of the users