mirror of
				https://github.com/Instadapp/dsa-connectors.git
				synced 2024-07-29 22:37:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| pragma solidity ^0.7.0;
 | |
| pragma experimental ABIEncoderV2;
 | |
| 
 | |
| 
 | |
| import { DSMath } from "../../common/math.sol";
 | |
| import { Basic } from "../../common/basic.sol";
 | |
| import { TokenInterface } from "../../common/interfaces.sol";
 | |
| import { IStakingRewards, StakingERC20Mapping } from "./interface.sol";
 | |
| 
 | |
| abstract contract Helpers is DSMath, Basic {
 | |
| 
 | |
|   /**
 | |
|    * @dev Convert String to bytes32.
 | |
|    */
 | |
|   function stringToBytes32(string memory str) internal pure returns (bytes32 result) {
 | |
|     require(bytes(str).length != 0, "string-empty");
 | |
|     // solium-disable-next-line security/no-inline-assembly
 | |
|     assembly {
 | |
|       result := mload(add(str, 32))
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @dev Get staking data
 | |
|    */
 | |
|   function getStakingData(string memory stakingName)
 | |
|   internal
 | |
|   view
 | |
|   returns (
 | |
|     IStakingRewards stakingContract,
 | |
|     TokenInterface stakingToken,
 | |
|     TokenInterface rewardToken,
 | |
|     bytes32 stakingType
 | |
|   )
 | |
|   {
 | |
|     stakingType = stringToBytes32(stakingName);
 | |
|     StakingERC20Mapping.StakingData memory stakingData = StakingERC20Mapping(getMappingAddr()).stakingMapping(stakingType);
 | |
|     require(stakingData.stakingPool != address(0) && stakingData.stakingToken != address(0), "Wrong Staking Name");
 | |
|     stakingContract = IStakingRewards(stakingData.stakingPool);
 | |
|     stakingToken = TokenInterface(stakingData.stakingToken);
 | |
|     rewardToken = TokenInterface(stakingData.rewardToken);
 | |
|   }
 | |
| 
 | |
|   function getMappingAddr() internal virtual view returns (address) {
 | |
|     return 0xbE658233bA9990d86155b3902fd05a7AfC7eBdB5; // InstaMapping Address
 | |
|   }
 | |
| 
 | |
| } | 
