fix(lint/v2): accept descriptor names for unnamed ABI parameters - #308
Conversation
Solidity parameters can be left unnamed, in which case the reference ABI fetched from the explorer carries an empty name and no schema path is computed for them. Descriptors must still name them to reference them by path, so `ValidateDisplayFieldsLinter` reported a spurious "Invalid display field" error for such paths (5 occurrences in the registry, e.g. `#.pool` for `depositETH(address,address,uint16)`). The name is recovered from the descriptor format key, which resolution reduces to a selector, so the v2 linter interface now also receives the input descriptor. A name is only accepted at the position it is declared at: a path stays invalid if the reference ABI names that parameter.
|
Hi @manuelwedler! |
|
Hi @fsamier These changes would be very helpful to move forward with the clear signing registry. The registry has been in a stuck state since the handover which I'm trying to get resolved at the moment. |
fsamier
left a comment
There was a problem hiding this comment.
Tests run locally with API key injection, workflow to be improved in a later PR
Solidity parameters can be left unnamed, so the reference ABI fetched from the explorer carries an empty name and no schema path is computed for them. Descriptors must still name them to reference them by path, which made
ValidateDisplayFieldsLinterreport a spuriousInvalid display fielderror.aave/calldata-WrappedTokenGatewayV3.json(#.pool, 4 functions) and1inch/calldata-AggregationRouterV3.json(#.pools).Verified on the registry at
3ddfbc0:Invalid display field5 → 0, all other error and warning counts unchanged.