Skip to content

Commit a8999b9

Browse files
committed
Remove USDF from VIP
1 parent 3a06263 commit a8999b9

14 files changed

+351
-982
lines changed

simulations/vip-515/bsctestnet-addendum.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

simulations/vip-515/bscmainnet.ts renamed to simulations/vip-520/bscmainnet.ts

Lines changed: 12 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,13 @@ import { checkInterestRate } from "src/vip-framework/checks/interestRateModel";
1010

1111
import {
1212
Actions,
13-
CONVERSION_INCENTIVE,
1413
PROTOCOL_SHARE_RESERVE,
15-
USDFMarketSpec,
1614
asBNBMarketSpec,
1715
convertAmountToVTokens,
18-
converterBaseAssets,
19-
vip515,
20-
} from "../../vips/vip-515/bscmainnet";
16+
vip520,
17+
} from "../../vips/vip-520/bscmainnet";
2118
import VTOKEN_ABI from "./abi/LegacyPoolVToken.json";
22-
import MOCKTOKEN_ABI from "./abi/MockToken.json";
2319
import RESILIENT_ORACLE_ABI from "./abi/ResilientOracle.json";
24-
import SINGLE_TOKEN_CONVERTER_ABI from "./abi/SingleTokenConverter.json";
2520
import ASBNB_ABI from "./abi/asBNB.json";
2621
import COMPTROLLER_ABI from "./abi/comptroller.json";
2722

