AllowlistV1

Alluvial Finance Inc.

Allowlist (v1)

This contract handles the list of allowed recipients.All accounts have an uint256 value associated with their addresses where each bit represents a right in the system. The DENY_MASK defined the mask used to identify if the denied bit is on, preventing users from interacting with the system

Methods

acceptAdmin

function acceptAdmin() external nonpayable

Accept the transfer of ownership

Only callable by the pending admin. Resets the pending admin if successful.

getAdmin

function getAdmin() external view returns (address)

Retrieves the current admin address

Returns

Name
Type
Description

_0

address

The admin address

getAllower

Retrieves the allower address

Returns

Name
Type
Description

_0

address

The address of the allower

getDenier

Retrieves the denier address

Returns

Name
Type
Description

_0

address

The address of the denier

getPendingAdmin

Retrieve the current pending admin address

Returns

Name
Type
Description

_0

address

The pending admin address

getPermissions

This method retrieves the raw permission value

Parameters

Name
Type
Description

_account

address

Recipient to verify

Returns

Name
Type
Description

_0

uint256

The raw permissions value of the account

hasPermission

This method returns true if the user has the expected permission ignoring any deny list membership

Parameters

Name
Type
Description

_account

address

Recipient to verify

_mask

uint256

Combination of permissions to verify

Returns

Name
Type
Description

_0

bool

True if mask is respected

initAllowlistV1

Initializes the allowlist

Parameters

Name
Type
Description

_admin

address

Address of the Allowlist administrator

_allower

address

Address of the allower

initAllowlistV1_1

Initializes the allowlist denier

Parameters

Name
Type
Description

_denier

address

Address of the denier

isAllowed

This method returns true if the user has the expected permission and is not in the deny list

Parameters

Name
Type
Description

_account

address

Recipient to verify

_mask

uint256

Combination of permissions to verify

Returns

Name
Type
Description

_0

bool

True if mask is respected and user is allowed

isDenied

This method returns true if the user is in the deny list

Parameters

Name
Type
Description

_account

address

Recipient to verify

Returns

Name
Type
Description

_0

bool

True if user is denied access

onlyAllowed

This method should be used as a modifier and is expected to revert if the user hasn't got the required permission or if the user is in the deny list.

Parameters

Name
Type
Description

_account

address

Recipient to verify

_mask

uint256

Combination of permissions to verify

proposeAdmin

Proposes a new address as admin

This security prevents setting an invalid address as an admin. The pending admin has to claim its ownership of the contract, and prove that the new address is able to perform regular transactions.

Parameters

Name
Type
Description

_newAdmin

address

New admin address

setAllowPermissions

Sets the allow permissions for one or more accounts

This function is for allocating or removing deposit, redeem or donate permissions. This function could be used to give any permissions that we come up with in the future. An address which was denied has to be undenied first before they could be given any permission(s).

Parameters

Name
Type
Description

_accounts

address[]

Accounts to update

_permissions

uint256[]

New permission values

setAllower

Changes the allower address

Parameters

Name
Type
Description

_newAllowerAddress

address

New address allowed to edit the allowlist

setDenier

Changes the denier address

Parameters

Name
Type
Description

_newDenierAddress

address

New address allowed to edit the allowlist

setDenyPermissions

Sets the deny permissions for one or more accounts

This function is for allocating or removing deny permissions. An address which is undenied has to be given permissions again for them to be able to deposit, donate or redeem.

Parameters

Name
Type
Description

_accounts

address[]

Accounts to update

_permissions

uint256[]

New permission values

version

Retrieves the version of the contract

Returns

Name
Type
Description

_0

string

Version of the contract

Events

Initialize

Emitted when the contract is properly initialized

Parameters

Name
Type
Description

version

uint256

New version of the contracts

cdata

bytes

Complete calldata that was used during the initialization

SetAdmin

The admin address changed

Parameters

Name
Type
Description

admin indexed

address

New admin address

SetAllower

The stored allower address has been changed

Parameters

Name
Type
Description

allower indexed

address

The new allower address

SetAllowlistPermissions

The permissions of several accounts have changed

Parameters

Name
Type
Description

accounts

address[]

List of accounts

permissions

uint256[]

New permissions for each account at the same index

SetDenier

The stored denier address has been changed

Parameters

Name
Type
Description

denier indexed

address

The new denier address

SetPendingAdmin

The pending admin address changed

Parameters

Name
Type
Description

pendingAdmin indexed

address

New pending admin address

Errors

AttemptToRemoveDenyPermission

Allower can't remove deny permission

AttemptToSetDenyPermission

Allower can't set deny permission

Denied

The account is denied access

Parameters

Name
Type
Description

_account

address

The denied account

InvalidCount

The provided accounts list is empty

InvalidInitialization

An error occurred during the initialization

Parameters

Name
Type
Description

version

uint256

The version that was attempting to be initialized

expectedVersion

uint256

The version that was expected

InvalidZeroAddress

The address is zero

MismatchedArrayLengths

The provided accounts and permissions list have different lengths

Unauthorized

The operator is unauthorized for the caller

Parameters

Name
Type
Description

caller

address

Address performing the call

Last updated