• Hero Bird's avatar
    Implement event topic code generation (#510) · 6f701e50
    Hero Bird authored
    * [env] remove unnecessary copy of no longer used mod.rs
    
    * [env, lang] make crates compile again under newest Rust nightly
    
    * [env] on-chain: enhance ScopedBuffer
    
    Add append_encoded and take_appended methods.
    
    * [env] remove old Topics trait
    
    * [env] add new Topics infrastructure
    
    * [env] implement new Topics infrastructure for on/off chain environments
    
    * [env] remove dummy event
    
    * [env] make env::topics::state mod externally accessible
    
    It stays hidden in docs.
    
    * [lang/codegen] generate proper Topics impls for ink! events
    
    * [env] apply rustfmt
    
    * [lang/codegen] fix codegen for events without topics
    
    * [lang/macro] fix UI test
    
    * [env] off-chain: clean-up slightly
    
    * [examples] ERC-20: improve tests for event topics
    
    * [env] remove commented-out line
    
    * [lang/codegen] include event signature into topics
    
    This is the same as it is done for non-anonymous Solidity events.
    The signature of an ink! event is: ContractName::EventName.
    E.g. for ERC-20's Transfer event it is: Erc20::Transfer
    
    * [examples] ERC-20: adjust test for changes with event topics
    
    * [lang/ir] add support for anonymous events
    
    * [lang/codegen] add codegen for anonymous events
    
    * [lang/ir] apply rustfmt
    
    * [lang/macro] comment out failing unit test
    
    Fails due to rustc version mismatch and some recent error display change.
    
    * [examples] apply rustfmt
    6f701e50