--- tags: baal, contracts --- # Baal Ketchup (4/26/22) ## Agenda - Contract changes and cleanup - Subgraph - Code lock for audit - Docs ## Contract Changes - Changes made to clean things up on feature branch -- Bill will make a PR into Dekan's branch - Cleaning up `sponsorship` - Removing `name` and `symbol` from storage - Events -- falling back to matching what we're going to grab from ERC20 Events - Out of gas: - Get an estimation on the frontend and submit with the proposal and check in the execution whether the gas submitted to execute is >= what is submitted with the proposal - Gnosis checks at the *execution stage* and reverts there - Comes up with an estimate when calling the execute function - Not sure if we're able to replicate this flow: complex, but may also put us over the contract size limit (although this may be fine now) - This is the safest approach since it's being done when needed instead of being done prior to needing it - How would we estimate this? - If going through a proxy contract like the Tribute we'd be able to estimate - Run suggestion by Gnosis and get feedback - Estimating gas: - How do we estimate gas on everything that's being executed? - Can we make a call with the execution data? - https://docs.gnosis-safe.io/contracts/guards/ - Estimated on the frontend or manually added by users - Requirement that the gas would *exceed* the safe transaction amount so that the transaction can't be processed if it's lower - Frontend would need to estimate the gas for the entire multi-action transaction - Equivalent of the safe transaction gas in our model - If we increase this, user would get a refund for what's not used - State or conditions can change over time, so impossible to be completely accurate - Simulator would allow for us to get in the ballpark to prevent bad actors from processing a proposal with gas that's too low - Simulation * 10% or 20% and a `require` statement that user needs to submit *with at least* as much gas as this or it'll revert - Someone intent on being a bad actor could go directly to the contract on Etherscan and input gas as 1 gwei - Frontend allowing to add fields via the "+ More" button - Add field to manually change the Baal Transaction Gas - Tooltip that explains estimation and buffer process and reason why - Use ethers estimate and bump it up for the estimate - 0 is unlimited -- max gas needed - Default to this? Would fix this issue, but could be less than ideal UX ## Audit - Scribble is a TODO on the contract - What would we need to do this? - https://docs.scribble.codes/ ## Docs - Continue to round out the docs pages ## ToDo - [ ] Submit PR to the [sharesToken](https://github.com/HausDAO/Baal/tree/feature/sharesToken) branch (@billw#2534) - [ ] Get `dan13ram` the `warcamp-temp` role (@earth2travis#6969) - [ ] Determine if `dan13ram` is interested in picking up the [Add Scribble Annotation](https://github.com/HausDAO/daohaus-monorepo/issues/24) issue (@earth2travis#6969) - [ ] [Update Baal to check estimated gas on proposal execution](https://github.com/HausDAO/daohaus-monorepo/issues/90) (@dekanbro#7256) - [ ] Handoff Quantstamp contact to Ξ2T (@billw#2534)