mirror of
https://github.com/Instadapp/dsa-resolvers-deprecated.git
synced 2024-07-29 22:38:16 +00:00
rename synthetix_staking to staking; Added getPosition to return balance and earned value; added truffle-config.js for local contract compile;
54 lines
1.5 KiB
Solidity
54 lines
1.5 KiB
Solidity
pragma solidity ^0.6.0;
|
|
pragma experimental ABIEncoderV2;
|
|
|
|
interface TokenInterface {
|
|
function decimals() external view returns (uint);
|
|
function totalSupply() external view returns (uint256);
|
|
function balanceOf(address) external view returns (uint);
|
|
}
|
|
|
|
interface IStakingRewards {
|
|
function balanceOf(address) external view returns (uint256);
|
|
function earned(address) external view returns (uint256);
|
|
}
|
|
|
|
interface Staking {
|
|
function getStakingData(string calldata stakingName)
|
|
external
|
|
view
|
|
returns (
|
|
IStakingRewards stakingContract,
|
|
TokenInterface stakingToken,
|
|
bytes32 stakingType
|
|
);
|
|
}
|
|
|
|
contract CurveStakingHelpers {
|
|
/**
|
|
* @dev Return mapping contract Address
|
|
*/
|
|
function getStakingAddr() internal virtual view returns (address) {
|
|
return 0x772590F33eD05b0E83553650BF9e75A04b337526;
|
|
}
|
|
}
|
|
|
|
contract Resolver is CurveStakingHelpers {
|
|
|
|
function getPosition(address user, string memory stakingPoolName) public view returns (
|
|
uint stakedBal,
|
|
uint rewardsEarned,
|
|
uint tokenBal
|
|
) {
|
|
Staking staking = Staking(getStakingAddr());
|
|
(IStakingRewards stakingContract, TokenInterface stakingToken, bytes32 stakingType) = staking.getStakingData(stakingPoolName);
|
|
stakedBal = stakingContract.balanceOf(user);
|
|
rewardsEarned = stakingContract.earned(user);
|
|
tokenBal = stakingToken.balanceOf(user);
|
|
}
|
|
}
|
|
|
|
|
|
contract InstaCurveStakingResolver is Resolver {
|
|
string public constant name = "Synthetix-Staking-Resolver-v1";
|
|
}
|