From e970f58a8a1e7a4b4205715eea0a0f5bd806b714 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Tue, 14 Feb 2023 02:11:13 +0100 Subject: [PATCH] fix(abigen): use event name from abi attribute (#2144) * fix(abigen): use event name from abi attribute * rustfmt --- .../ethers-contract-derive/src/event.rs | 10 +++++---- ethers-contract/tests/it/common/derive.rs | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/ethers-contract/ethers-contract-derive/src/event.rs b/ethers-contract/ethers-contract-derive/src/event.rs index 8fc5ebfae..34c4b0a23 100644 --- a/ethers-contract/ethers-contract-derive/src/event.rs +++ b/ethers-contract/ethers-contract-derive/src/event.rs @@ -21,8 +21,6 @@ pub(crate) fn derive_eth_event_impl(input: DeriveInput) -> Result Result Result Result { let event = Event { - name: "".to_string(), + name: input.ident.to_string(), inputs: utils::derive_abi_inputs_from_fields(input, "EthEvent")? .into_iter() .map(|(name, kind)| EventParam { name, kind, indexed: false }) diff --git a/ethers-contract/tests/it/common/derive.rs b/ethers-contract/tests/it/common/derive.rs index 477ee04f3..50a73adf4 100644 --- a/ethers-contract/tests/it/common/derive.rs +++ b/ethers-contract/tests/it/common/derive.rs @@ -647,3 +647,25 @@ fn can_use_human_readable_error() { assert_etherror::(); } + +// +#[test] +fn derives_abi_name() { + #[derive(Debug, EthEvent)] + #[ethevent(abi = "Transfer(address,address,uint256)")] + struct Erc20TransferEvent { + #[ethevent(indexed, name = "_from")] + from: Address, + #[ethevent(indexed, name = "_to")] + to: Address, + #[ethevent(name = "_value")] + value: U256, + } + + assert_eq!(Erc20TransferEvent::abi_signature(), "Transfer(address,address,uint256)"); + + assert_eq!( + Erc20TransferEvent::signature(), + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef".parse().unwrap() + ); +}