tomusdrw / rust-web3

Ethereum JSON-RPC multi-transport client. Rust implementation of web3 library. ENS address: rust-web3.eth
MIT License
1.45k stars 466 forks source link

Upgrade from `ethabi` to `alloy-json-abi` #710

Open acemasterjb opened 10 months ago

acemasterjb commented 10 months ago

As per the ethabi repo:

This project is not actively maintained. Consider these alternatives:

alloy-rs is also now utilized by foundry-compilers.

So if alloy-rs is utilized in rust-web3 as well it could allow for something like:

let all_contracts_compiled: VersionedContracts = self.contract_interfaces;
let dai_abi: &JsonAbi = all_contracts_compiled
    .find_first("ERC20")
    .unwrap()
    .abi
    .unwrap();

let dai_address = Address::from_str("6b175474e89094c44da98b954eedeac495271d0f").unwrap();
let dai_contract = Contract::new(self.client.eth(), dai_address, erc20_abi);

to be easily implemented. Assuming that self.client is a Web3<Transport>.