Skip to content

Commit

Permalink
chore: Add constructor args to SM 1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
superduck35 committed Oct 23, 2021
1 parent 5de8202 commit c564a64
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 20 deletions.
27 changes: 19 additions & 8 deletions contracts/savings/SavingsManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import { YieldValidator } from "../shared/YieldValidator.sol";
* @author mStable
* @notice Savings Manager collects interest from mAssets and sends them to the
* corresponding Savings Contract, performing some validation in the process.
* @dev VERSION: 1.3
* DATE: 2020-12-09
* @dev VERSION: 1.4
* DATE: 2021-10-15
*/
contract SavingsManager is ISavingsManager, PausableModule {
using StableMath for uint256;
Expand Down Expand Up @@ -80,13 +80,24 @@ contract SavingsManager is ISavingsManager, PausableModule {

constructor(
address _nexus,
address _mUSD,
address _savingsContract,
address[] memory _mAssets,
address[] memory _savingsContracts,
address[] memory _revenueRecipients,
uint256 _savingsRate,
uint256 _duration
) PausableModule(_nexus) {
_updateSavingsContract(_mUSD, _savingsContract);
emit SavingsContractAdded(_mUSD, _savingsContract);
uint256 len = _mAssets.length;
require(
_savingsContracts.length == len && _revenueRecipients.length == len,
"Invalid inputs"
);
for (uint256 i = 0; i < len; i++) {
_updateSavingsContract(_mAssets[i], _savingsContracts[i]);
emit SavingsContractAdded(_mAssets[i], _savingsContracts[i]);

revenueRecipients[_mAssets[i]] = IRevenueRecipient(_revenueRecipients[i]);
emit RevenueRecipientSet(_mAssets[i], _revenueRecipients[i]);
}
savingsRate = _savingsRate;
DURATION = _duration;
}
Expand Down Expand Up @@ -169,8 +180,8 @@ contract SavingsManager is ISavingsManager, PausableModule {
* @param _savingsRate Rate of savings sent to SavingsContract (100% = 1e18)
*/
function setSavingsRate(uint256 _savingsRate) external onlyGovernor {
// Greater than 60% upto 100%
require(_savingsRate >= 6e17 && _savingsRate <= 1e18, "Must be a valid rate");
// Greater than 25% up to 100%
require(_savingsRate >= 25e16 && _savingsRate <= 1e18, "Must be a valid rate");
savingsRate = _savingsRate;
emit SavingsRateChanged(_savingsRate);
}
Expand Down
5 changes: 3 additions & 2 deletions test/masset/liquidator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,9 @@ describe("Liquidator", () => {
await save.initialize(sa.default.address, "Savings Credit", "imUSD")
savings = await new SavingsManager__factory(sa.default.signer).deploy(
nexus.address,
mUSD.address,
save.address,
[mUSD.address],
[save.address],
[ZERO_ADDRESS],
simpleToExactAmount(1, 18),
ONE_WEEK,
)
Expand Down
5 changes: 3 additions & 2 deletions test/polygon/pliquidator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,9 @@ describe("Liquidator", () => {
await save.initialize(sa.default.address, "Savings Credit", "imUSD")
savings = await new SavingsManager__factory(sa.default.signer).deploy(
nexus.address,
mUSD.address,
save.address,
[mUSD.address],
[save.address],
[ZERO_ADDRESS],
simpleToExactAmount(1, 18),
ONE_WEEK,
)
Expand Down
20 changes: 12 additions & 8 deletions test/savings/savings-manager.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ describe("SavingsManager", async () => {

savingsManager = await new SavingsManager__factory(sa.default.signer).deploy(
nexus.address,
mUSD.address,
savingsContract.address,
[mUSD.address],
[savingsContract.address],
[ZERO_ADDRESS],
simpleToExactAmount(1),
ONE_WEEK,
)
Expand Down Expand Up @@ -89,8 +90,9 @@ describe("SavingsManager", async () => {
await expect(
new SavingsManager__factory(sa.default.signer).deploy(
ZERO_ADDRESS,
mUSD.address,
savingsContract.address,
[mUSD.address],
[savingsContract.address],
[ZERO_ADDRESS],
simpleToExactAmount(1),
ONE_WEEK,
),
Expand All @@ -101,8 +103,9 @@ describe("SavingsManager", async () => {
await expect(
new SavingsManager__factory(sa.default.signer).deploy(
nexus.address,
ZERO_ADDRESS,
savingsContract.address,
[ZERO_ADDRESS],
[savingsContract.address],
[ZERO_ADDRESS],
simpleToExactAmount(1),
ONE_WEEK,
),
Expand All @@ -113,8 +116,9 @@ describe("SavingsManager", async () => {
await expect(
new SavingsManager__factory(sa.default.signer).deploy(
nexus.address,
mUSD.address,
ZERO_ADDRESS,
[mUSD.address],
[ZERO_ADDRESS],
[ZERO_ADDRESS],
simpleToExactAmount(1),
ONE_WEEK,
),
Expand Down

0 comments on commit c564a64

Please sign in to comment.