1#![allow(dead_code)] 23use evm_coder::{solidity_interface, types::*, ToLog, execution::Result};4use evm_coder_macros::solidity;5use std as sp_std;67struct Impls;89#[solidity_interface(name = "OurInterface")]10impl Impls {11 fn fn_a(&self, _input: uint256) -> Result<bool> {12 todo!()13 }14}1516#[solidity_interface(name = "OurInterface1")]17impl Impls {18 fn fn_b(&self, _input: uint128) -> Result<uint32> {19 todo!()20 }21}2223#[solidity_interface(24 name = "OurInterface2",25 is(OurInterface),26 inline_is(OurInterface1),27 events(ERC721Log)28)]29impl Impls {30 #[solidity(rename_selector = "fnK")]31 fn fn_c(&self, _input: uint32) -> Result<uint8> {32 todo!()33 }34 fn fn_d(&self, _value: uint32) -> Result<uint32> {35 todo!()36 }3738 fn caller_sensitive(&self, _caller: caller) -> Result<uint8> {39 todo!()40 }41 fn payable(&mut self, _value: value) -> Result<uint8> {42 todo!()43 }44}4546#[derive(ToLog)]47enum ERC721Log {48 Transfer {49 #[indexed]50 from: address,51 #[indexed]52 to: address,53 value: uint256,54 },55 Eee {56 #[indexed]57 aaa: address,58 bbb: uint256,59 },60}6162struct ERC20;6364#[solidity_interface(name = "ERC20")]65impl ERC20 {66 fn decimals(&self) -> Result<uint8> {67 todo!()68 }69 fn balance_of(&self, _owner: address) -> Result<uint256> {70 todo!()71 }72 fn transfer(&mut self, _caller: caller, _to: address, _value: uint256) -> Result<bool> {73 todo!()74 }75 fn transfer_from(76 &mut self,77 _caller: caller,78 _from: address,79 _to: address,80 _value: uint256,81 ) -> Result<bool> {82 todo!()83 }84 fn approve(&mut self, _caller: caller, _spender: address, _value: uint256) -> Result<bool> {85 todo!()86 }87 fn allowance(&self, _owner: address, _spender: address) -> Result<uint256> {88 todo!()89 }90}