From 9d84a81297a534d911507d985682065c446012c7 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 29 Oct 2024 10:53:52 +0800 Subject: [PATCH 1/7] feat(protocol): upgrade script --- .../layer1/DeployHeklaL2Contracts.s.sol | 34 +++++++++++++++++++ .../script/layer1/UpgradeHeklaOntakeL2.s.sol | 6 ++++ 2 files changed, 40 insertions(+) create mode 100644 packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol diff --git a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol new file mode 100644 index 00000000000..4507c7bd401 --- /dev/null +++ b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "test/shared/DeployCapability.sol"; +import "src/shared/bridge/Bridge.sol"; +import "src/shared/common/AddressManager.sol"; +import "../../contracts/layer2/hekla/HeklaTaikoL2.sol"; +import "../../contracts/shared/tokenvault/BridgedERC20V2.sol"; + +contract DeployHeklaL2Contracts is DeployCapability { + uint256 public privateKey = vm.envUint("PRIVATE_KEY"); + + modifier broadcast() { + require(privateKey != 0, "invalid private key"); + vm.startBroadcast(privateKey); + _; + vm.stopBroadcast(); + } + + function run() external broadcast { + // TaikoL1 + address heklaTaikoL2 = address(new HeklaTaikoL2()); + // Bridge + address bridge = address(new Bridge()); + // Address manager + address addressManager = address(new AddressManager()); + // Bridged ERC20 V2 + address bridgedERC20V2 = address(new BridgedERC20V2()); + console2.log("> hekla_taiko_l2@", heklaTaikoL2); + console2.log("> bridge@", bridge); + console2.log("> address_manager@", addressManager); + console2.log("> bridged_erc20_v2@", bridgedERC20V2); + } +} diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol index 0c665b0fb9f..1856e1eacf1 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol +++ b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol @@ -8,6 +8,7 @@ import "src/shared/bridge/Bridge.sol"; import "src/shared/common/AddressManager.sol"; import "test/shared/thirdparty/Multicall3.sol"; import "src/layer2/DelegateOwner.sol"; +import { BridgedERC20V2 } from "../../contracts/shared/tokenvault/BridgedERC20V2.sol"; contract UpgradeHeklaOntakeL2 is DeployCapability { address public delegateOwner = 0x95F6077C7786a58FA070D98043b16DF2B1593D2b; @@ -17,6 +18,7 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { address public newHeklaTaikoL2 = vm.envAddress("NEW_HEKLA_TAIKO_L2"); address public newBridge = vm.envAddress("NEW_BRIDGE"); address public newAddressManager = vm.envAddress("NEW_ADDRESS_MANAGER"); + address public newBridgedERC20V2 = vm.envAddress("NEW_BRIDGED_ERC20_V2"); modifier broadcast() { require(privateKey != 0, "invalid private key"); @@ -43,6 +45,10 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { calls[3].target = 0x1670090000000000000000000000000000000006; calls[3].allowFailure = false; calls[3].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newAddressManager)); + // Bridged ERC20 V2 + calls[4].target = 0x1670090000000000000000000000000000000002; + calls[4].allowFailure = false; + calls[4].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newBridgedERC20V2)); DelegateOwner.Call memory dcall = DelegateOwner.Call({ txId: 0, From 291377f3390f0ee1c8fe69984f2b4538d60fe97c Mon Sep 17 00:00:00 2001 From: Gavin Yu Date: Tue, 29 Oct 2024 10:54:58 +0800 Subject: [PATCH 2/7] Update packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol --- packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol index 4507c7bd401..cb6ff19730c 100644 --- a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol +++ b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol @@ -18,7 +18,7 @@ contract DeployHeklaL2Contracts is DeployCapability { } function run() external broadcast { - // TaikoL1 + // TaikoL2 address heklaTaikoL2 = address(new HeklaTaikoL2()); // Bridge address bridge = address(new Bridge()); From 69d0715e2be9174a38194f366d68b654b1452645 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 29 Oct 2024 11:27:36 +0800 Subject: [PATCH 3/7] update --- packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol | 3 +++ packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol | 5 ----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol index 4507c7bd401..63e847deee0 100644 --- a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol +++ b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol @@ -26,6 +26,9 @@ contract DeployHeklaL2Contracts is DeployCapability { address addressManager = address(new AddressManager()); // Bridged ERC20 V2 address bridgedERC20V2 = address(new BridgedERC20V2()); + // Register to SharedAddressManager + register("0x1670090000000000000000000000000000000006", B_BRIDGED_ERC20, bridgedERC20V2); + console2.log("> hekla_taiko_l2@", heklaTaikoL2); console2.log("> bridge@", bridge); console2.log("> address_manager@", addressManager); diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol index 1856e1eacf1..4057feafa58 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol +++ b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol @@ -18,7 +18,6 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { address public newHeklaTaikoL2 = vm.envAddress("NEW_HEKLA_TAIKO_L2"); address public newBridge = vm.envAddress("NEW_BRIDGE"); address public newAddressManager = vm.envAddress("NEW_ADDRESS_MANAGER"); - address public newBridgedERC20V2 = vm.envAddress("NEW_BRIDGED_ERC20_V2"); modifier broadcast() { require(privateKey != 0, "invalid private key"); @@ -45,10 +44,6 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { calls[3].target = 0x1670090000000000000000000000000000000006; calls[3].allowFailure = false; calls[3].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newAddressManager)); - // Bridged ERC20 V2 - calls[4].target = 0x1670090000000000000000000000000000000002; - calls[4].allowFailure = false; - calls[4].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newBridgedERC20V2)); DelegateOwner.Call memory dcall = DelegateOwner.Call({ txId: 0, From d880b826d8c245459f42d47d2f16dc09f5c3c066 Mon Sep 17 00:00:00 2001 From: Gavin Yu Date: Tue, 29 Oct 2024 11:33:02 +0800 Subject: [PATCH 4/7] Update packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol --- packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol index 4057feafa58..0c665b0fb9f 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol +++ b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol @@ -8,7 +8,6 @@ import "src/shared/bridge/Bridge.sol"; import "src/shared/common/AddressManager.sol"; import "test/shared/thirdparty/Multicall3.sol"; import "src/layer2/DelegateOwner.sol"; -import { BridgedERC20V2 } from "../../contracts/shared/tokenvault/BridgedERC20V2.sol"; contract UpgradeHeklaOntakeL2 is DeployCapability { address public delegateOwner = 0x95F6077C7786a58FA070D98043b16DF2B1593D2b; From 835e01274738fd17db7f36c03047e515fcc931a5 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 29 Oct 2024 11:50:28 +0800 Subject: [PATCH 5/7] fix --- packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol index 56ff371650d..a2e96835f35 100644 --- a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol +++ b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol @@ -27,8 +27,9 @@ contract DeployHeklaL2Contracts is DeployCapability { // Bridged ERC20 V2 address bridgedERC20V2 = address(new BridgedERC20V2()); // Register to SharedAddressManager - register("0x1670090000000000000000000000000000000006", B_BRIDGED_ERC20, bridgedERC20V2); - + address sharedAddressManager = 0x1670090000000000000000000000000000000006; + register(sharedAddressManager, "bridged_erc20", bridgedERC20V2); + console2.log("> hekla_taiko_l2@", heklaTaikoL2); console2.log("> bridge@", bridge); console2.log("> address_manager@", addressManager); From f588f1fcbf687a7d34352f54b253a426bca42820 Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 29 Oct 2024 14:30:25 +0800 Subject: [PATCH 6/7] fix --- .../protocol/script/layer1/DeployHeklaL2Contracts.s.sol | 3 --- packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol index a2e96835f35..94d2c612f35 100644 --- a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol +++ b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol @@ -26,9 +26,6 @@ contract DeployHeklaL2Contracts is DeployCapability { address addressManager = address(new AddressManager()); // Bridged ERC20 V2 address bridgedERC20V2 = address(new BridgedERC20V2()); - // Register to SharedAddressManager - address sharedAddressManager = 0x1670090000000000000000000000000000000006; - register(sharedAddressManager, "bridged_erc20", bridgedERC20V2); console2.log("> hekla_taiko_l2@", heklaTaikoL2); console2.log("> bridge@", bridge); diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol index 0c665b0fb9f..b213785bf52 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol +++ b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol @@ -17,6 +17,7 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { address public newHeklaTaikoL2 = vm.envAddress("NEW_HEKLA_TAIKO_L2"); address public newBridge = vm.envAddress("NEW_BRIDGE"); address public newAddressManager = vm.envAddress("NEW_ADDRESS_MANAGER"); + address public newBridgedERC20 = vm.envAddress("NEW_BRIDGED_ERC20"); modifier broadcast() { require(privateKey != 0, "invalid private key"); @@ -43,6 +44,12 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { calls[3].target = 0x1670090000000000000000000000000000000006; calls[3].allowFailure = false; calls[3].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newAddressManager)); + // Register Bridged ERC20 + calls[4].target = 0x1670090000000000000000000000000000000006; + calls[4].allowFailure = false; + calls[4].callData = abi.encodeCall( + AddressManager.setAddress, (167_009, bytes32(bytes("bridged_erc20")), newBridgedERC20) + ); DelegateOwner.Call memory dcall = DelegateOwner.Call({ txId: 0, From 22446375bcd9a51e9835e75b5b6a8d8f663f1b4a Mon Sep 17 00:00:00 2001 From: gavin Date: Tue, 29 Oct 2024 15:05:04 +0800 Subject: [PATCH 7/7] fix --- packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol index b213785bf52..c6b7cfd815f 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol +++ b/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol @@ -27,7 +27,7 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { } function run() external broadcast { - Multicall3.Call3[] memory calls = new Multicall3.Call3[](4); + Multicall3.Call3[] memory calls = new Multicall3.Call3[](5); // TaikoL2 calls[0].target = 0x1670090000000000000000000000000000010001; calls[0].allowFailure = false;