El ReputationRegistry guarda msg.sender como autor, y en submit_feedback() ese
msg.sender es el FACILITADOR. Por eso el 87,2% de la reputacion de Base -- 1.384
de 1.587 feedbacks -- figura emitida por una sola wallet, que ademas puede
revocarla.
EIP-7702 lo arregla sin tocar el registry: quien califica delega su propia EOA
al FeedbackDelegate y la transaccion se manda A LA DIRECCION DE ESA PERSONA, asi
que el registry la ve a ella mientras el facilitador paga el gas.
Agrega:
- prepare_relayed_feedback() -- no escribe nada ni cuesta nada: devuelve el
digest, el deadline, un nonce de un solo uso y, si la cuenta todavia no esta
delegada, el nonce de cuenta para la autorizacion 7702.
- submit_relayed_feedback() -- relaya. Los parametros del feedback se repiten a
proposito: el facilitador reconstruye el calldata desde ellos y se niega a
relayar lo que la firma no cubre. No relaya calldata que le pasan.
- RELAYED_FEEDBACK_NETWORKS + supports_relayed_feedback() para rutear sin pagar
un round trip por un 400. Nueve redes: las ocho mainnets con delegate
desplegado mas base-sepolia. Es una pista de ruteo, no la autoridad -- el
facilitador revisa el delegate en la cadena en cada request.
Avalanche no esta, y no es un "todavia no": su C-Chain rechaza el tipo de
transaccion (-32000 transaction type not supported). Hay un test que lo fija.
submit_feedback() queda marcado deprecated donde hay delegate, pero sigue
funcionando: es el unico camino disponible donde no lo hay.
Requiere facilitador v1.93.0+ para las mainnets; base-sepolia desde v1.74.0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>