I tested Governance Smart Contract with and without Timelock.
Moreover, I also use Tally for playing with the Votes and create Proposal.
So far, it was fun and exciting.
But I have a couple of questions, which I still not understand clearly yet.
Using Tally, I tried to see the proposal execution detail. The reason is to double check the method it is trying to call. Let say the proposal was to vote for sending 100 ETH to another party called Party A. Then, how can I make sure that it is calling "transfer" method, also how to check the amount is exactly 100 ETH ? Finally, how to make sure it is sending 100 ETH to Party A address ?
I asked this because I had seen the proposal, which I made which will call "setProposalThreshold", but from Tally all I can see it calldata, target and value.
Do we need to decode the calldata ?
For Target and Value, it is self explained.
I assumed target is the contract address of the method will be called, while value maybe will show 100 ETH (in my example case). But, please correct me if I'm wrong.
Governance was made for voting "a change of something".
Does this "change" is limited to Governance contract method ?
Let say, I made a contract for a Treasury application, but I forgot to add "withdraw" method. Is it possible to customize the calldata so it is able somehow to imitate this "withdraw" method ?
Another example is, what if I have "withdraw" method but then I want to change it to "withdrawWithInterest", does proposal are these flexible ? Or is it limited to predefined method created on the deployed contract ?