Skip to content

Commit 7b70690

Browse files
authored
feat: Add StakeTokenDataProvider contract for StkAave 1.5 (#30)
* feat: Add StakeUiHelper for stakedToken v1.5 * fix: Refactor StakedTokenDataProvider * fix: Add logic for upgraded StkBPT * feat: Add new variable for redeemable amount * feat: Add new variable for total redeeamble amount
1 parent d5ab9e7 commit 7b70690

File tree

6 files changed

+889
-6
lines changed

6 files changed

+889
-6
lines changed
Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,275 @@
1+
pragma solidity 0.7.5;
2+
pragma abicoder v2;
3+
4+
interface AggregatedStakedAaveV3 {
5+
event Approval(address indexed owner, address indexed spender, uint256 value);
6+
event AssetConfigUpdated(address indexed asset, uint256 emission);
7+
event AssetIndexUpdated(address indexed asset, uint256 index);
8+
event Cooldown(address indexed user, uint256 amount);
9+
event CooldownSecondsChanged(uint256 cooldownSeconds);
10+
event DelegateChanged(address indexed delegator, address indexed delegatee, uint8 delegationType);
11+
event DelegatedPowerChanged(address indexed user, uint256 amount, uint8 delegationType);
12+
event ExchangeRateChanged(uint216 exchangeRate);
13+
event FundsReturned(uint256 amount);
14+
event GHODebtTokenChanged(address indexed newDebtToken);
15+
event MaxSlashablePercentageChanged(uint256 newPercentage);
16+
event PendingAdminChanged(address indexed newPendingAdmin, uint256 role);
17+
event Redeem(address indexed from, address indexed to, uint256 assets, uint256 shares);
18+
event RewardsAccrued(address user, uint256 amount);
19+
event RewardsClaimed(address indexed from, address indexed to, uint256 amount);
20+
event RoleClaimed(address indexed newAdmin, uint256 role);
21+
event Slashed(address indexed destination, uint256 amount);
22+
event SlashingExitWindowDurationChanged(uint256 windowSeconds);
23+
event SlashingSettled();
24+
event Staked(address indexed from, address indexed to, uint256 assets, uint256 shares);
25+
event Transfer(address indexed from, address indexed to, uint256 value);
26+
event UserIndexUpdated(address indexed user, address indexed asset, uint256 index);
27+
28+
struct AssetConfigInput {
29+
uint128 emissionPerSecond;
30+
uint256 totalStaked;
31+
address underlyingAsset;
32+
}
33+
34+
function CLAIM_HELPER_ROLE() external view returns (uint256);
35+
36+
function COOLDOWN_ADMIN_ROLE() external view returns (uint256);
37+
38+
function COOLDOWN_SECONDS() external view returns (uint256);
39+
40+
function DELEGATE_BY_TYPE_TYPEHASH() external view returns (bytes32);
41+
42+
function DELEGATE_TYPEHASH() external view returns (bytes32);
43+
44+
function DISTRIBUTION_END() external view returns (uint256);
45+
46+
function DOMAIN_SEPARATOR() external view returns (bytes32);
47+
48+
function EIP712_REVISION() external view returns (bytes memory);
49+
50+
function EMISSION_MANAGER() external view returns (address);
51+
52+
function EXCHANGE_RATE_UNIT() external view returns (uint256);
53+
54+
function INITIAL_EXCHANGE_RATE() external view returns (uint216);
55+
56+
function LOWER_BOUND() external view returns (uint256);
57+
58+
function PERMIT_TYPEHASH() external view returns (bytes32);
59+
60+
function PRECISION() external view returns (uint8);
61+
62+
function REVISION() external pure returns (uint256);
63+
64+
function REWARDS_VAULT() external view returns (address);
65+
66+
function REWARD_TOKEN() external view returns (address);
67+
68+
function SLASH_ADMIN_ROLE() external view returns (uint256);
69+
70+
function STAKED_TOKEN() external view returns (address);
71+
72+
function UNSTAKE_WINDOW() external view returns (uint256);
73+
74+
function _aaveGovernance() external view returns (address);
75+
76+
function _exchangeRateSnapshots(uint256)
77+
external
78+
view
79+
returns (uint40 blockNumber, uint216 value);
80+
81+
function _nonces(address) external view returns (uint256);
82+
83+
function _votingSnapshots(address, uint256)
84+
external
85+
view
86+
returns (uint128 blockNumber, uint128 value);
87+
88+
function _votingSnapshotsCounts(address) external view returns (uint256);
89+
90+
function allowance(address owner, address spender) external view returns (uint256);
91+
92+
function approve(address spender, uint256 amount) external returns (bool);
93+
94+
struct AssetData {
95+
uint128 emissionPerSecond;
96+
uint128 lastUpdateTimestamp;
97+
uint256 index;
98+
}
99+
100+
function assets(address) external view returns (AssetData memory);
101+
102+
function balanceOf(address account) external view returns (uint256);
103+
104+
function claimRewards(address to, uint256 amount) external;
105+
106+
function claimRewardsAndRedeem(
107+
address to,
108+
uint256 claimAmount,
109+
uint256 redeemAmount
110+
) external;
111+
112+
function claimRewardsAndRedeemOnBehalf(
113+
address from,
114+
address to,
115+
uint256 claimAmount,
116+
uint256 redeemAmount
117+
) external;
118+
119+
function claimRewardsAndStake(address to, uint256 amount) external returns (uint256);
120+
121+
function claimRewardsAndStakeOnBehalf(
122+
address from,
123+
address to,
124+
uint256 amount
125+
) external returns (uint256);
126+
127+
function claimRewardsOnBehalf(
128+
address from,
129+
address to,
130+
uint256 amount
131+
) external returns (uint256);
132+
133+
function claimRoleAdmin(uint256 role) external;
134+
135+
function configureAssets(AssetConfigInput[] memory assetsConfigInput) external;
136+
137+
function cooldown() external;
138+
139+
function cooldownOnBehalfOf(address from) external;
140+
141+
function decimals() external view returns (uint8);
142+
143+
function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);
144+
145+
function delegate(address delegatee) external;
146+
147+
function delegateBySig(
148+
address delegatee,
149+
uint256 nonce,
150+
uint256 expiry,
151+
uint8 v,
152+
bytes32 r,
153+
bytes32 s
154+
) external;
155+
156+
function delegateByType(address delegatee, uint8 delegationType) external;
157+
158+
function delegateByTypeBySig(
159+
address delegatee,
160+
uint8 delegationType,
161+
uint256 nonce,
162+
uint256 expiry,
163+
uint8 v,
164+
bytes32 r,
165+
bytes32 s
166+
) external;
167+
168+
function getAdmin(uint256 role) external view returns (address);
169+
170+
function getCooldownSeconds() external view returns (uint256);
171+
172+
function getDelegateeByType(address delegator, uint8 delegationType)
173+
external
174+
view
175+
returns (address);
176+
177+
function getExchangeRate() external view returns (uint216);
178+
179+
function getMaxSlashablePercentage() external view returns (uint256);
180+
181+
function getPendingAdmin(uint256 role) external view returns (address);
182+
183+
function getPowerAtBlock(
184+
address user,
185+
uint256 blockNumber,
186+
uint8 delegationType
187+
) external view returns (uint256);
188+
189+
function getPowerCurrent(address user, uint8 delegationType) external view returns (uint256);
190+
191+
function getTotalRewardsBalance(address staker) external view returns (uint256);
192+
193+
function getUserAssetData(address user, address asset) external view returns (uint256);
194+
195+
function ghoDebtToken() external view returns (address);
196+
197+
function inPostSlashingPeriod() external view returns (bool);
198+
199+
function increaseAllowance(address spender, uint256 addedValue) external returns (bool);
200+
201+
function initialize(
202+
address slashingAdmin,
203+
address cooldownPauseAdmin,
204+
address claimHelper,
205+
uint256 maxSlashablePercentage,
206+
uint256 cooldownSeconds
207+
) external;
208+
209+
function name() external view returns (string memory);
210+
211+
function permit(
212+
address owner,
213+
address spender,
214+
uint256 value,
215+
uint256 deadline,
216+
uint8 v,
217+
bytes32 r,
218+
bytes32 s
219+
) external;
220+
221+
function previewRedeem(uint256 shares) external view returns (uint256);
222+
223+
function previewStake(uint256 assets) external view returns (uint256);
224+
225+
function redeem(address to, uint256 amount) external;
226+
227+
function redeemOnBehalf(
228+
address from,
229+
address to,
230+
uint256 amount
231+
) external;
232+
233+
function returnFunds(uint256 amount) external;
234+
235+
function setCooldownSeconds(uint256 cooldownSeconds) external;
236+
237+
function setGHODebtToken(address newGHODebtToken) external;
238+
239+
function setMaxSlashablePercentage(uint256 percentage) external;
240+
241+
function setPendingAdmin(uint256 role, address newPendingAdmin) external;
242+
243+
function settleSlashing() external;
244+
245+
function slash(address destination, uint256 amount) external returns (uint256);
246+
247+
function stake(address to, uint256 amount) external;
248+
249+
function stakeWithPermit(
250+
address from,
251+
uint256 amount,
252+
uint256 deadline,
253+
uint8 v,
254+
bytes32 r,
255+
bytes32 s
256+
) external;
257+
258+
function stakerRewardsToClaim(address) external view returns (uint256);
259+
260+
function stakersCooldowns(address) external view returns (uint40 timestamp, uint216 amount);
261+
262+
function symbol() external view returns (string memory);
263+
264+
function totalSupply() external view returns (uint256);
265+
266+
function totalSupplyAt(uint256) external view returns (uint256);
267+
268+
function transfer(address to, uint256 amount) external returns (bool);
269+
270+
function transferFrom(
271+
address from,
272+
address to,
273+
uint256 amount
274+
) external returns (bool);
275+
}

0 commit comments

Comments
 (0)