@@ -42,7 +42,8 @@ contract ZetaChainCrossChain is Module {
42
42
config.callbackFunctions = new CallbackFunction [](1 );
43
43
config.fallbackFunctions = new FallbackFunction [](5 );
44
44
45
- config.fallbackFunctions[0 ] = FallbackFunction ({selector: this .sendMessage.selector , permissionBits: 0 });
45
+ config.fallbackFunctions[0 ] =
46
+ FallbackFunction ({selector: this .sendCrossChainTransaction.selector , permissionBits: 0 });
46
47
config.fallbackFunctions[2 ] = FallbackFunction ({selector: this .getTss.selector , permissionBits: 0 });
47
48
config.fallbackFunctions[4 ] = FallbackFunction ({selector: this .getERC20Custody.selector , permissionBits: 0 });
48
49
config.fallbackFunctions[1 ] =
@@ -85,18 +86,24 @@ contract ZetaChainCrossChain is Module {
85
86
FALLBACK FUNCTIONS
86
87
//////////////////////////////////////////////////////////////*/
87
88
88
- function sendMessage (address callAddress , address recipient , address token , uint256 value , bytes memory data )
89
- external
90
- {
89
+ function sendCrossChainTransaction (
90
+ uint64 _destinationChain ,
91
+ address _callAddress ,
92
+ address _recipient ,
93
+ address _token ,
94
+ uint256 _amount ,
95
+ bytes calldata _data ,
96
+ bytes memory _extraArgs
97
+ ) external {
91
98
// Mimics the encoding of the ZetaChain client library
92
99
// https://github.com/zeta-chain/toolkit/tree/main/packages/client/src
93
- bytes memory encodedData = abi.encodePacked (callAddress, data );
94
- if (token == address (0 )) {
95
- (bool success ,) = payable (_zetaChainCrossChainStorage ().tss).call {value: value }(encodedData);
100
+ bytes memory encodedData = abi.encodePacked (_callAddress, _data );
101
+ if (_token == address (0 )) {
102
+ (bool success ,) = payable (_zetaChainCrossChainStorage ().tss).call {value: _amount }(encodedData);
96
103
require (success, "Failed to send message " );
97
104
} else {
98
105
IERC20Custody (_zetaChainCrossChainStorage ().erc20Custody).deposit (
99
- abi.encode (recipient ), IERC20 (token ), value , encodedData
106
+ abi.encode (_recipient ), IERC20 (_token ), _amount , encodedData
100
107
);
101
108
}
102
109
}
0 commit comments