DelegatedManager

Smart contract manager that contains permissions and admin functionality. Paired with extensions that enable permissionless and automated functionality on the SetToken (ex: leverage tokens)

Select Methods

setManager()

function setManager()

Owner only: Update the SetToken manager address

Parameter Name

Type

Description

_newManager

address

New manager address

addExtensions()

function addExtensions()

Owner only: Add new extension(s) that the DelegatedManager can call. Puts extensions into PENDING * state, each must be initialized in order to be used.

Parameter Name

Type

Description

_newExtensions

address[]

New extension addresses

removeExtensions()

function removeExtensions()

Owner only: Remove an existing extension(s) tracked by the DelegatedManager. Removed extensions are * placed in NONE state.

Parameter Name

Type

Description

_extensions

address

Extension addresses to remove

initializeExtension()

function initializeExtension()

Extension only: Initializes an added extension from PENDING to INITIALIZED state and adds to extension array. An address can only enter a PENDING state if it is an enabled extension added by the manager. Only callable by the extension itself, hence msg.sender is the subject of update.

interactManager()

function interactManager()

Extension only: Interact with a module registered on the SetToken. In order to ensure SetToken admin functions can only be changed from this contract no calls to the SetToken can originate from Extensions. To transfer SetTokens use the transferTokens function.

Parameter Name

Type

Description

_module

address

Set Protocol V2 module to interact with

_data

bytes

Byte data of function to call in module

transferTokens()

function transferTokens()

Extension Only: Transfers _tokens held by the manager to _destination. Can be used to distribute fees or recover anything sent to the DelegatedManager accidentally.

Parameter Name

Type

Description

_token

address

ERC20 token to send

_destination

address

Address receiving the tokens

_amount

uint256

Quantity of tokens to send

addModule()

function addModule()

Owner only: Add a new module to the SetToken

Parameter Name

Type

Description

_newModule

address

New module address

removeModule()

function removeModule()

Owner only: Remove a module from the SetToken

Parameter Name

Type

Description

_newModule

address

New module address

setMethodologist()

function setMethodologist()

Methodologist only: Set a new methodologist address

Parameter Name

Type

Description

_newMethodologist

address

New methodologist address

addOperators()

function addOperators()

Owner only: Add new operator(s) address(es)

Parameter Name

Type

Description

_operators

address[]

New operators to add

removeOperators()

function removeOperators()

Owner only: Remove operator(s) address(es)

Parameter Name

Type

Description

_operators

address[]

Operators to remove

addAllowedAssets()

function addAllowedAssets()

Owner only: Add new asset(s) that can be traded to, wrapped to, or claimed

Parameter Name

Type

Description

_assets

address[]

Assets to add

removeAllowedAssets()

function removeAllowedAssets()

Owner only: Remove asset(s) so that it/they can't be traded to, wrapped to, or claimed

Parameter Name

Type

Description

_assets

address[]

Assets to add

updateUseAssetAllowlist()

function updateUseAssetAllowlist()

Owner only: Toggle useAssetAllowlist on and off. When false asset allowlist is ignored when true it is enforced.

Parameter Name

Type

Description

_useAssetAllowlist

bool

Indicates whether to use asset allow list

updateOwnerFeeSplit()

function updateOwnerFeeSplit()

Must be called by both the operator and methodologist. Updates the extension's fee split. The split is defined in precise units (1% = 10^16). Fees are accrued and distributed before the new split goes into effect.

Parameter Name

Type

Description

_newFeeSplit

uint256

Percent in precise units (100% = 10**18) of fees that accrue to owner

updateOwnerFeeRecipient()

function updateOwnerFeeRecipient()

Owner only: Update address owner receives fees at

Parameter Name

Type

Description

_newFeeRecipient

address

Address to send owner fees to

Last updated