mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| //SPDX-License-Identifier: MIT
 | |
| pragma solidity ^0.7.0;
 | |
| pragma experimental ABIEncoderV2;
 | |
| 
 | |
| /**
 | |
|  * @title Instadapp Governance.
 | |
|  * @dev Governance.
 | |
|  */
 | |
| import { TokenInterface } from "../../common/interfaces.sol";
 | |
| import { Stores } from "../../common/stores.sol";
 | |
| import { Helpers } from "./helpers.sol";
 | |
| import { Events } from "./events.sol";
 | |
| 
 | |
| abstract contract Resolver is Events, Helpers {
 | |
| 
 | |
|     /**
 | |
|      * @dev Delegate votes.
 | |
|      * @notice Delegating votes to delegatee.
 | |
|      * @param delegatee The address to delegate the votes.
 | |
|     */
 | |
|     function delegate(address delegatee) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | |
|         require(instToken.delegates(address(this)) != delegatee, "Already delegated to same delegatee.");
 | |
| 
 | |
|         instToken.delegate(delegatee);
 | |
| 
 | |
|         _eventName = "LogDelegate(address)";
 | |
|         _eventParam = abi.encode(delegatee);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @dev Cast vote.
 | |
|       * @notice Casting vote for a proposal
 | |
|       * @param proposalId The id of the proposal to vote on
 | |
|       * @param support The support value for the vote. 0=against, 1=for, 2=abstain
 | |
|     */
 | |
|     function voteCast(uint256 proposalId, uint256 support) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | |
|         instaGovernor.castVoteWithReason(proposalId, uint8(support), "");
 | |
| 
 | |
|         _eventName = "LogVoteCast(uint256,uint256,string)";
 | |
|         _eventParam = abi.encode(proposalId, support, "");
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @dev Cast vote with reason.
 | |
|       * @notice Casting vote for a proposal
 | |
|       * @param proposalId The id of the proposal to vote on
 | |
|       * @param support The support value for the vote. 0=against, 1=for, 2=abstain
 | |
|       * @param reason The reason given for the vote
 | |
|     */
 | |
|     function voteCastWithReason(uint256 proposalId, uint256 support, string calldata reason) external payable returns (string memory _eventName, bytes memory _eventParam) {
 | |
|         instaGovernor.castVoteWithReason(proposalId, uint8(support), reason);
 | |
| 
 | |
|         _eventName = "LogVoteCast(uint256,uint256,string)";
 | |
|         _eventParam = abi.encode(proposalId, support, reason);
 | |
|     }
 | |
| }
 | |
| 
 | |
| contract ConnectV2InstadappGovernanceBravo is Resolver {
 | |
|     string public constant name = "Instadapp-governance-bravo-v1";
 | |
| }
 | 
