I'm currently writing a smart contract with a vesting component, and basically looking at every possible way to reduce the attack surface due to the value that will be locked into it.
One thing I wanted to do is to add a modifier to all payable functions, to restrict them to a whitelisted set of accounts that we will know before the contract is deployed.
A couple of these accounts are multisigs, which obviously cannot directly execute transactions. It would be great IF the multisig was the whitelisted account, with one of the externally owned accounts executing the final transaction through the multisig.
Looking at SafeApps leads me to believe this is perfect for my use case: the signers will collectively sign the transaction, which will then call the contract. What I would like to confirm:
- Will the contract be called by the contract address of the Safe/Multisig? Alternative might be some other account managed by the tranaction service.
- Presumably the final execution of the transaction will require the account to send all gas required for the proxy call?