IAriaIPRWAVaultFactory

Interface for the AriaIPRWAVaultFactory contract

Functions

initialize

Initializes the factory

function initialize(StoryAddrs memory storyAddrs, address admin_, address vaultTemplate_) external;

Parameters

Name
Type
Description

storyAddrs

StoryAddrs

The story addresses

admin_

address

The address of the admin

vaultTemplate_

address

The address of AriaIPRWAVault

deployFundraiseIpVault

Deploys a new fundraise IP vault

zero address checks skipped: they are checked in the AriaIPRWAVault initializer

function deployFundraiseIpVault(
    address admin,
    AriaIPRWAVaultStorage.FractionalTokenDetails memory tokenDetails,
    VaultFundraiseStorage.Setup memory fundraiseSetup,
    uint48 withdrawalTimelockDuration,
    uint256 claimDeadline,
    address legal
) external returns (address ipVault);

Parameters

Name
Type
Description

admin

address

The address of the admin

tokenDetails

AriaIPRWAVaultStorage.FractionalTokenDetails

The details of the fractional token

fundraiseSetup

VaultFundraiseStorage.Setup

The setup of the fundraise

withdrawalTimelockDuration

uint48

The timelock duration (in seconds) for admin fractional token withdrawals.

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.

Returns

Name
Type
Description

ipVault

address

The address of the deployed IP Vault

deployWhitelistIpVault

Deploys a new whitelist IP vault

zero address checks skipped: they are checked in the AriaIPRWAVault initializer

function deployWhitelistIpVault(
    address admin,
    AriaIPRWAVaultStorage.FractionalTokenDetails memory tokenDetails,
    bytes32 merkleRoot,
    uint48 withdrawalTimelockDuration,
    uint256 claimDeadline,
    address legal
) external returns (address ipVault);

Parameters

Name
Type
Description

admin

address

The address of the admin

tokenDetails

AriaIPRWAVaultStorage.FractionalTokenDetails

The details of the fractional token

merkleRoot

bytes32

The merkle root of the whitelist

withdrawalTimelockDuration

uint48

The timelock duration (in seconds) for admin fractional token withdrawals.

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.

Returns

Name
Type
Description

ipVault

address

The address of the deployed IP Vault

setVaultTemplate

Sets the vault template

function setVaultTemplate(address newVault) external;

Parameters

Name
Type
Description

newVault

address

The address of the new vault template

isAdmin

function isAdmin(address account) external view returns (bool);

Returns

Name
Type
Description

<none>

bool

True if the caller is the admin

getStoryAddrs

Returns the story addresses

function getStoryAddrs() external view returns (StoryAddrs memory);

Returns

Name
Type
Description

<none>

StoryAddrs

storyAddrs The story addresses

getVaultTemplate

Returns the address of the vault template

function getVaultTemplate() external view returns (address);

Returns

Name
Type
Description

<none>

address

vaultTemplate The address of the vault template

Events

FundraiseIpVaultDeployed

Emitted when a new fundraise IP vault is deployed

event FundraiseIpVaultDeployed(address indexed ipVault);

Parameters

Name
Type
Description

ipVault

address

The address of the new IP vault

WhitelistIpVaultDeployed

Emitted when a new whitelist IP vault is deployed

event WhitelistIpVaultDeployed(address indexed ipVault);

Parameters

Name
Type
Description

ipVault

address

The address of the new IP vault