@@ -37,17 +32,13 @@ forking(51547465, async () => {
3732
let resilientOracle: Contract;
3833
let asBNB: Contract;
3934
let vasBNB: Contract;
40-
let usdf: Contract;
41-
let vUSDF: Contract;
4235

4336
const provider = ethers.provider;
4437

4538
before(async () => {
4639
comptroller = new ethers.Contract(asBNBMarketSpec.vToken.comptroller, COMPTROLLER_ABI, provider);
4740
asBNB = new ethers.Contract(asBNBMarketSpec.vToken.underlying.address, ASBNB_ABI, provider);
4841
vasBNB = new ethers.Contract(asBNBMarketSpec.vToken.address, VTOKEN_ABI, provider);
49-
usdf = new ethers.Contract(USDFMarketSpec.vToken.underlying.address, MOCKTOKEN_ABI, provider);
50-
vUSDF = new ethers.Contract(USDFMarketSpec.vToken.address, VTOKEN_ABI, provider);
5142
resilientOracle = new ethers.Contract(bscmainnet.RESILIENT_ORACLE, RESILIENT_ORACLE_ABI, ethers.provider);
5243

5344
await setMaxStalePeriodInChainlinkOracle(
@@ -73,46 +64,18 @@ forking(51547465, async () => {
7364
);
7465
expect(borrowPaused).to.equal(false);
7566
});
76-
77-
it("check USDF market not listed", async () => {
78-
const market = await comptroller.markets(USDFMarketSpec.vToken.underlying.address);
79-
expect(market.isListed).to.equal(false);
80-
});
81-
82-
it("check USDF market not paused", async () => {
83-
const borrowPaused = await comptroller.actionPaused(
84-
USDFMarketSpec.vToken.underlying.address,
85-
Actions.ENTER_MARKET,
86-
);
87-
expect(borrowPaused).to.equal(false);
88-
});
8967
});
9068

91-
testVip(
92-
"VIP-515",
93-
await vip515({
94-
maxStalePeriod: 30 * 24 * 60 * 60, // 30 days in seconds
95-
}),
96-
{
97-
callbackAfterExecution: async txResponse => {
98-
const numberOfNewMarkets = 2;
99-
100-
await expectEvents(
101-
txResponse,
102-
[COMPTROLLER_ABI, VTOKEN_ABI],
103-
["MarketListed", "NewSupplyCap", "NewCollateralFactor", "NewReserveFactor", "NewProtocolShareReserve"],
104-
[
105-
numberOfNewMarkets,
106-
numberOfNewMarkets,
107-
numberOfNewMarkets,
108-
numberOfNewMarkets,
109-
numberOfNewMarkets,
110-
numberOfNewMarkets,
111-
],
112-
);
113-
},
69+
testVip("vip-520", await vip520(), {
70+
callbackAfterExecution: async txResponse => {
71+
await expectEvents(
72+
txResponse,
73+
[COMPTROLLER_ABI, VTOKEN_ABI],
74+
["MarketListed", "NewSupplyCap", "NewCollateralFactor", "NewReserveFactor", "NewProtocolShareReserve"],
75+
[1, 1, 1, 1, 1, 1],
76+
);
11477
},
115-
);
78+
});
11679

11780
describe("Post-VIP behavior", async () => {
11881
checkInterestRate(RATE_MODEL, "asBNB", {
@@ -122,13 +85,6 @@ forking(51547465, async () => {
12285
kink: asBNBMarketSpec.interestRateModel.kink,
12386
});
12487

125-
checkInterestRate(RATE_MODEL, "vUSDF", {
126-
base: USDFMarketSpec.interestRateModel.baseRatePerYear,
127-
multiplier: USDFMarketSpec.interestRateModel.multiplierPerYear,
128-
jump: USDFMarketSpec.interestRateModel.jumpMultiplierPerYear,
129-
kink: USDFMarketSpec.interestRateModel.kink,
130-
});
131-
13288
checkVToken(asBNBMarketSpec.vToken.address, {
13389
name: "Venus asBNB",
13490
symbol: "vasBNB",
@@ -137,84 +93,44 @@ forking(51547465, async () => {
13793
exchangeRate: asBNBMarketSpec.vToken.exchangeRate,
13894
comptroller: asBNBMarketSpec.vToken.comptroller,
13995
});
140-
141-
checkVToken(USDFMarketSpec.vToken.address, {
142-
name: "Venus USDF",
143-
symbol: "vUSDF",
144-
decimals: 8,
145-
underlying: USDFMarketSpec.vToken.underlying.address,
146-
exchangeRate: USDFMarketSpec.vToken.exchangeRate,
147-
comptroller: USDFMarketSpec.vToken.comptroller,
148-
});
149-
15096
checkRiskParameters(asBNBMarketSpec.vToken.address, asBNBMarketSpec.vToken, asBNBMarketSpec.riskParameters);
151-
checkRiskParameters(USDFMarketSpec.vToken.address, USDFMarketSpec.vToken, USDFMarketSpec.riskParameters);
15297

153-
it("check price USDF", async () => {
154-
const expectedPrice = "1000174500000000000"; // 1.0001745 USD
155-
expect(await resilientOracle.getPrice(USDFMarketSpec.vToken.underlying.address)).to.equal(expectedPrice);
156-
expect(await resilientOracle.getUnderlyingPrice(USDFMarketSpec.vToken.address)).to.equal(expectedPrice);
157-
});
158-
159-
it("markets have correct owner", async () => {
98+
it("market have correct owner", async () => {
16099
expect(await vasBNB.admin()).to.equal(bscmainnet.NORMAL_TIMELOCK);
161-
expect(await vUSDF.admin()).to.equal(bscmainnet.NORMAL_TIMELOCK);
162100
});
163101

164102
it("markets have correct ACM", async () => {
165103
expect(await vasBNB.accessControlManager()).to.equal(bscmainnet.ACCESS_CONTROL_MANAGER);
166-
expect(await vUSDF.accessControlManager()).to.equal(bscmainnet.ACCESS_CONTROL_MANAGER);
167104
});
168105

169106
it("markets should have correct protocol share reserve", async () => {
170107
expect(await vasBNB.protocolShareReserve()).to.equal(PROTOCOL_SHARE_RESERVE);
171-
expect(await vUSDF.protocolShareReserve()).to.equal(PROTOCOL_SHARE_RESERVE);
172108
});
173109

174110
it("markets should have correct total supply", async () => {
175111
const vasBNBSupply = await vasBNB.totalSupply();
176-
const vUSDFSupply = await vUSDF.totalSupply();
177112

178113
expect(vasBNBSupply).to.equal(
179114
convertAmountToVTokens(asBNBMarketSpec.initialSupply.amount, asBNBMarketSpec.vToken.exchangeRate),
180115
);
181-
expect(vUSDFSupply).to.equal(
182-
convertAmountToVTokens(USDFMarketSpec.initialSupply.amount, USDFMarketSpec.vToken.exchangeRate),
183-
);
184116
});
185117

186118
it("markets should have balance of underlying", async () => {
187119
const asBNBBalance = await asBNB.balanceOf(vasBNB.address);
188-
const usdfBalance = await usdf.balanceOf(vUSDF.address);
189120

190121
expect(asBNBBalance).to.equal(asBNBMarketSpec.initialSupply.amount);
191-
expect(usdfBalance).to.equal(USDFMarketSpec.initialSupply.amount);
192122
});
193123

194124
it("should burn vTokens", async () => {
195125
const vasBNBBalanceBurned = await vasBNB.balanceOf(ethers.constants.AddressZero);
196-
const vUSDFBalanceBurned = await vUSDF.balanceOf(ethers.constants.AddressZero);
197126

198127
expect(vasBNBBalanceBurned).to.equal(asBNBMarketSpec.initialSupply.vTokensToBurn);
199-
expect(vUSDFBalanceBurned).to.equal(USDFMarketSpec.initialSupply.vTokensToBurn);
200-
});
201-
202-
it("should transfer vTokens to receiver", async () => {
203-
const vUSDFReceiverBalance = await vUSDF.balanceOf(USDFMarketSpec.initialSupply.vTokenReceiver);
204-
205-
expect(vUSDFReceiverBalance).to.equal(
206-
convertAmountToVTokens(USDFMarketSpec.initialSupply.amount, USDFMarketSpec.vToken.exchangeRate).sub(
207-
USDFMarketSpec.initialSupply.vTokensToBurn,
208-
),
209-
);
210128
});
211129

212130
it("should not leave any vTokens in the timelock", async () => {
213131
const vasBNBTimelockBalance = await vasBNB.balanceOf(bscmainnet.NORMAL_TIMELOCK);
214-
const vUSDFTimelockBalance = await vUSDF.balanceOf(bscmainnet.NORMAL_TIMELOCK);
215132

216133
expect(vasBNBTimelockBalance).to.equal(0);
217-
expect(vUSDFTimelockBalance).to.equal(0);
218134
});
219135
});
220136

@@ -223,18 +139,4 @@ forking(51547465, async () => {
223139
expect(await comptroller.actionPaused(asBNBMarketSpec.vToken.address, Actions.BORROW)).to.equal(true);
224140
});
225141
});
226-
227-
describe("Converters", () => {
228-
for (const [converterAddress, baseAsset] of Object.entries(converterBaseAssets)) {
229-
const converterContract = new ethers.Contract(converterAddress, SINGLE_TOKEN_CONVERTER_ABI, ethers.provider);
230-
231-
it(`should set ${CONVERSION_INCENTIVE} as incentive in converter ${converterAddress}, for asset USDF`, async () => {
232-
const result = await converterContract.conversionConfigurations(
233-
baseAsset,
234-
USDFMarketSpec.vToken.underlying.address,
235-
);
236-
expect(result.incentive).to.equal(CONVERSION_INCENTIVE);
237-
});
238-
}
239-
});
240142
});

0 commit comments

Comments
 (0)