Skip to main content

solidity_language_server/solc_ast/
events.rs

1//! Event and error definition AST node types.
2
3use serde::{Deserialize, Serialize};
4
5use super::{Documentation, NodeID, ParameterList};
6
7/// An event definition.
8#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9#[serde(rename_all = "camelCase")]
10pub struct EventDefinition {
11    pub id: NodeID,
12    pub src: String,
13    pub name: String,
14    #[serde(default)]
15    pub name_location: Option<String>,
16    #[serde(default)]
17    pub documentation: Option<Documentation>,
18    pub parameters: ParameterList,
19    #[serde(default)]
20    pub anonymous: Option<bool>,
21    /// 32-byte event selector (keccak256 of signature, hex string, no `0x`).
22    #[serde(default)]
23    pub event_selector: Option<String>,
24}
25
26/// An error definition (`error InsufficientBalance(uint256, uint256)`).
27#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
28#[serde(rename_all = "camelCase")]
29pub struct ErrorDefinition {
30    pub id: NodeID,
31    pub src: String,
32    pub name: String,
33    #[serde(default)]
34    pub name_location: Option<String>,
35    #[serde(default)]
36    pub documentation: Option<Documentation>,
37    pub parameters: ParameterList,
38    /// 4-byte error selector (hex string, no `0x`).
39    #[serde(default)]
40    pub error_selector: Option<String>,
41}