Skip to content

Commit b4fbadb

Browse files
committed
scenarios
1 parent 8f2338e commit b4fbadb

File tree

5 files changed

+81
-51
lines changed

5 files changed

+81
-51
lines changed

dev-setup.sh renamed to deploy-scenario.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
set -e
44

5+
SCENARIO=$1
6+
57
rm -rf dev-ctx/
68
mkdir -p dev-ctx/{addresses,labels,priceapi}/31337
79

8-
forge script --rpc-url http://127.0.0.1:8545 script/DeployDev.sol --broadcast --code-size-limit 100000
10+
forge script --rpc-url http://127.0.0.1:8545 "script/scenarios/$SCENARIO.s.sol" --broadcast --code-size-limit 100000
911
cast rpc evm_increaseTime 86400
1012
cast rpc evm_mine
1113

run.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
set -e
44

5+
SCENARIO=${1:-EulerSwapBasic}
6+
57
anvil --code-size-limit 100000 &
68
sleep 1
79

8-
bash ./dev-setup.sh
10+
bash ./deploy-scenario.sh "$SCENARIO"
911

10-
echo -------------
12+
echo -------------------------------
1113
echo DEVLAND READY
12-
echo -------------
14+
echo SCENARIO = $SCENARIO
15+
echo -------------------------------
1316

1417
wait

script/DeployDev.sol renamed to script/DeployScenario.s.sol

Lines changed: 16 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ struct Asset {
5858
uint256 priceNum;
5959
}
6060

