Skip to content

Commit 8951341

Browse files
committed
WIP: even more agglayer testing
1 parent def4c3d commit 8951341

File tree

3 files changed

+66
-8
lines changed

3 files changed

+66
-8
lines changed

remappings.txt

+26
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
@ensdomains/=lib/creator-token-contracts/node_modules/@ensdomains/
2+
3+
@opensea/tstorish/=lib/creator-token-standards/lib/tstorish/src/
4+
@openzeppelin/contracts-upgradeable/=lib/lxly-bridge-and-call/lib/openzeppelin-contracts-upgradeable/contracts/
5+
@openzeppelin/=lib/lxly-bridge-and-call/lib/openzeppelin-contracts/contracts/
6+
7+
@rari-capital/solmate/=lib/PermitC/lib/solmate/
8+
@zkevm/=lib/lxly-bridge-and-call/lib/zkevm-contracts/contracts/
9+
ERC721A-Upgradeable/=lib/ERC721A-Upgradeable/contracts/
10+
PermitC/=lib/PermitC/src/
11+
creator-token-contracts/=lib/creator-token-contracts/contracts/
12+
creator-token-standards/=lib/creator-token-standards/src/
13+
erc4626-tests/=lib/lxly-bridge-and-call/lib/openzeppelin-contracts/lib/erc4626-tests/
14+
erc721a/=lib/erc721a/contracts/
15+
eth-gas-reporter/=lib/creator-token-contracts/node_modules/eth-gas-reporter/
16+
forge-gas-metering/=lib/PermitC/lib/forge-gas-metering/
17+
hardhat/=lib/creator-token-contracts/node_modules/hardhat/
18+
lxly-bridge-and-call/=lib/lxly-bridge-and-call/
19+
murky/=lib/creator-token-contracts/lib/murky/src/
20+
openzeppelin-contracts-upgradeable/=lib/lxly-bridge-and-call/lib/openzeppelin-contracts-upgradeable/
21+
openzeppelin-contracts/=lib/lxly-bridge-and-call/lib/openzeppelin-contracts/
22+
openzeppelin/=lib/lxly-bridge-and-call/lib/openzeppelin-contracts/contracts/
23+
solady/=lib/solady/src/
24+
zkevm-contracts/=lib/lxly-bridge-and-call/lib/zkevm-contracts/contracts/
25+
26+
127
ds-test/=lib/forge-std/lib/ds-test/src/
228
forge-std/=lib/forge-std/src/
329
@solady/=lib/solady/src/

script/agglayer/Agglayer.s.sol

+12-2
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,24 @@ contract MintTestNFT is Script {
4949
console.log("polygonAgglayer deployed to:", address(polygonAgglayer));
5050

5151
bytes memory mintableEncodedInstallParams = abi.encode(deployerAddress);
52-
bytes memory polygonAgglayerEncodedInstallParams = abi.encode(address(polygonAgglayer));
52+
bytes memory polygonAgglayerEncodedInstallParams = abi.encode(agglayerBridgeExtension);
53+
console.log("polygonAgglayerEncodedInstallParams");
54+
console.logBytes(polygonAgglayerEncodedInstallParams);
5355

5456
modules[0] = address(mintableModule);
5557
modules[1] = address(polygonAgglayer);
5658

5759
moduleData[0] = mintableEncodedInstallParams;
5860
moduleData[1] = polygonAgglayerEncodedInstallParams;
5961

62+
console.log("moduleData");
63+
console.logBytes(moduleData[0]);
64+
console.logBytes(moduleData[1]);
65+
66+
console.log("modules");
67+
console.logAddress(modules[0]);
68+
console.logAddress(modules[1]);
69+
6070
core = new ERC20Core("test", "TEST", "", deployerAddress, modules, moduleData);
6171
console.log("core deployed to:", address(core));
6272

@@ -67,7 +77,7 @@ contract MintTestNFT is Script {
6777
core.approve(agglayerBridgeExtension, 100);
6878
console.log("Approved agglayer bridge extension");
6979

70-
bytes memory extraArgs = abi.encode(deployerAddress, true, address(core), 100);
80+
bytes memory extraArgs = abi.encode(deployerAddress, true, address(core), 100, "");
7181
bytes memory payload = abi.encodeWithSelector(
7282
bytes4(keccak256("mint(address,uint256)")),
7383
deployerAddress,

src/module/token/crosschain/PolygonAgglayer.sol

+28-6
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ contract PolygonAgglayerCrossChain is Module, CrossChain {
4242
FallbackFunction({selector: this.setRouter.selector, permissionBits: Role._MANAGER_ROLE});
4343
config.fallbackFunctions[2] =
4444
FallbackFunction({selector: this.sendCrossChainTransaction.selector, permissionBits: 0});
45+
46+
config.registerInstallationCallback = true;
4547
}
4648

4749
/// @dev Called by a Core into an Module during the installation of the Module.
4850
function onInstall(bytes calldata data) external {
4951
address router = abi.decode(data, (address));
52+
console.log("router in onInstall: ", router);
5053
_polygonAgglayerStorage().router = router;
5154
}
5255

@@ -83,19 +86,23 @@ contract PolygonAgglayerCrossChain is Module, CrossChain {
8386
bytes calldata _payload,
8487
bytes calldata _extraArgs
8588
) external payable override {
86-
address router = _polygonAgglayerStorage().router;
87-
(address _fallbackAddress, bool _forceUpdateGlobalExitRoot, address _token, uint256 _amount) =
88-
abi.decode(_extraArgs, (address, bool, address, uint256));
89+
(
90+
address _fallbackAddress,
91+
bool _forceUpdateGlobalExitRoot,
92+
address _token,
93+
uint256 _amount,
94+
bytes memory permitData
95+
) = abi.decode(_extraArgs, (address, bool, address, uint256, bytes));
8996
console.log("token address", _token);
9097
console.log("amount", _amount);
9198
console.log("destinationChain", _destinationChain);
9299
console.log("callAddress", _callAddress);
93-
console.log("fallbackAddress", _fallbackAddress);
94-
console.log("forceUpdateGlobalExitRoot", _forceUpdateGlobalExitRoot);
95100

96-
IBridgeAndCall(router).bridgeAndCall(
101+
// IBridgeAndCall(_polygonAgglayerStorage().router).bridgeAndCall(
102+
_bridgeAndCall(
97103
_token,
98104
_amount,
105+
permitData,
99106
uint32(_destinationChain),
100107
_callAddress,
101108
_fallbackAddress,
@@ -107,6 +114,21 @@ contract PolygonAgglayerCrossChain is Module, CrossChain {
107114
onCrossChainTransactionSent(_destinationChain, _callAddress, _payload, _extraArgs);
108115
}
109116

117+
function _bridgeAndCall(address _token, uint256 _amount, bytes memory permitData, uint32 _destinationChain, address _callAddress, address _fallbackAddress, bytes memory _payload, bool _forceUpdateGlobalExitRoot) internal {
118+
console.log("router: ", _polygonAgglayerStorage().router);
119+
IBridgeAndCall(_polygonAgglayerStorage().router).bridgeAndCall(
120+
_token,
121+
_amount,
122+
permitData,
123+
_destinationChain,
124+
_callAddress,
125+
_fallbackAddress,
126+
_payload,
127+
_forceUpdateGlobalExitRoot
128+
);
129+
}
130+
131+
110132
/*//////////////////////////////////////////////////////////////
111133
INTERNAL FUNCTIONS
112134
//////////////////////////////////////////////////////////////*/

0 commit comments

Comments
 (0)