diff --git a/evm/src/omni-bridge/contracts/OmniBridge.sol b/evm/src/omni-bridge/contracts/OmniBridge.sol index e6f852f6..8b61f0d3 100644 --- a/evm/src/omni-bridge/contracts/OmniBridge.sol +++ b/evm/src/omni-bridge/contracts/OmniBridge.sol @@ -42,6 +42,7 @@ contract OmniBridge is error InvalidSignature(); error NonceAlreadyUsed(uint64 nonce); error InvalidFee(); + error FailedToSendEther(); function initialize( address tokenImplementationAddress_, @@ -194,7 +195,11 @@ contract OmniBridge is revert InvalidSignature(); } - if (customMinters[payload.tokenAddress] != address(0)) { + if (payload.tokenAddress == address(0)) { + (bool success, ) = payload.recipient.call{value: payload.amount}(""); + if (!success) revert FailedToSendEther(); + } + else if (customMinters[payload.tokenAddress] != address(0)) { ICustomMinter(customMinters[payload.tokenAddress]).mint(payload.tokenAddress, payload.recipient, payload.amount); } else if (isBridgeToken[payload.tokenAddress]) { BridgeToken(payload.tokenAddress).mint(payload.recipient, payload.amount);