DelegatedManagerFactory

Factory smart contract which provides asset managers the ability to create a SetToken with a DelegatedManager manager, create a DelegatedManager manager for an existing SetToken to migrate to, and initialize extensions and modules.

createSetAndManager()

function createSetAndManager()

ANYONE CAN CALL: Deploys a new SetToken and DelegatedManager. Sets some temporary metadata about the deployment which will be read during a subsequent intialization step which wires everything together.

createManager()

function createManager()

ONLY SETTOKEN MANAGER: Deploys a DelegatedManager and sets some temporary metadata about the deployment which will be read during a subsequent intialization step which wires everything together. This method is used when migrating an existing SetToken to the DelegatedManager system.

NOTES:

  • This flow should work well for SetTokens managed by an EOA. However, existing contract-managed Sets need to have their ownership temporarily transferred to an EOA when migrating

  • Existing SetTokens should already be initialized for all modules relevant to the extensions enabled for their new DelegatedManager. (There is no provision for adding new modules as part of the manager migration flow)

initialize()

function initialize()

ONLY DEPLOYER (the address which called createSetAndManager or createManager): Wires SetToken, DelegatedManager, global manager extensions, and modules together into a functioning package.

NOTES:

  • When migrating to this manager system from an existing SetToken, the SetToken's current manager address must be reset to point at the newly deployed DelegatedManager contract in a separate, final transaction.

  • See DelegatedManager extensions APIs at set.js for TS helpers to encode appropriate initializeModuleAndExtension or initializeExtension calls you will pass as arguments in the initializeBytecode parameter.

Last updated