Skip to content

Commit e3b4c1b

Browse files
committed
script: fix switchBack fn
1 parent ff4e5f1 commit e3b4c1b

File tree

5 files changed

+20
-7
lines changed

5 files changed

+20
-7
lines changed

script/configs/NetworkConfig.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ abstract contract NetworkConfig is INetworkConfig {
2222
string private _deploymentRoot;
2323
bool private _isForkModeEnabled;
2424
TNetwork private _currentNetwork;
25+
mapping(uint256 forkId => TNetwork) internal _forkId2Network;
2526
mapping(TNetwork network => NetworkData) internal _networkDataMap;
2627
mapping(TNetwork network => mapping(uint256 forkBlockNumber => uint256 forkId)) internal _forkMap;
2728

@@ -117,6 +118,7 @@ abstract contract NetworkConfig is INetworkConfig {
117118
NetworkData memory networkData = _networkDataMap[network];
118119
forkId =
119120
_forkMap[network][forkBlockNumber] = tryCreateFork(networkData.chainAlias, networkData.network, forkBlockNumber);
121+
_forkId2Network[forkId] = network;
120122
}
121123

122124
function tryCreateFork(string memory chainAlias, TNetwork network, uint256 forkBlockNumber)
@@ -186,12 +188,14 @@ abstract contract NetworkConfig is INetworkConfig {
186188

187189
vm.selectFork(forkId);
188190
_currentNetwork = network;
191+
require(network == _forkId2Network[forkId], "Network Config: Invalid fork network");
189192

190193
_logCurrentForkInfo(_networkDataMap[network].chainAlias);
191194
}
192195

193196
function switchTo(uint256 forkId) public virtual {
194197
vm.selectFork(forkId);
198+
_currentNetwork = _forkId2Network[forkId];
195199
this.logCurrentForkInfo();
196200
}
197201

script/extensions/BaseScriptExtended.s.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ abstract contract BaseScriptExtended {
2222
return vme.getForkId(network());
2323
}
2424

25+
function forkId(uint256 forkBlockNumber) public view virtual returns (uint256) {
26+
return vme.getForkId(network(), forkBlockNumber);
27+
}
28+
2529
function sender() public view virtual returns (address payable) {
2630
return vme.getSender();
2731
}

script/extensions/ScriptExtended.s.sol

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ abstract contract ScriptExtended is BaseScriptExtended, Script, StdAssertions, I
2020
using StdStyle for *;
2121
using LibErrorHandler for bool;
2222

23+
uint256 internal _originForkBlockNumber;
24+
2325
modifier logFn(string memory fnName) {
2426
logInnerCall(fnName);
2527
_;
@@ -52,6 +54,7 @@ abstract contract ScriptExtended is BaseScriptExtended, Script, StdAssertions, I
5254
vme.resolveCommand(command);
5355

5456
IRuntimeConfig.Option memory runtimeConfig = vme.getRuntimeConfig();
57+
_originForkBlockNumber = runtimeConfig.forkBlockNumber;
5558

5659
if (runtimeConfig.network != network()) {
5760
switchTo(runtimeConfig.network, runtimeConfig.forkBlockNumber);
@@ -114,7 +117,7 @@ abstract contract ScriptExtended is BaseScriptExtended, Script, StdAssertions, I
114117
virtual
115118
returns (TNetwork prevNetwork, uint256 prevForkId)
116119
{
117-
prevForkId = forkId();
120+
prevForkId = forkId(_originForkBlockNumber);
118121
prevNetwork = network();
119122

120123
vme.createFork(networkType, forkBlockNumber);

script/interfaces/configs/INetworkConfig.sol

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ interface INetworkConfig {
2727

2828
function getForkId(TNetwork network) external view returns (uint256 forkId);
2929

30+
function getForkId(TNetwork, uint256 forkBlockNumber) external view returns (uint256 forkId);
31+
3032
function getAlias(TNetwork network) external view returns (string memory networkAlias);
3133

3234
function switchTo(TNetwork network) external;

soldeer.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
11

2-
[[dependencies]]
3-
name = "@openzeppelin-contracts"
4-
version = "4.9.3"
5-
source = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/4_9_3_22-01-2024_13:13:53_contracts.zip"
6-
checksum = "95886307069cf73310b41396c49df51801a73f31f18f62e7d05adfc2031e7725"
7-
82
[[dependencies]]
93
name = "forge-std"
104
version = "1.8.2"
@@ -16,3 +10,9 @@ name = "solady"
1610
version = "0.0.206"
1711
source = "https://soldeer-revisions.s3.amazonaws.com/solady/0_0_206_06-06-2024_05:38:51_solady.zip"
1812
checksum = "acba3f4e69840ebad8c7fcf01edbf66405015418de6fea119ee46944b9294d6d"
13+
14+
[[dependencies]]
15+
name = "@openzeppelin-contracts"
16+
version = "4.9.3"
17+
source = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/4_9_3_22-01-2024_13:13:53_contracts.zip"
18+
checksum = "95886307069cf73310b41396c49df51801a73f31f18f62e7d05adfc2031e7725"

0 commit comments

Comments
 (0)