Skip to content

Commit 2517dc3

Browse files
committed
add testnet scripts
1 parent 21a408a commit 2517dc3

2 files changed

Lines changed: 67 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.26;
3+
4+
import "forge-std/Script.sol";
5+
import "../src/TokenTreasuryUpgradeable.sol";
6+
import "../src/CAssetDTokenWrapUpgradeable.sol";
7+
import "../src/CAssetDTokenWrapFactoryUpgradeable.sol";
8+
import "../src/CAssetDTokenWrapRouterUpgradeable.sol";
9+
import "../mocks/MockERC20.sol";
10+
11+
contract DeploySystem is Script {
12+
function run() external {
13+
vm.startBroadcast();
14+
15+
address cAsset = address(0x37386064e05d89FA6F4c9c1d2C05AbD6388aD750);
16+
address dToken = address(0xff0000000000000000000000000000000000005B);
17+
// Step 2: Deploy logic implementations
18+
TokenTreasuryUpgradeable tokenTreasuryImpl = new TokenTreasuryUpgradeable();
19+
CAssetDTokenWrapUpgradeable wrapImpl = new CAssetDTokenWrapUpgradeable();
20+
console.log("TokenTreasury impl:", address(tokenTreasuryImpl));
21+
console.log("CAssetDTokenWrap impl:", address(wrapImpl));
22+
23+
// Step 3: Deploy router
24+
CAssetDTokenWrapRouterUpgradeable router = new CAssetDTokenWrapRouterUpgradeable();
25+
router.initialize(msg.sender);
26+
console.log("Router:", address(router));
27+
28+
// Step 4: Deploy factory (UUPS)
29+
CAssetDTokenWrapFactoryUpgradeable factory = new CAssetDTokenWrapFactoryUpgradeable();
30+
factory.initialize(address(tokenTreasuryImpl), address(wrapImpl), address(router), msg.sender);
31+
console.log("Factory:", address(factory));
32+
33+
// Step 5: Deploy a new wrap via factory
34+
address wrapAddr = factory.deployWrap(dToken, cAsset, 18, 18, 30, 20);
35+
console.log("Wrap instance:", wrapAddr);
36+
37+
// Step 6: Register with router
38+
router.registerWrapper(wrapAddr, dToken, cAsset);
39+
40+
address dTokenTreasury = CAssetDTokenWrapUpgradeable(wrapAddr).dTokenTreasury();
41+
console.log("LUSDC instance:", dTokenTreasury);
42+
43+
console.log("Setup complete!");
44+
45+
vm.stopBroadcast();
46+
}
47+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.26;
3+
4+
import "forge-std/Script.sol";
5+
import {TokenTreasuryUpgradeable} from "../src/TokenTreasuryUpgradeable.sol";
6+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
7+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8+
9+
10+
contract TestnetDeposit is Script {
11+
function run() external {
12+
vm.startBroadcast();
13+
address treasury = address(0x9D4F577fC58c885DB6B5f5A1a8fFdCECcAB5C40a);
14+
address dToken = address(0xff0000000000000000000000000000000000005B);
15+
16+
IERC20(dToken).approve(treasury, 1_000_000 ether);
17+
TokenTreasuryUpgradeable(treasury).deposit(1_000_000 ether);
18+
vm.stopBroadcast();
19+
}
20+
}

0 commit comments

Comments
 (0)