# Minion Safe integration ## minionSafe module https://github.com/HausDAO/MinionSummonerV2 ## minionSafe front end integration (WIP) https://github.com/santteegt/pokemol-web/tree/feature/minion-safe ## Notes Deploy minion boost deployment form updates update settings page to be accessible with vault page - what setting page? should just be a vault page update vaults page to look at safe balances - will require indexing job updates to cache safe balance data instead of minion balance data subgraph updates to record new safe and module addresses - new safeAddress on the minion entity - factory update on new summon event - update mappings current in neapolitan minion to handle new proposeaction - likely need new fields to store byte data and maybe unpack it in the subgraph - check execute action mapping too minion form updates - needs to use form legos and encode proposal details - rework how action data is displayed - decode helpers # NEXT STEPS - Add safe adddress to subgraph entity - Deploy subgraphs - sam - Update index jobs - sam ### MINION LAUNCH front end code notes Will need new minion data added to: chains.js - factory contract address Minion lego data: https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/minions.js - minion network, setting links, type and content data a new minion form lego nifty minion example: https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/forms.js#L478 - you'll likely need some extra fields - maybe custom fields. checkout how minQurom is done. - i don't know what else is needed for the safe flow FYI - here is where the new minion form is loaded: https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/pages/Installed.jsx - Summon Minion button - opens a form modal with the 1st step as CORE_FORMS.SUMMON_MINION_SELECTOR: https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/forms.js#L103 - 2nd step is theSummoner: https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/components/theSummoner.jsx If you set up all the legos correctly, you won't need to touch that stuff. ### Minion vault page #### Transfer forms front end code notes erc20 and network transfer forms - in general we can replace the neapolitan minion logic - https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/components/minionTransfer.jsx - update getMinionActionFormLego in - https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/utils/vaults.js - add the safe type - it will use this form lego - MINION_SEND_ERC20_TOKEN - this function `getMinionActionFormLego` will replace with a new tx lego - create the tx lego - replace MINION_SEND_ERC20_TOKEN_NEAPOLITAN - https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/contractTX.js#L585 - we will need a new type of 'gatherArgs' function, i think - like encodeHex, but it should mimic this: - https://github.com/HausDAO/MinionSummonerV2/blob/main/test/safe-minion-test.ts#L271 - https://github.com/HausDAO/MinionSummonerV2/blob/fde0500ab4e4ae64352c6b5bdd628b003c5317ed/test/util.ts#L31 ___ ### Proposal forms - simple single action proposal form with proper encoding for new proposeAction - stepper integration for multiple action (w/ jord) - vault forms - send erc20 - send network token - transfer 721 - transfer 1155 - playlist - payroll form - simple minion proposal - stepper forms - multiple actions ### proposal details - change how we get action and display - display action data - execute minion - use isPassed to check if needing execution