Smart contract manager that contains permissions and admin functionality. Paired with extensions that enable permissionless and automated functionality on the SetToken (ex: leverage tokens)
Owner only: Update the SetToken manager address
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.
Owner only: Remove an existing extension(s) tracked by the DelegatedManager. Removed extensions are * placed in NONE state.
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.
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
Extension Only: Transfers
_tokensheld by the manager to
_destination. Can be used to distribute fees or recover anything sent to the DelegatedManager accidentally.
Owner only: Add a new module to the SetToken
Owner only: Remove a module from the SetToken
Methodologist only: Set a new methodologist address
Owner only: Add new operator(s) address(es)
Owner only: Remove operator(s) address(es)
Owner only: Add new asset(s) that can be traded to, wrapped to, or claimed
Owner only: Remove asset(s) so that it/they can't be traded to, wrapped to, or claimed
Owner only: Toggle
useAssetAllowliston and off. When
allowlistis ignored when
trueit is enforced.
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.
Owner only: Update address owner receives fees at