alloy-rs / core

High-performance, well-tested & documented core libraries for Ethereum, in Rust
https://alloy.rs
Apache License 2.0
758 stars 131 forks source link

[Feature] `derive` attributes for Solidity files #688

Open Wollac opened 2 months ago

Wollac commented 2 months ago

Component

sol! macro

Describe the feature you would like

When using the sol! macro for ABI JSON files it is possible to specify additional (derive) attributes and everything works as expected:

sol!(
   #![sol(all_derives)]
    #[derive(Deserialize, Serialize)]
    MyJsonContract,
    "../out/MyJsonContract.json"
);

However, the same approach does not work when using sol! for a path to a Solidity file. It would be great if such a pattern would also work here to add derives (probably serde being the most relevant one) to all applicable generated types. Of course, the content of the Solidity file could be copied into the macro to make the derives work, but this would lead to code duplication and consistency errors.

Additional context

No response