The Treasury contract has a set of functions that will be called by other contracts, eg routePremiums and refund. It also has functions that will be called by governance to manage tokens, eg swap (via uniswap), spend, wrapEth. These governance-only functions are limited by what is written before deployment and don't allow for other external calls that we may need to manage tokens in the future, eg swap via other exchanges and manage uni v3 tokens. We need a way for Treasury to call arbitrary external functions
I'm thinking a slim ERC725X https://eips.ethereum.org/EIPS/eip-725. We can probably remove operationType and use call. But we will need some sort of Javascript utility to assemble the call data
The Treasury contract has a set of functions that will be called by other contracts, eg routePremiums and refund. It also has functions that will be called by governance to manage tokens, eg swap (via uniswap), spend, wrapEth. These governance-only functions are limited by what is written before deployment and don't allow for other external calls that we may need to manage tokens in the future, eg swap via other exchanges and manage uni v3 tokens. We need a way for Treasury to call arbitrary external functions
I'm thinking a slim ERC725X https://eips.ethereum.org/EIPS/eip-725. We can probably remove operationType and use call. But we will need some sort of Javascript utility to assemble the call data