All of these provide a function e.g.
_msgSender() to replace
(continued in next post since I can’t post more than 2 links)
ERC2771Context is mentioned in opengsn troubleshooting FAQ.
ContextMixin: https://github .com/maticnetwork/pos-portal/blob/master/contracts/common/ContextMixin.sol
ContextMixin is mentioned by OpenSea for Polygon meta-transactions support. It doesn’t offer a replacement for
Do they all do exactly the same thing in replacing
Can either BaseRelayRecipient or ERC2771Context replace the other two?
ERC2771Context is equivalent to BaseRelayRecipient. Use whichever is easier for you.
The difference is if/when you can change the trusted-forwarder address: I think in ERC2771Context it is immutable