1234567891011121314151617use evm_coder::{abi::AbiType, execution::Result, generate_stubgen, solidity_interface, types::*};1819pub struct ERC20;2021#[solidity_interface(name = ERC20)]22impl ERC20 {23 fn decimals(&self) -> Result<uint8> {24 unreachable!()25 }26 27 fn balance_of(&self, _owner: address) -> Result<uint256> {28 unreachable!()29 }30 fn transfer(&mut self, _caller: caller, _to: address, _value: uint256) -> Result<bool> {31 unreachable!()32 }33 fn transfer_from(34 &mut self,35 _caller: caller,36 _from: address,37 _to: address,38 _value: uint256,39 ) -> Result<bool> {40 unreachable!()41 }42 fn approve(&mut self, _caller: caller, _spender: address, _value: uint256) -> Result<bool> {43 unreachable!()44 }45 fn allowance(&self, _owner: address, _spender: address) -> Result<uint256> {46 unreachable!()47 }48}4950generate_stubgen!(gen_impl, ERC20Call, true);51generate_stubgen!(gen_iface, ERC20Call, false);