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";
 | 
						|
}
 |