Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: argotorg/fe
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: argotorg/fe
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: log_struct
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 48 files changed
  • 1 contributor

Commits on Jan 30, 2026

  1. Adds proper EVM event logging support

    Adds proper EVM event logging support for Fe. Structs marked with `#[event]`
      automatically get an `impl Event` generated at HIR lowering time.
    
      Key features:
      - `#[event]` attribute marks structs as loggable events
      - `#[indexed]` attribute on fields marks them as log topics (max 3)
      - Event signature hash (topic0) computed at compile-time via CTFE keccak
      - Non-indexed fields are ABI-encoded in the log data section
      - Uses existing `evm.emit()` API - now dispatches to proper logN opcodes
    
      Example:
      ```fe
      #[event]
      struct Transfer {
          #[indexed]
          from: Address,
          #[indexed]
          to: Address,
          value: u256,
      }
    
      evm.emit(Transfer { from, to, value })
      // Emits log3 with topic0=keccak("Transfer(address,address,uint256)")
    
      Validation errors for:
      - #[event] on non-struct items
      - #[indexed] outside #[event] structs
      - More than 3 indexed fields
      - Generic #[event] structs
      - Unsupported field types
    cburgdorf committed Jan 30, 2026
    Configuration menu
    Copy the full SHA
    4b367cc View commit details
    Browse the repository at this point in the history
Loading