diff --git a/contracts/InterchainTokenService.sol b/contracts/InterchainTokenService.sol index 06930fb3..a19e1d5b 100644 --- a/contracts/InterchainTokenService.sol +++ b/contracts/InterchainTokenService.sol @@ -701,14 +701,15 @@ contract InterchainTokenService is destinationAddress = destinationAddressBytes.toAddress(); } - address recipient = (expressExecutor == address(0)) ? destinationAddress : expressExecutor; - address tokenAddress; - (amount, tokenAddress) = _giveToken(tokenId, recipient, amount); // Return token to the express executor if (expressExecutor != address(0)) { + _giveToken(tokenId, expressExecutor, amount); return; } + address tokenAddress; + (amount, tokenAddress) = _giveToken(tokenId, destinationAddress, amount); + // slither-disable-next-line reentrancy-events emit InterchainTransferReceived( commandId,