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