@@ -3,13 +3,8 @@ pragma solidity ^0.8.23;
33
44import { Test } from "forge-std/Test.sol " ;
55import { console } from "forge-std/console.sol " ;
6- import {
7- SparkYieldBackend
8- } from "../../../contracts/superfluid/SparkYieldBackend.sol " ;
9- import {
10- IERC20 ,
11- ISuperfluid
12- } from "../../../contracts/interfaces/superfluid/ISuperfluid.sol " ;
6+ import { ERC4626YieldBackend } from "../../../contracts/superfluid/ERC4626YieldBackend.sol " ;
7+ import { IERC20 , ISuperfluid } from "../../../contracts/interfaces/superfluid/ISuperfluid.sol " ;
138import { SuperToken } from "../../../contracts/superfluid/SuperToken.sol " ;
149import { IERC4626 } from "@openzeppelin-v5/contracts/interfaces/IERC4626.sol " ;
1510
@@ -34,9 +29,8 @@ contract SparkYieldBackendForkTest is Test {
3429 address internal constant USDCx = 0xD04383398dD2426297da660F9CCA3d439AF9ce1b ;
3530 address internal constant USDC = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 ;
3631
37-
3832 SuperToken internal superToken;
39- SparkYieldBackend internal sparkBackend;
33+ ERC4626YieldBackend internal sparkBackend;
4034 IERC20 internal underlyingToken;
4135 IERC4626 internal vault;
4236
@@ -49,22 +43,15 @@ contract SparkYieldBackendForkTest is Test {
4943
5044 superToken = SuperToken (USDCx);
5145
52- sparkBackend = new SparkYieldBackend (vault, SURPLUS_RECEIVER);
46+ sparkBackend = new ERC4626YieldBackend (vault, SURPLUS_RECEIVER);
5347
54- assertEq (
55- address (sparkBackend.ASSET_TOKEN ()),
56- USDC,
57- "Asset token mismatch "
58- );
48+ assertEq (address (sparkBackend.ASSET_TOKEN ()), USDC, "Asset token mismatch " );
5949 assertEq (address (sparkBackend.VAULT ()), SPARK_VAULT, "Vault mismatch " );
6050
6151 // upgrade SuperToken to new logic (mocking upgrade to enable features if needed,
6252 // essentially ensuring we have a fresh state or compatible logic)
6353 // Note: SuperToken on Base might already be up to date, but we re-deploy logic for safety in test
64- SuperToken newSuperTokenLogic = new SuperToken (
65- ISuperfluid (superToken.getHost ()),
66- superToken.POOL_ADMIN_NFT ()
67- );
54+ SuperToken newSuperTokenLogic = new SuperToken (ISuperfluid (superToken.getHost ()), superToken.POOL_ADMIN_NFT ());
6855 vm.startPrank (address (superToken.getHost ()));
6956 superToken.updateCode (address (newSuperTokenLogic));
7057 vm.stopPrank ();
@@ -90,13 +77,9 @@ contract SparkYieldBackendForkTest is Test {
9077 // underlyingBalance + vaultAssets >= superToken.supply()
9178 uint256 underlyingBalance = IERC20 (USDC).balanceOf (address (superToken));
9279 // vault balance is in shares, need to convert to assets
93- uint256 vaultAssets = vault.convertToAssets (
94- vault.balanceOf (address (superToken))
95- );
80+ uint256 vaultAssets = vault.convertToAssets (vault.balanceOf (address (superToken)));
9681
97- (uint256 superTokenNormalizedSupply , ) = superToken.toUnderlyingAmount (
98- superToken.totalSupply ()
99- );
82+ (uint256 superTokenNormalizedSupply ,) = superToken.toUnderlyingAmount (superToken.totalSupply ());
10083
10184 // We use approx because of potential rounding/yield accruing differently per block
10285 // But assets should be >= supply
@@ -108,26 +91,14 @@ contract SparkYieldBackendForkTest is Test {
10891 }
10992
11093 function testSparkBackendDeployment () public view {
111- assertEq (
112- address (sparkBackend.ASSET_TOKEN ()),
113- USDC,
114- "Asset token should be USDC "
115- );
116- assertEq (
117- address (sparkBackend.VAULT ()),
118- SPARK_VAULT,
119- "Vault address should match "
120- );
94+ assertEq (address (sparkBackend.ASSET_TOKEN ()), USDC, "Asset token should be USDC " );
95+ assertEq (address (sparkBackend.VAULT ()), SPARK_VAULT, "Vault address should match " );
12196 }
12297
12398 function testEnableYieldBackend () public {
12499 _enableYieldBackend ();
125100
126- assertEq (
127- address (superToken.getYieldBackend ()),
128- address (sparkBackend),
129- "Yield backend mismatch "
130- );
101+ assertEq (address (superToken.getYieldBackend ()), address (sparkBackend), "Yield backend mismatch " );
131102
132103 // For new deposits, we need to upgrade
133104 uint256 amount = 100 * 1e18 ;
@@ -136,18 +107,10 @@ contract SparkYieldBackendForkTest is Test {
136107 vm.stopPrank ();
137108
138109 // the SuperToken should now have a zero USDC balance (all deposited)
139- assertEq (
140- IERC20 (USDC).balanceOf (address (superToken)),
141- 0 ,
142- "USDC balance should be zero "
143- );
110+ assertEq (IERC20 (USDC).balanceOf (address (superToken)), 0 , "USDC balance should be zero " );
144111
145112 // And non-zero vault balance
146- assertGt (
147- vault.balanceOf (address (superToken)),
148- 0 ,
149- "Vault share balance should be non-zero "
150- );
113+ assertGt (vault.balanceOf (address (superToken)), 0 , "Vault share balance should be non-zero " );
151114
152115 _verifyInvariants ();
153116 }
@@ -163,23 +126,11 @@ contract SparkYieldBackendForkTest is Test {
163126 vm.startPrank (ADMIN);
164127 superToken.disableYieldBackend ();
165128 vm.stopPrank ();
166- assertEq (
167- address (superToken.getYieldBackend ()),
168- address (0 ),
169- "Yield backend mismatch "
170- );
129+ assertEq (address (superToken.getYieldBackend ()), address (0 ), "Yield backend mismatch " );
171130
172131 // the SuperToken should now have a non-zero USDC balance and a zero vault balance
173- assertGt (
174- IERC20 (USDC).balanceOf (address (superToken)),
175- 0 ,
176- "USDC balance should be non-zero "
177- );
178- assertEq (
179- vault.balanceOf (address (superToken)),
180- 0 ,
181- "Vault balance should be zero "
182- );
132+ assertGt (IERC20 (USDC).balanceOf (address (superToken)), 0 , "USDC balance should be non-zero " );
133+ assertEq (vault.balanceOf (address (superToken)), 0 , "Vault balance should be zero " );
183134
184135 _verifyInvariants ();
185136 }
@@ -196,23 +147,15 @@ contract SparkYieldBackendForkTest is Test {
196147
197148 uint256 vaultSharesAfter = vault.balanceOf (address (superToken));
198149
199- assertGt (
200- vaultSharesAfter,
201- vaultSharesBefore,
202- "Vault shares should increase "
203- );
150+ assertGt (vaultSharesAfter, vaultSharesBefore, "Vault shares should increase " );
204151
205152 // downgrade
206153 vm.startPrank (ALICE);
207154 superToken.downgrade (amount);
208155 vm.stopPrank ();
209156
210157 uint256 vaultSharesFinal = vault.balanceOf (address (superToken));
211- assertLt (
212- vaultSharesFinal,
213- vaultSharesAfter,
214- "Vault shares should decrease "
215- );
158+ assertLt (vaultSharesFinal, vaultSharesAfter, "Vault shares should decrease " );
216159
217160 _verifyInvariants ();
218161 }
@@ -224,9 +167,7 @@ contract SparkYieldBackendForkTest is Test {
224167
225168 _enableYieldBackend ();
226169
227- uint256 receiverBalanceBefore = IERC20 (USDC).balanceOf (
228- SURPLUS_RECEIVER
229- );
170+ uint256 receiverBalanceBefore = IERC20 (USDC).balanceOf (SURPLUS_RECEIVER);
230171
231172 vm.startPrank (ADMIN);
232173 superToken.withdrawSurplusFromYieldBackend ();
@@ -238,11 +179,7 @@ contract SparkYieldBackendForkTest is Test {
238179 console.log ("Receiver balance after " , receiverBalanceAfter);
239180 console.log ("Diff " , receiverBalanceAfter - receiverBalanceBefore);
240181
241- assertGt (
242- receiverBalanceAfter,
243- receiverBalanceBefore,
244- "Surplus should be withdrawn to receiver "
245- );
182+ assertGt (receiverBalanceAfter, receiverBalanceBefore, "Surplus should be withdrawn to receiver " );
246183 _verifyInvariants ();
247184 }
248185}
0 commit comments