mirror of
https://github.com/Instadapp/dsa-resolvers-deprecated.git
synced 2024-07-29 22:38:16 +00:00
adding .gitattributes for GitHub syntax highlight;
rename synthetix_staking to staking; Added getPosition to return balance and earned value; added truffle-config.js for local contract compile;
This commit is contained in:
parent
25ac9cb464
commit
b91bdda63b
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
*.sol linguist-language=Solidity
|
||||
53
contracts/protocols/staking.sol
Normal file
53
contracts/protocols/staking.sol
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
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";
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
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);
|
||||
}
|
||||
|
||||
contract CurveStakingHelpers {
|
||||
/**
|
||||
* @dev Return Curve Token Address
|
||||
*/
|
||||
function getCurveTokenAddr() internal pure returns (address) {
|
||||
return 0xC25a3A3b969415c80451098fa907EC722572917F;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Return Curve sUSD Staking Address
|
||||
*/
|
||||
function getCurveStakingAddr() internal pure returns (address) {
|
||||
return 0xDCB6A51eA3CA5d3Fd898Fd6564757c7aAeC3ca92;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Return Synthetix Token address.
|
||||
*/
|
||||
function getSnxAddr() internal pure returns (address) {
|
||||
return 0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
contract Resolver is CurveStakingHelpers {
|
||||
|
||||
function getStakingPosition(address user) public view returns (
|
||||
uint curveBal,
|
||||
uint stakedBal,
|
||||
uint rewardsEarned,
|
||||
uint snxBal
|
||||
) {
|
||||
curveBal = TokenInterface(getCurveTokenAddr()).balanceOf(user);
|
||||
IStakingRewards stakingContract = IStakingRewards(getCurveStakingAddr());
|
||||
stakedBal = stakingContract.balanceOf(user);
|
||||
rewardsEarned = stakingContract.earned(user);
|
||||
snxBal = TokenInterface(getSnxAddr()).balanceOf(user);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
contract InstaCurveStakingResolver is Resolver {
|
||||
string public constant name = "Curve-SUSD-Staking-Resolver-v1";
|
||||
}
|
||||
15
truffle-config.js
Normal file
15
truffle-config.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
module.exports = {
|
||||
// Configure your compilers
|
||||
compilers: {
|
||||
solc: {
|
||||
version: "v0.6.2",
|
||||
settings: {
|
||||
optimizer: {
|
||||
enabled: true,
|
||||
},
|
||||
// evmVersion: "istanbul"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user