Tally Docs
Search…
Compound Bravo Style
Compatibility considerations when implementing Compound bravo governor
To be compatible with the Tally app using a Compound bravo governance If you want to implement changes to this base contract these are the things you should keep in mind.

Events signatures

Please maintain the event signatures that Compound bravo governor implements, we use these to index the data needed from your governance.
1
event ProposalCreated(
2
uint id,
3
address proposer,
4
address[] targets,
5
uint[] values,
6
string[] signatures,
7
bytes[] calldatas,
8
uint startBlock,
9
uint endBlock,
10
string description
11
);
12
13
event VoteCast(
14
address indexed voter,
15
uint proposalId,
16
uint8 support,
17
uint votes,
18
string reason
19
);
20
21
event ProposalCanceled(uint id);
22
event ProposalQueued(uint id, uint eta);
23
event ProposalExecuted(uint id);
Copied!

Functions signatures

These are the functions signatures that cannot change:
1
function castVote(uint proposalId, uint8 support) external
2
function castVoteWithReason(
3
uint proposalId,
4
uint8 support,
5
string calldata
6
string reason
7
) external
8
9
function castVoteBySig(
10
uint proposalId,
11
uint8 support,
12
uint8 v,
13
bytes32 r,
14
bytes32 s
15
) external
16
17
function state(uint proposalId) public view returns (ProposalState)
18
19
function propose(
20
address[] memory targets,
21
uint[] memory values,
22
string[] memory signatures,
23
bytes[] memory calldatas,
24
string memory description
25
) public returns (uint)
26
27
function execute(uint proposalId) external payable
28
function queue(uint proposalId) external
29
function cancel(uint proposalId) external
Copied!

State variables

The Tally app need access to the public getters of these state variables.
1
uint public votingDelay;
2
uint public votingPeriod;
3
uint public proposalThreshold;
4
uint public constant quorumVotes;
Copied!

Proposal state lifecycle

We support the following states during the proposal lifecycle if your governance uses different states from these it won't work on Tally:
1
enum ProposalState {
2
Pending,
3
Active,
4
Canceled,
5
Defeated,
6
Succeeded,
7
Queued,
8
Expired,
9
Executed
10
}
Copied!
Last modified 28d ago