1use alloy_primitives::TxHash;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct CirclesBaseEvent {
8 pub block_number: u64,
9 pub timestamp: Option<u64>,
10 pub transaction_index: u32,
11 pub log_index: u32,
12 pub transaction_hash: Option<TxHash>,
13}
14
15#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
17pub enum CirclesEventType {
18 #[serde(rename = "CrcV2_ApprovalForAll")]
20 CrcV2ApprovalForAll,
21 #[serde(rename = "CrcV2_DiscountCost")]
22 CrcV2DiscountCost,
23 #[serde(rename = "CrcV2_FlowEdgesScopeLastEnded")]
24 CrcV2FlowEdgesScopeLastEnded,
25 #[serde(rename = "CrcV2_FlowEdgesScopeSingleStarted")]
26 CrcV2FlowEdgesScopeSingleStarted,
27 #[serde(rename = "CrcV2_GroupMint")]
28 CrcV2GroupMint,
29 #[serde(rename = "CrcV2_PersonalMint")]
30 CrcV2PersonalMint,
31 #[serde(rename = "CrcV2_RegisterGroup")]
32 CrcV2RegisterGroup,
33 #[serde(rename = "CrcV2_RegisterHuman")]
34 CrcV2RegisterHuman,
35 #[serde(rename = "CrcV2_RegisterOrganization")]
36 CrcV2RegisterOrganization,
37 #[serde(rename = "CrcV2_SetAdvancedUsageFlag")]
38 CrcV2SetAdvancedUsageFlag,
39 #[serde(rename = "CrcV2_Stopped")]
40 CrcV2Stopped,
41 #[serde(rename = "CrcV2_StreamCompleted")]
42 CrcV2StreamCompleted,
43 #[serde(rename = "CrcV2_TransferBatch")]
44 CrcV2TransferBatch,
45 #[serde(rename = "CrcV2_TransferSingle")]
46 CrcV2TransferSingle,
47 #[serde(rename = "CrcV2_Trust")]
48 CrcV2Trust,
49 #[serde(rename = "CrcV2_URI")]
50 CrcV2URI,
51
52 #[serde(rename = "CrcV2_Approval")]
54 CrcV2Approval,
55 #[serde(rename = "CrcV2_DepositDemurraged")]
56 CrcV2DepositDemurraged,
57 #[serde(rename = "CrcV2_DepositInflationary")]
58 CrcV2DepositInflationary,
59 #[serde(rename = "CrcV2_EIP712DomainChanged")]
60 CrcV2EIP712DomainChanged,
61 #[serde(rename = "CrcV2_Transfer")]
62 CrcV2Transfer,
63 #[serde(rename = "CrcV2_WithdrawDemurraged")]
64 CrcV2WithdrawDemurraged,
65 #[serde(rename = "CrcV2_WithdrawInflationary")]
66 CrcV2WithdrawInflationary,
67
68 #[serde(rename = "CrcV2_CidV0")]
70 CrcV2CidV0,
71 #[serde(rename = "CrcV2_RegisterShortName")]
72 CrcV2RegisterShortName,
73 #[serde(rename = "CrcV2_UpdateMetadataDigest")]
74 CrcV2UpdateMetadataDigest,
75
76 #[serde(rename = "CrcV2_GroupRedeemCollateralBurn")]
78 CrcV2GroupRedeemCollateralBurn,
79 #[serde(rename = "CrcV2_GroupRedeemCollateralReturn")]
80 CrcV2GroupRedeemCollateralReturn,
81
82 #[serde(rename = "CrcV2_InviteHuman")]
84 CrcV2InviteHuman,
85
86 #[serde(rename = "Crc_UnknownEvent")]
88 CrcUnknownEvent,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
93pub struct CirclesEvent {
94 #[serde(flatten)]
95 pub base: CirclesBaseEvent,
96
97 #[serde(rename = "$event")]
98 pub event_type: CirclesEventType,
99
100 #[serde(flatten)]
101 pub data: HashMap<String, serde_json::Value>,
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
106pub struct RpcSubscriptionEvent {
107 pub event: String,
108 pub values: HashMap<String, serde_json::Value>,
109}