61-
contract DeployDev is Script {
61+
contract DeployScenario is Script {
6262
//////// Users
6363

6464
uint256 user0PK = 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80;
@@ -140,7 +140,9 @@ contract DeployDev is Script {
140140

141141
vm.stopBroadcast();
142142

143-
setupUsers();
143+
addLiquidity();
144+
145+
setup();
144146
}
145147

146148
function deployEulerSystem() internal {
@@ -206,7 +208,7 @@ contract DeployDev is Script {
206208
return (TestERC20(a.asset), IEVault(a.vault));
207209
}
208210

209-
function deployAssets() internal {
211+
function deployAssets() internal virtual {
210212
(assetWETH, eWETH) = genAsset("WETH", 18, "2865", 2865e18);
211213
(assetwstETH, ewstETH) = genAsset("wstETH", 18, "3055", 3055e18);
212214
(assetUSDC, eUSDC) = genAsset("USDC", 6, "1.000142", 1e18 * 1e12);
@@ -276,7 +278,7 @@ contract DeployDev is Script {
276278
return address(uint160(user) ^ account);
277279
}
278280

279-
function setupUsers() internal {
281+
function addLiquidity() internal virtual {
280282
// user2 is passive depositor
281283
vm.startBroadcast(user2PK);
282284

@@ -302,49 +304,16 @@ contract DeployDev is Script {
302304
eUSDZ.deposit(1000000e6, user2);
303305

304306
vm.stopBroadcast();
307+
}
305308

306-
// user0 is going to setup a position
307-
vm.startBroadcast(user0PK);
308-
309-
evc.enableCollateral(user0, address(eUSDC));
310-
evc.enableCollateral(user0, address(eUSDT));
311-
312-
assetUSDC.mint(user0, 10000e6);
313-
assetUSDC.approve(address(eUSDC), type(uint256).max);
314-
eUSDC.deposit(10000e6, user0);
315-
316-
assetUSDT.mint(user0, 30000e6);
317-
assetUSDT.approve(address(eUSDT), type(uint256).max);
318-
eUSDT.deposit(30000e6, user0);
319-
320-
evc.enableController(user0, address(eWETH));
321-
eWETH.borrow(10e18, user0);
322-
323-
324-
/*
325-
// Deposit some USDT shares to user0 subaccount 1
326-
assetUSDT.mint(user2, 10000e6);
327-
assetUSDT.approve(address(eUSDT), type(uint256).max);
328-
eUSDT.deposit(10000e6, getSubaccount(user0, 1));
329-
330-
//assetUSDZ.mint(user0, 10000e6);
331-
//assetUSDZ.approve(address(eUSDZ), type(uint256).max);
332-
//eUSDZ.deposit(10000e6, getSubaccount(user0, 1));
333-
*/
334-
335-
// Give a bunch of extra spending cash
336-
337-
assetUSDC.mint(user0, 1000000e6);
338-
assetUSDT.mint(user0, 1000000e6);
339-
assetWETH.mint(user0, 1000e18);
340-
assetwstETH.mint(user0, 1000e18);
341-
assetDAI.mint(user0, 1000000e18);
342-
343-
//assetUSDC.approve(address(eulerSwapPeriphery), type(uint256).max);
344-
//assetUSDT.approve(address(eulerSwapPeriphery), type(uint256).max);
345-
//assetWETH.approve(address(eulerSwapPeriphery), type(uint256).max);
346-
//assetDAI.approve(address(eulerSwapPeriphery), type(uint256).max);
347-
348-
vm.stopBroadcast();
309+
function giveLotsOfCash(address user) internal virtual {
310+
assetUSDC.mint(user, 1000000e6);
311+
assetUSDT.mint(user, 1000000e6);
312+
assetWETH.mint(user, 1000e18);
313+
assetwstETH.mint(user, 1000e18);
314+
assetDAI.mint(user, 1000000e18);
315+
assetUSDZ.mint(user, 1000000e18);
349316
}
317+
318+
function setup() internal virtual {}
350319
}

script/scenarios/EulerSwapBasic.s.sol

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// SPDX-License-Identifier: UNLICENSED
2+
pragma solidity ^0.8.27;
3+
4+
import {DeployScenario} from "../DeployScenario.s.sol";
5+
6+
contract EulerSwapBasic is DeployScenario {
7+
function setup() internal virtual override {
8+
vm.startBroadcast(user0PK);
9+
10+
giveLotsOfCash(user0);
11+
12+
// Deposit some USDC and USDT
13+
14+
assetUSDC.approve(address(eUSDC), type(uint256).max);
15+
eUSDC.deposit(20000e6, user0);
16+
17+
assetUSDT.approve(address(eUSDT), type(uint256).max);
18+
eUSDT.deposit(10000e6, user0);
19+
20+
// Some extra USDT to subaccount 1
21+
assetUSDT.approve(address(eUSDT), type(uint256).max);
22+
eUSDT.deposit(5000e6, getSubaccount(user0, 1));
23+
24+
vm.stopBroadcast();
25+
}
26+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// SPDX-License-Identifier: UNLICENSED
2+
pragma solidity ^0.8.27;
3+
4+
import {DeployScenario} from "../DeployScenario.s.sol";
5+
6+
contract EulerSwapExternalDebt is DeployScenario {
7+
function setup() internal virtual override {
8+
giveLotsOfCash(user0);
9+
10+
// user0 supplies USDC and USDT, and borrows WETH
11+
12+
vm.startBroadcast(user0PK);
13+
14+
evc.enableCollateral(user0, address(eUSDC));
15+
evc.enableCollateral(user0, address(eUSDT));
16+
17+
assetUSDC.mint(user0, 10000e6);
18+
assetUSDC.approve(address(eUSDC), type(uint256).max);
19+
eUSDC.deposit(10000e6, user0);
20+
21+
assetUSDT.mint(user0, 30000e6);
22+
assetUSDT.approve(address(eUSDT), type(uint256).max);
23+
eUSDT.deposit(30000e6, user0);
24+
25+
evc.enableController(user0, address(eWETH));
26+
eWETH.borrow(10e18, user0);
27+
28+
vm.stopBroadcast();
29+
}
30+
}

0 commit comments

Comments
 (0)