Description
xBundle(...) and xReceive(...) make several external calls and check the balances before and after these calls. It's safer to include nonReentrant modifiers to prevent reentrancy.
Recommendation
Check the Connext implementation for an example. Using non zero state variables as mutex saves gas, because the second write is to the same slot as the first write.
Add a check such that if msg.sender is the flasher, it can reenter.
Status