Skip to content

Commit 627c937

Browse files
authored
refactor: Move mock files to test folder (#73)
1 parent 03ba891 commit 627c937

12 files changed

+55
-90
lines changed

Makefile

Lines changed: 29 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ clean:
4545
forge clean
4646

4747
#
48-
# High-level deployment targets
48+
# Deployment targets
4949
#
5050

5151
deploy-on-anvil:
@@ -78,51 +78,38 @@ deploy-all: # SOURCE_CHAIN, SOURCE_RPC, TARGET_CHAIN, TARGET_RPC
7878
@echo "⚠️ Run 'make configure-all' to configure bridges."
7979
@echo "⚠️ Please configure the bridges. Do not forget to authorize the RLCLiquidityUnifier and RLCCrosschainToken contracts on the bridges."
8080

81-
configure-all: # SOURCE_CHAIN, TARGET_CHAIN, SOURCE_RPC, TARGET_RPC
82-
$(MAKE) configure-bridge SOURCE_CHAIN=$(SOURCE_CHAIN) TARGET_CHAIN=$(TARGET_CHAIN) RPC_URL=$(SOURCE_RPC)
83-
$(MAKE) configure-bridge SOURCE_CHAIN=$(TARGET_CHAIN) TARGET_CHAIN=$(SOURCE_CHAIN) RPC_URL=$(TARGET_RPC)
84-
@echo "Bridge configuration completed."
81+
deploy-contract: # CONTRACT, CHAIN, RPC_URL
82+
@echo "Deploying $(CONTRACT) on $(CHAIN)"
83+
CHAIN=$(CHAIN) forge script script/$(CONTRACT).s.sol:Deploy \
84+
--rpc-url $(RPC_URL) \
85+
$$(if [ "$(CI)" = "true" ]; then echo "--private-key $(DEPLOYER_PRIVATE_KEY)"; else echo "--account $(ACCOUNT)"; fi) \
86+
--broadcast \
87+
-vvv
8588

8689
#
87-
# High-level upgrade targets
90+
# Upgrade targets
8891
#
8992

90-
upgrade-on-anvil:
91-
$(MAKE) upgrade-all \
93+
upgrade-bridge-on-anvil:
94+
$(MAKE) upgrade-bridge \
9295
SOURCE_CHAIN=sepolia SOURCE_RPC=$(ANVIL_SEPOLIA_RPC_URL) \
9396
TARGET_CHAIN=arbitrum_sepolia TARGET_RPC=$(ANVIL_ARBITRUM_SEPOLIA_RPC_URL)
9497

95-
upgrade-on-mainnets:
96-
$(MAKE) upgrade-all \
98+
upgrade-bridge-on-mainnets:
99+
$(MAKE) upgrade-bridge \
97100
SOURCE_CHAIN=ethereum SOURCE_RPC=$(ETHEREUM_RPC_URL) \
98101
TARGET_CHAIN=arbitrum TARGET_RPC=$(ARBITRUM_RPC_URL) \
99102

100103
# TODO : RLCMultichain and RLCLiquidityUnifier upgrades
101-
upgrade-on-testnets:
102-
$(MAKE) upgrade-all \
104+
upgrade-bridge-on-testnets:
105+
$(MAKE) upgrade-bridge \
103106
SOURCE_CHAIN=sepolia SOURCE_RPC=$(SEPOLIA_RPC_URL) \
104107
TARGET_CHAIN=arbitrum_sepolia TARGET_RPC=$(ARBITRUM_SEPOLIA_RPC_URL) \
105108

106-
upgrade-all: # SOURCE_CHAIN, SOURCE_RPC, TARGET_CHAIN, TARGET_RPC
109+
upgrade-bridge: # SOURCE_CHAIN, SOURCE_RPC, TARGET_CHAIN, TARGET_RPC
107110
$(MAKE) upgrade-contract CONTRACT=bridges/layerZero/IexecLayerZeroBridge CHAIN=$(SOURCE_CHAIN) RPC_URL=$(SOURCE_RPC)
108111
$(MAKE) upgrade-contract CONTRACT=bridges/layerZero/IexecLayerZeroBridge CHAIN=$(TARGET_CHAIN) RPC_URL=$(TARGET_RPC)
109112

110-
#
111-
# Generic deployment targets
112-
#
113-
114-
deploy-contract: # CONTRACT, CHAIN, RPC_URL
115-
@echo "Deploying $(CONTRACT) on $(CHAIN)"
116-
CHAIN=$(CHAIN) forge script script/$(CONTRACT).s.sol:Deploy \
117-
--rpc-url $(RPC_URL) \
118-
$$(if [ "$(CI)" = "true" ]; then echo "--private-key $(DEPLOYER_PRIVATE_KEY)"; else echo "--account $(ACCOUNT)"; fi) \
119-
--broadcast \
120-
-vvv
121-
122-
#
123-
# Generic upgrade targets
124-
#
125-
126113
upgrade-contract: # CONTRACT, CHAIN, RPC_URL
127114
@echo "Upgrading $(CONTRACT) on $(CHAIN)"
128115
CHAIN=$(CHAIN) forge script script/$(CONTRACT).s.sol:Upgrade \
@@ -132,9 +119,14 @@ upgrade-contract: # CONTRACT, CHAIN, RPC_URL
132119
-vvv
133120

134121
#
135-
# Generic configuration targets
122+
# Configuration targets
136123
#
137124

125+
configure-all: # SOURCE_CHAIN, TARGET_CHAIN, SOURCE_RPC, TARGET_RPC
126+
$(MAKE) configure-bridge SOURCE_CHAIN=$(SOURCE_CHAIN) TARGET_CHAIN=$(TARGET_CHAIN) RPC_URL=$(SOURCE_RPC)
127+
$(MAKE) configure-bridge SOURCE_CHAIN=$(TARGET_CHAIN) TARGET_CHAIN=$(SOURCE_CHAIN) RPC_URL=$(TARGET_RPC)
128+
@echo "Bridge configuration completed."
129+
138130
configure-bridge: # SOURCE_CHAIN, TARGET_CHAIN, RPC_URL
139131
@echo "Configuring LayerZero Bridge $(SOURCE_CHAIN) -> $(TARGET_CHAIN)"
140132
SOURCE_CHAIN=$(SOURCE_CHAIN) TARGET_CHAIN=$(TARGET_CHAIN) \
@@ -145,37 +137,31 @@ configure-bridge: # SOURCE_CHAIN, TARGET_CHAIN, RPC_URL
145137
-vvv
146138

147139
#
148-
# Individual upgrade targets
149-
#
150-
151-
upgrade-layerzero-bridge: # CHAIN, RPC_URL
152-
$(MAKE) upgrade-contract CONTRACT=bridges/layerZero/IexecLayerZeroBridge CHAIN=$(CHAIN) RPC_URL=$(RPC_URL)
153-
154-
#
155-
# Bridge operations.
156-
#
157-
158140
# Testnet bridge operations
141+
#
159142

160143
send-tokens-to-arbitrum-sepolia:
161144
@echo "Sending tokens cross-chain... from SEPOLIA to Arbitrum SEPOLIA"
162145
SOURCE_CHAIN=sepolia TARGET_CHAIN=arbitrum_sepolia \
163-
forge script script/SendFromEthereumToArbitrum.s.sol:SendTokensFromEthereumToArbitrum \
146+
forge script script/SendFromEthereumToArbitrum.s.sol:SendFromEthereumToArbitrum \
164147
--rpc-url $(SEPOLIA_RPC_URL) \
165148
--account $(ACCOUNT) \
166149
--broadcast \
167150
-vvv
168151

169-
send-tokens-to-sepolia:
152+
send-tokens-to-ethereum-sepolia:
170153
@echo "Sending tokens cross-chain... from Arbitrum SEPOLIA to SEPOLIA"
171154
SOURCE_CHAIN=arbitrum_sepolia TARGET_CHAIN=sepolia \
172-
forge script script/SendFromArbitrumToEthereum.s.sol:SendTokensFromArbitrumToEthereum \
155+
forge script script/SendFromArbitrumToEthereum.s.sol:SendFromArbitrumToEthereum \
173156
--rpc-url $(ARBITRUM_SEPOLIA_RPC_URL) \
174157
--account $(ACCOUNT) \
175158
--broadcast \
176159
-vvv
177160

161+
#
178162
# Mainnet bridge operations
163+
#
164+
179165
send-tokens-to-arbitrum-mainnet:
180166
@echo "Sending tokens cross-chain... from ETHEREUM to Arbitrum MAINNET"
181167
SOURCE_CHAIN=ethereum TARGET_CHAIN=arbitrum \

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ This will:
149149
B. To send RLC tokens from Arbitrum Sepolia back to Ethereum Sepolia:
150150
151151
```bash
152-
make send-tokens-to-sepolia
152+
make send-tokens-to-ethereum-sepolia
153153
```
154154
155155
This will:
@@ -229,15 +229,15 @@ Test upgrades locally before deploying to live networks:
229229

230230
```bash
231231
# Test upgrade process on local forks
232-
make upgrade-on-anvil
232+
make upgrade-bridge-on-anvil
233233
```
234234

235235
#### 2. Live Network Upgrades
236236

237237
Execute upgrades on live networks:
238238

239239
```bash
240-
make upgrade-on-mainnets
240+
make upgrade-bridge-on-mainnets
241241
```
242242

243243
### Upgrade Safety Features
@@ -310,7 +310,7 @@ Contracts are automatically verified on block explorers during deployment:
310310
make deploy-on-mainnets
311311
312312
# Upgrades and verifies contracts on mainnet
313-
make upgrade-on-mainnets
313+
make upgrade-bridge-on-mainnets
314314
```
315315

316316
The verification is handled by Foundry's built-in `--verify` flag, which submits the source code and constructor arguments to the respective block explorers (Etherscan, Arbiscan, etc.).

docs/soldoc/src/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ This will:
149149
B. To send RLC tokens from Arbitrum Sepolia back to Ethereum Sepolia:
150150
151151
```bash
152-
make send-tokens-to-sepolia
152+
make send-tokens-to-ethereum-sepolia
153153
```
154154
155155
This will:
@@ -229,15 +229,15 @@ Test upgrades locally before deploying to live networks:
229229

230230
```bash
231231
# Test upgrade process on local forks
232-
make upgrade-on-anvil
232+
make upgrade-bridge-on-anvil
233233
```
234234

235235
#### 2. Live Network Upgrades
236236

237237
Execute upgrades on live networks:
238238

239239
```bash
240-
make upgrade-on-mainnets
240+
make upgrade-bridge-on-mainnets
241241
```
242242

243243
### Upgrade Safety Features
@@ -310,7 +310,7 @@ Contracts are automatically verified on block explorers during deployment:
310310
make deploy-on-mainnets
311311
312312
# Upgrades and verifies contracts on mainnet
313-
make upgrade-on-mainnets
313+
make upgrade-bridge-on-mainnets
314314
```
315315

316316
The verification is handled by Foundry's built-in `--verify` flag, which submits the source code and constructor arguments to the respective block explorers (Etherscan, Arbiscan, etc.).

script/RLCCrosschainToken.s.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,9 @@ contract Deploy is Script {
6161
return UUPSProxyDeployer.deployUsingCreateX("RLCCrosschainToken", "", initData, createxFactory, createxSalt);
6262
}
6363
}
64+
65+
contract Upgrade is Script {
66+
function run() external pure {
67+
revert("Not implemented!");
68+
}
69+
}

