_crossTransfer(...) reverts for smart contracts that don't share the same address on different chains
Description
_crossTransfer(...) has a beneficiary check such that the receiver of the funds in the destination chain must be the same as the previous beneficiary (most likely the msg.sender or the ConnextRouter).
If the address is a smart contract, the address will probably be different on the different chain, which will make the transaction revert.
Recommendation
Allow users to specify in a mapping the corresponding beneficiary in the destination chain, in a function addBeneficiaryToDestDomain(...), which would set beneficiary[msg.sender][destDomain] = newBeneficary;.
Status
Acknowledged with the following statement: The issue identified is acknowledged by the Fuji team. Smart contract integrations will require the capability of defining a different address as beneficiary in a different domain. This feature will be added during Q3-2023 while working on general optimizations/improvements on the router contracts.