mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	Added instadapp governance connector
This commit is contained in:
		
							parent
							
								
									4560aea2d2
								
							
						
					
					
						commit
						e31abde1f8
					
				
							
								
								
									
										6
									
								
								contracts/mainnet/connectors/INST/events.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								contracts/mainnet/connectors/INST/events.sol
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| pragma solidity ^0.7.0; | ||||
| 
 | ||||
| contract Events { | ||||
|     event LogVoteCast(uint256 proposalId, uint256 support, string reason); | ||||
|     event LogDelegate(address delegatee); | ||||
| } | ||||
							
								
								
									
										18
									
								
								contracts/mainnet/connectors/INST/helpers.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								contracts/mainnet/connectors/INST/helpers.sol
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| pragma solidity ^0.7.0; | ||||
| pragma experimental ABIEncoderV2; | ||||
| 
 | ||||
| import { DSMath } from "../../common/math.sol"; | ||||
| import { Basic } from "../../common/basic.sol"; | ||||
| import { InstaTokenInterface, InstaGovernorInterface } from "./interface.sol"; | ||||
| 
 | ||||
| abstract contract Helpers is DSMath, Basic { | ||||
|     /** | ||||
|      * @dev InstaGovernorBravo | ||||
|      */ | ||||
|     InstaGovernorInterface internal constant instaGovernor = InstaGovernorInterface(0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B); | ||||
| 
 | ||||
|     /** | ||||
|      * @dev INST Token | ||||
|      */ | ||||
|     InstaTokenInterface internal constant instToken = InstaTokenInterface(0xc00e94Cb662C3520282E6f5717214004A7f26888); | ||||
| } | ||||
							
								
								
									
										10
									
								
								contracts/mainnet/connectors/INST/interface.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								contracts/mainnet/connectors/INST/interface.sol
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| pragma solidity ^0.7.0; | ||||
| 
 | ||||
| interface InstaGovernorInterface { | ||||
|     function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external; | ||||
| } | ||||
| 
 | ||||
| interface InstaTokenInterface { | ||||
|     function delegate(address delegatee) external; | ||||
|     function delegates(address) external view returns(address); | ||||
| } | ||||
							
								
								
									
										60
									
								
								contracts/mainnet/connectors/INST/main.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								contracts/mainnet/connectors/INST/main.sol
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | |||
| 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"; | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Thrilok Kumar
						Thrilok Kumar