Submitted by bin2chen
VaultLogic.wrapNativeTokenInWallet() is used in a number of places
Its mainly used to store msg.value into WETH and then transfer it to msg.sender.
The token transfer is done using the transferFrom method. This works fine on most chains (Ethereum, Optimism, Polygon, BSC) which use the standard WETH9 contract that handles the case src == msg.sender:
The problem is that the WETH implementation on Arbitrum uses a different contract, and does not have this src == msg.sender handling.
wrapNativeTokenInWallet() revert, BVault/CrossLending... contracts that use this method dont execute correctly.
Context
thorseldon (BendDAO) confirmed and commented:
