Issue# 1 - Spam relayers to drain their funds.
Let’s say a user generates a tx request and sends it to all relays at the same time.
Only 1 relayer will be able to successfully execute the transaction, the rest will be reverted because
canRelay will be
false for them. Hence, the relayers will lose their own funds.
Is there a way for relayers to make sure they are not duplicating requests?
Issue#2 - Rogue relayer.
Let’s say a relayer wants to censor some smart contracts by accepting their transactions, returning the txHash and right after making a different tx with the same nonce to break the positive user experience for a particular dapp.
How can smart contract owners make sure they won’t be censored from relayers?