script/RLCLiquidityUnifier.s.sol

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,7 @@ contract Deploy is Script {
6464
}
6565

6666
contract Upgrade is Script {
67-
function run() external {
68-
string memory chain = vm.envString("CHAIN");
69-
ConfigLib.CommonConfigParams memory commonParams = ConfigLib.readCommonConfig(chain);
70-
71-
vm.startBroadcast();
72-
UpgradeUtils.UpgradeParams memory params = UpgradeUtils.UpgradeParams({
73-
proxyAddress: commonParams.rlcLiquidityUnifierAddress,
74-
constructorData: abi.encode(commonParams.rlcToken),
75-
contractName: "RLCLiquidityUnifierV2Mock.sol:RLCLiquidityUnifierV2", // Would be production contract in real deployment
76-
newStateVariable: 1000000 * 10 ** 9
77-
});
78-
UpgradeUtils.executeUpgrade(params);
79-
vm.stopBroadcast();
67+
function run() external pure {
68+
revert("Not implemented!");
8069
}
8170
}

script/SendFromArbitrumToEthereum.s.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import {SendParam} from "@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol";
1010
import {MessagingFee} from "@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol";
1111

1212
/**
13-
* Script to send tokens from Arbitrum Mainnet to Ethereum Mainnet.
13+
* Script to send tokens from Arbitrum Mainnet/Testnet to Ethereum Mainnet/Testnet.
1414
* This script demonstrates cross-chain token transfers using LayerZero bridge.
1515
*/
16-
// TODO: fusion SendTokensFromArbitrumToEthereum and SendTokensFromEthereumToArbitrum into a single script with dynamic chain handling
16+
// TODO merge SendFromArbitrumToEthereum and SendFromEthereumToArbitrum into a single script.
1717
contract SendFromArbitrumToEthereum is Script {
1818
uint256 private constant TRANSFER_AMOUNT = 1 * 10 ** 9; // 1 RLC token with 9 decimals
1919

script/SendFromEthereumToArbitrum.s.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import {SendParam} from "@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol";
1010
import {MessagingFee} from "@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol";
1111

1212
/**
13-
* Script to send tokens from Ethereum Mainnet to Arbitrum Mainnet.
13+
* Script to send tokens from Ethereum Mainnet/Testnet to Arbitrum Mainnet/Testnet.
1414
* This script demonstrates cross-chain token transfers using LayerZero bridge.
1515
*/
16-
// TODO: fusion SendTokensFromArbitrumToEthereum and SendTokensFromEthereumToArbitrum into a single script with dynamic chain handling
16+
// TODO merge SendFromArbitrumToEthereum and SendFromEthereumToArbitrum into a single script.
1717
contract SendFromEthereumToArbitrum is Script {
1818
uint256 private constant TRANSFER_AMOUNT = 1 * 10 ** 9; // 1 RLC token with 9 decimals
1919
/**

script/bridges/layerZero/IexecLayerZeroBridge.s.sol

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -194,23 +194,7 @@ contract Configure is Script {
194194
* A script to upgrade the IexecLayerZeroBridge contract.
195195
*/
196196
contract Upgrade is Script {
197-
function run() external {
198-
string memory chain = vm.envString("CHAIN");
199-
ConfigLib.CommonConfigParams memory commonParams = ConfigLib.readCommonConfig(chain);
200-
201-
// For testing purpose
202-
uint256 newStateVariable = 1000000 * 10 ** 9;
203-
address bridgeableToken = commonParams.approvalRequired
204-
? commonParams.rlcLiquidityUnifierAddress
205-
: commonParams.rlcCrosschainTokenAddress;
206-
vm.startBroadcast();
207-
UpgradeUtils.UpgradeParams memory params = UpgradeUtils.UpgradeParams({
208-
proxyAddress: commonParams.iexecLayerZeroBridgeAddress,
209-
constructorData: abi.encode(commonParams.approvalRequired, bridgeableToken, commonParams.lzEndpoint),
210-
contractName: "IexecLayerZeroBridgeV2Mock.sol:IexecLayerZeroBridgeV2", // Would be production contract in real deployment
211-
newStateVariable: newStateVariable
212-
});
213-
UpgradeUtils.executeUpgrade(params);
214-
vm.stopBroadcast();
197+
function run() external pure {
198+
revert("Not implemented!");
215199
}
216200
}

test/units/RLCLiquidityUnifierUpgrade.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
pragma solidity ^0.8.22;
44

55
import {TestHelperOz5} from "@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol";
6-
import {RLCLiquidityUnifierV2} from "../../src/mocks/RLCLiquidityUnifierV2Mock.sol";
76
import {RLCLiquidityUnifier} from "../../src/RLCLiquidityUnifier.sol";
87
import {TestUtils} from "./utils/TestUtils.sol";
98
import {UpgradeUtils} from "../../script/lib/UpgradeUtils.sol";
109
import {RLCMock} from "./mocks/RLCMock.sol";
10+
import {RLCLiquidityUnifierV2} from "./mocks/RLCLiquidityUnifierV2Mock.sol";
1111

1212
contract RLCLiquidityUnifierUpgradeTest is TestHelperOz5 {
1313
using TestUtils for *;

test/units/bridges/layerZero/IexecLayerZeroBridgeUpgradeScript.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
pragma solidity ^0.8.22;
44

55
import {TestHelperOz5} from "@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol";
6-
import {IexecLayerZeroBridgeV2} from "../../../../src/mocks/IexecLayerZeroBridgeV2Mock.sol";
6+
import {IexecLayerZeroBridgeV2} from "../../mocks/IexecLayerZeroBridgeV2Mock.sol";
77
import {TestUtils} from "./../../utils/TestUtils.sol";
88
import {UpgradeUtils} from "../../../../script/lib/UpgradeUtils.sol";
99
import {IexecLayerZeroBridge} from "../../../../src/bridges/layerZero/IexecLayerZeroBridge.sol";

0 commit comments

Comments
 (0)