Skip to content

Commit 05958e3

Browse files
authored
Merge pull request #51 from wildcat-finance/update-fixed-endtime-on-closure
Force useOnCloseMarket enabled for fixed duration markets
2 parents e7afdc9 + 1732857 commit 05958e3

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

src/access/FixedTermLoanHooks.sol

+8-1
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ contract FixedTermLoanHooks is MarketConstraintHooks {
153153
});
154154
HooksConfig requiredFlags = EmptyHooksConfig
155155
.setFlag(Bit_Enabled_SetAnnualInterestAndReserveRatioBips)
156+
.setFlag(Bit_Enabled_CloseMarket)
156157
.setFlag(Bit_Enabled_QueueWithdrawal);
157158
config = encodeHooksDeploymentConfig(optionalFlags, requiredFlags);
158159
}
@@ -943,7 +944,13 @@ contract FixedTermLoanHooks is MarketConstraintHooks {
943944
function onCloseMarket(
944945
MarketState calldata /* state */,
945946
bytes calldata /* hooksData */
946-
) external override {}
947+
) external override {
948+
HookedMarket memory market = _hookedMarkets[msg.sender];
949+
if (!market.isHooked) revert NotHookedMarket();
950+
if (market.fixedTermEndTime > block.timestamp) {
951+
_hookedMarkets[msg.sender].fixedTermEndTime = uint32(block.timestamp);
952+
}
953+
}
947954

948955
function onNukeFromOrbit(
949956
address /* lender */,

test/access/FixedTermLoanHooks.t.sol

+6-4
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ contract FixedTermLoanHooksTest is Test, Assertions, Prankster {
8585
useOnTransfer: true,
8686
useOnBorrow: false,
8787
useOnRepay: false,
88-
useOnCloseMarket: false,
88+
useOnCloseMarket: true,
8989
useOnNukeFromOrbit: false,
9090
useOnSetMaxTotalSupply: false,
9191
useOnSetAnnualInterestAndReserveRatioBips: true,
@@ -136,7 +136,7 @@ contract FixedTermLoanHooksTest is Test, Assertions, Prankster {
136136
useOnTransfer: true,
137137
useOnBorrow: false,
138138
useOnRepay: false,
139-
useOnCloseMarket: false,
139+
useOnCloseMarket: true,
140140
useOnNukeFromOrbit: false,
141141
useOnSetMaxTotalSupply: false,
142142
useOnSetAnnualInterestAndReserveRatioBips: true,
@@ -188,6 +188,7 @@ contract FixedTermLoanHooksTest is Test, Assertions, Prankster {
188188
});
189189
expectedConfig.required.useOnSetAnnualInterestAndReserveRatioBips = true;
190190
expectedConfig.required.useOnQueueWithdrawal = true;
191+
expectedConfig.required.useOnCloseMarket = true;
191192
assertEq(hooks.config(), expectedConfig, 'config.');
192193
}
193194

@@ -205,7 +206,7 @@ contract FixedTermLoanHooksTest is Test, Assertions, Prankster {
205206
useOnExecuteWithdrawal: false,
206207
useOnBorrow: false,
207208
useOnRepay: false,
208-
useOnCloseMarket: false,
209+
useOnCloseMarket: true,
209210
useOnNukeFromOrbit: false,
210211
useOnSetMaxTotalSupply: false,
211212
useOnSetAnnualInterestAndReserveRatioBips: false,
@@ -214,6 +215,7 @@ contract FixedTermLoanHooksTest is Test, Assertions, Prankster {
214215
StandardHooksConfig memory expectedConfig;
215216
expectedConfig.hooksAddress = address(hooks);
216217
expectedConfig.useOnQueueWithdrawal = true;
218+
expectedConfig.useOnCloseMarket = true;
217219
expectedConfig.useOnTransfer = useOnTransfer || useOnQueueWithdrawal;
218220
expectedConfig.useOnDeposit = useOnDeposit || useOnQueueWithdrawal;
219221
expectedConfig.useOnSetAnnualInterestAndReserveRatioBips = true;
@@ -919,7 +921,7 @@ contract FixedTermLoanHooksTest is Test, Assertions, Prankster {
919921
useOnTransfer: true,
920922
useOnBorrow: false,
921923
useOnRepay: false,
922-
useOnCloseMarket: false,
924+
useOnCloseMarket: true,
923925
useOnNukeFromOrbit: false,
924926
useOnSetMaxTotalSupply: false,
925927
useOnSetAnnualInterestAndReserveRatioBips: true,

0 commit comments

Comments
 (0)