From cbb272153fb1d50b0d2ed6d00e048bffc8f4b657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Claudio=20Nale?= Date: Mon, 24 Jun 2024 18:55:59 -0300 Subject: [PATCH 1/2] script: adds deployment script for Wsteth token --- script/DeployWsteth.sol | 34 ++++++++++++++++++++++++++++++++++ script/deployWsteth.sh | 3 +++ 2 files changed, 37 insertions(+) create mode 100644 script/DeployWsteth.sol create mode 100755 script/deployWsteth.sh diff --git a/script/DeployWsteth.sol b/script/DeployWsteth.sol new file mode 100644 index 0000000..ee7ca4a --- /dev/null +++ b/script/DeployWsteth.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.8.7 <0.9.0; + +import {Script, console} from "forge-std/Script.sol"; +import {WstEthL2Token} from "../src/token/WstEthL2Token.sol"; +import {Upgrades} from "./lib/Upgrades.sol"; + +contract DeployToken is Script { + function run() public { + vm.startBroadcast(); + + address proxy = Upgrades.deployUUPSProxy( + "out/ERC1967Proxy.sol/ERC1967Proxy.json", + "WstEthL2Token.sol", + abi.encodeCall(WstEthL2Token.initialize, ("Wrapped liquid staked Ether 2.0", "wstETH", msg.sender)) + ); + + WstEthL2Token token = WstEthL2Token(proxy); + + console.log("WstEthL2Token deployed at: "); + console.log(address(token)); + vm.stopBroadcast(); + } + + function transferOwnership(address tokenAddress, address newOwner, address minter) public { + vm.startBroadcast(); + + WstEthL2Token token = WstEthL2Token(tokenAddress); + token.setMinter(minter); + token.transferOwnership(newOwner); + vm.stopBroadcast(); + } +} \ No newline at end of file diff --git a/script/deployWsteth.sh b/script/deployWsteth.sh new file mode 100755 index 0000000..d67da22 --- /dev/null +++ b/script/deployWsteth.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +forge script --broadcast --slow --verify ./script/DeployWsteth.sol $@ \ No newline at end of file From 672b41de0df2cccf84f39a419d883c796a260a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Claudio=20Nale?= Date: Tue, 25 Jun 2024 15:51:30 -0300 Subject: [PATCH 2/2] updates deployment script to avoid OZ CLI --- script/DeployWsteth.sol | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/script/DeployWsteth.sol b/script/DeployWsteth.sol index ee7ca4a..bc7a5a0 100644 --- a/script/DeployWsteth.sol +++ b/script/DeployWsteth.sol @@ -4,26 +4,25 @@ pragma solidity >=0.8.7 <0.9.0; import {Script, console} from "forge-std/Script.sol"; import {WstEthL2Token} from "../src/token/WstEthL2Token.sol"; -import {Upgrades} from "./lib/Upgrades.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; contract DeployToken is Script { - function run() public { + function run() public returns (address implementation, address token) { vm.startBroadcast(); - address proxy = Upgrades.deployUUPSProxy( - "out/ERC1967Proxy.sol/ERC1967Proxy.json", - "WstEthL2Token.sol", - abi.encodeCall(WstEthL2Token.initialize, ("Wrapped liquid staked Ether 2.0", "wstETH", msg.sender)) - ); + implementation = address(new WstEthL2Token()); - WstEthL2Token token = WstEthL2Token(proxy); + token = address(new ERC1967Proxy(implementation, abi.encodeCall(WstEthL2Token.initialize, ("Wrapped liquid staked Ether 2.0", "wstETH", msg.sender)))); - console.log("WstEthL2Token deployed at: "); - console.log(address(token)); + console.log("WstEthL2Token implementation deployed at: "); + console.log(implementation); + + console.log("WstEthL2Token proxy deployed at: "); + console.log(token); vm.stopBroadcast(); } - function transferOwnership(address tokenAddress, address newOwner, address minter) public { + function transferMinterAndOwnership(address tokenAddress, address newOwner, address minter) public { vm.startBroadcast(); WstEthL2Token token = WstEthL2Token(tokenAddress);