Skip to content

Commit b516800

Browse files
committed
Add pool interface with relaxed Solidity version pragma
1 parent b74bc3f commit b516800

9 files changed

Lines changed: 381 additions & 0 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./ITimelockUtils.sol";
5+
6+
interface IApi3Pool is ITimelockUtils {
7+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./IStakeUtils.sol";
5+
6+
interface IClaimUtils is IStakeUtils {
7+
event PaidOutClaim(
8+
address indexed recipient,
9+
uint256 amount,
10+
uint256 totalStake
11+
);
12+
13+
function payOutClaim(
14+
address recipient,
15+
uint256 amount
16+
)
17+
external;
18+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./IRewardUtils.sol";
5+
6+
interface IDelegationUtils is IRewardUtils {
7+
event Delegated(
8+
address indexed user,
9+
address indexed delegate,
10+
uint256 shares,
11+
uint256 totalDelegatedTo
12+
);
13+
14+
event Undelegated(
15+
address indexed user,
16+
address indexed delegate,
17+
uint256 shares,
18+
uint256 totalDelegatedTo
19+
);
20+
21+
event UpdatedDelegation(
22+
address indexed user,
23+
address indexed delegate,
24+
bool delta,
25+
uint256 shares,
26+
uint256 totalDelegatedTo
27+
);
28+
29+
function delegateVotingPower(address delegate)
30+
external;
31+
32+
function undelegateVotingPower()
33+
external;
34+
35+
36+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./IStateUtils.sol";
5+
6+
interface IGetterUtils is IStateUtils {
7+
function userVotingPowerAt(
8+
address userAddress,
9+
uint256 _block
10+
)
11+
external
12+
view
13+
returns (uint256);
14+
15+
function userVotingPower(address userAddress)
16+
external
17+
view
18+
returns (uint256);
19+
20+
function totalSharesAt(uint256 _block)
21+
external
22+
view
23+
returns (uint256);
24+
25+
function totalShares()
26+
external
27+
view
28+
returns (uint256);
29+
30+
function userSharesAt(
31+
address userAddress,
32+
uint256 _block
33+
)
34+
external
35+
view
36+
returns (uint256);
37+
38+
function userShares(address userAddress)
39+
external
40+
view
41+
returns (uint256);
42+
43+
function userStake(address userAddress)
44+
external
45+
view
46+
returns (uint256);
47+
48+
function delegatedToUserAt(
49+
address userAddress,
50+
uint256 _block
51+
)
52+
external
53+
view
54+
returns (uint256);
55+
56+
function delegatedToUser(address userAddress)
57+
external
58+
view
59+
returns (uint256);
60+
61+
function userDelegateAt(
62+
address userAddress,
63+
uint256 _block
64+
)
65+
external
66+
view
67+
returns (address);
68+
69+
function userDelegate(address userAddress)
70+
external
71+
view
72+
returns (address);
73+
74+
function userLocked(address userAddress)
75+
external
76+
view
77+
returns (uint256);
78+
79+
function getUser(address userAddress)
80+
external
81+
view
82+
returns (
83+
uint256 unstaked,
84+
uint256 vesting,
85+
uint256 unstakeShares,
86+
uint256 unstakeAmount,
87+
uint256 unstakeScheduledFor,
88+
uint256 lastDelegationUpdateTimestamp,
89+
uint256 lastProposalTimestamp
90+
);
91+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./IGetterUtils.sol";
5+
6+
interface IRewardUtils is IGetterUtils {
7+
event MintedReward(
8+
uint256 indexed epochIndex,
9+
uint256 amount,
10+
uint256 newApr,
11+
uint256 totalStake
12+
);
13+
14+
function mintReward()
15+
external;
16+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./ITransferUtils.sol";
5+
6+
interface IStakeUtils is ITransferUtils{
7+
event Staked(
8+
address indexed user,
9+
uint256 amount,
10+
uint256 mintedShares,
11+
uint256 userUnstaked,
12+
uint256 userShares,
13+
uint256 totalShares,
14+
uint256 totalStake
15+
);
16+
17+
event ScheduledUnstake(
18+
address indexed user,
19+
uint256 amount,
20+
uint256 shares,
21+
uint256 scheduledFor,
22+
uint256 userShares
23+
);
24+
25+
event Unstaked(
26+
address indexed user,
27+
uint256 amount,
28+
uint256 userUnstaked,
29+
uint256 totalShares,
30+
uint256 totalStake
31+
);
32+
33+
function stake(uint256 amount)
34+
external;
35+
36+
function depositAndStake(uint256 amount)
37+
external;
38+
39+
function scheduleUnstake(uint256 amount)
40+
external;
41+
42+
function unstake(address userAddress)
43+
external
44+
returns (uint256);
45+
46+
function unstakeAndWithdraw()
47+
external;
48+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
interface IStateUtils {
5+
event SetDaoApps(
6+
address agentAppPrimary,
7+
address agentAppSecondary,
8+
address votingAppPrimary,
9+
address votingAppSecondary
10+
);
11+
12+
event SetClaimsManagerStatus(
13+
address indexed claimsManager,
14+
bool indexed status
15+
);
16+
17+
event SetStakeTarget(uint256 stakeTarget);
18+
19+
event SetMaxApr(uint256 maxApr);
20+
21+
event SetMinApr(uint256 minApr);
22+
23+
event SetUnstakeWaitPeriod(uint256 unstakeWaitPeriod);
24+
25+
event SetAprUpdateStep(uint256 aprUpdateStep);
26+
27+
event SetProposalVotingPowerThreshold(uint256 proposalVotingPowerThreshold);
28+
29+
event UpdatedLastProposalTimestamp(
30+
address indexed user,
31+
uint256 lastProposalTimestamp,
32+
address votingApp
33+
);
34+
35+
function setDaoApps(
36+
address _agentAppPrimary,
37+
address _agentAppSecondary,
38+
address _votingAppPrimary,
39+
address _votingAppSecondary
40+
)
41+
external;
42+
43+
function setClaimsManagerStatus(
44+
address claimsManager,
45+
bool status
46+
)
47+
external;
48+
49+
function setStakeTarget(uint256 _stakeTarget)
50+
external;
51+
52+
function setMaxApr(uint256 _maxApr)
53+
external;
54+
55+
function setMinApr(uint256 _minApr)
56+
external;
57+
58+
function setUnstakeWaitPeriod(uint256 _unstakeWaitPeriod)
59+
external;
60+
61+
function setAprUpdateStep(uint256 _aprUpdateStep)
62+
external;
63+
64+
function setProposalVotingPowerThreshold(uint256 _proposalVotingPowerThreshold)
65+
external;
66+
67+
function updateLastProposalTimestamp(address userAddress)
68+
external;
69+
70+
function isGenesisEpoch()
71+
external
72+
view
73+
returns (bool);
74+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./IClaimUtils.sol";
5+
6+
interface ITimelockUtils is IClaimUtils {
7+
event DepositedByTimelockManager(
8+
address indexed user,
9+
uint256 amount,
10+
uint256 userUnstaked
11+
);
12+
13+
event DepositedVesting(
14+
address indexed user,
15+
uint256 amount,
16+
uint256 start,
17+
uint256 end,
18+
uint256 userUnstaked,
19+
uint256 userVesting
20+
);
21+
22+
event VestedTimelock(
23+
address indexed user,
24+
uint256 amount,
25+
uint256 userVesting
26+
);
27+
28+
function deposit(
29+
address source,
30+
uint256 amount,
31+
address userAddress
32+
)
33+
external;
34+
35+
function depositWithVesting(
36+
address source,
37+
uint256 amount,
38+
address userAddress,
39+
uint256 releaseStart,
40+
uint256 releaseEnd
41+
)
42+
external;
43+
44+
function updateTimelockStatus(address userAddress)
45+
external;
46+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
//SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import "./IDelegationUtils.sol";
5+
6+
interface ITransferUtils is IDelegationUtils{
7+
event Deposited(
8+
address indexed user,
9+
uint256 amount,
10+
uint256 userUnstaked
11+
);
12+
13+
event Withdrawn(
14+
address indexed user,
15+
uint256 amount,
16+
uint256 userUnstaked
17+
);
18+
19+
event CalculatingUserLocked(
20+
address indexed user,
21+
uint256 nextIndEpoch,
22+
uint256 oldestLockedEpoch
23+
);
24+
25+
event CalculatedUserLocked(
26+
address indexed user,
27+
uint256 amount
28+
);
29+
30+
function depositRegular(uint256 amount)
31+
external;
32+
33+
function withdrawRegular(uint256 amount)
34+
external;
35+
36+
function precalculateUserLocked(
37+
address userAddress,
38+
uint256 noEpochsPerIteration
39+
)
40+
external
41+
returns (bool finished);
42+
43+
function withdrawPrecalculated(uint256 amount)
44+
external;
45+
}

0 commit comments

Comments
 (0)