chainhook_types/
events.rs

1#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
2pub struct STXTransferEventData {
3    pub sender: String,
4    pub recipient: String,
5    pub amount: String,
6}
7
8#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9pub struct STXMintEventData {
10    pub recipient: String,
11    pub amount: String,
12}
13
14#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
15pub struct STXLockEventData {
16    pub locked_amount: String,
17    pub unlock_height: String,
18    pub locked_address: String,
19}
20
21#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
22pub struct STXBurnEventData {
23    pub sender: String,
24    pub amount: String,
25}
26
27#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
28pub struct NFTTransferEventData {
29    #[serde(rename = "asset_identifier")]
30    pub asset_class_identifier: String,
31    #[serde(rename = "raw_value")]
32    pub hex_asset_identifier: String,
33    pub sender: String,
34    pub recipient: String,
35}
36
37#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
38pub struct NFTMintEventData {
39    #[serde(rename = "asset_identifier")]
40    pub asset_class_identifier: String,
41    #[serde(rename = "raw_value")]
42    pub hex_asset_identifier: String,
43    pub recipient: String,
44}
45
46#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
47pub struct NFTBurnEventData {
48    #[serde(rename = "asset_identifier")]
49    pub asset_class_identifier: String,
50    #[serde(rename = "raw_value")]
51    pub hex_asset_identifier: String,
52    pub sender: String,
53}
54
55#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
56pub struct FTTransferEventData {
57    #[serde(rename = "asset_identifier")]
58    pub asset_class_identifier: String,
59    pub sender: String,
60    pub recipient: String,
61    pub amount: String,
62}
63
64#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
65pub struct FTMintEventData {
66    #[serde(rename = "asset_identifier")]
67    pub asset_class_identifier: String,
68    pub recipient: String,
69    pub amount: String,
70}
71
72#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
73pub struct FTBurnEventData {
74    #[serde(rename = "asset_identifier")]
75    pub asset_class_identifier: String,
76    pub sender: String,
77    pub amount: String,
78}
79
80#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
81pub struct DataVarSetEventData {
82    pub contract_identifier: String,
83    pub var: String,
84    #[serde(rename = "raw_new_value")]
85    pub hex_new_value: String,
86}
87
88#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
89pub struct DataMapInsertEventData {
90    pub contract_identifier: String,
91    pub map: String,
92    #[serde(rename = "raw_inserted_key")]
93    pub hex_inserted_key: String,
94    #[serde(rename = "raw_inserted_value")]
95    pub hex_inserted_value: String,
96}
97
98#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
99pub struct DataMapUpdateEventData {
100    pub contract_identifier: String,
101    pub map: String,
102    #[serde(rename = "raw_key")]
103    pub hex_key: String,
104    #[serde(rename = "raw_new_value")]
105    pub hex_new_value: String,
106}
107
108#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
109pub struct DataMapDeleteEventData {
110    pub contract_identifier: String,
111    pub map: String,
112    #[serde(rename = "raw_deleted_key")]
113    pub hex_deleted_key: String,
114}
115
116#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
117pub struct SmartContractEventData {
118    pub contract_identifier: String,
119    pub topic: String,
120    #[serde(rename = "raw_value")]
121    pub hex_value: String,
122}
123
124#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
125#[serde(tag = "type", content = "data")]
126pub enum StacksTransactionEventPayload {
127    STXTransferEvent(STXTransferEventData),
128    STXMintEvent(STXMintEventData),
129    STXLockEvent(STXLockEventData),
130    STXBurnEvent(STXBurnEventData),
131    NFTTransferEvent(NFTTransferEventData),
132    NFTMintEvent(NFTMintEventData),
133    NFTBurnEvent(NFTBurnEventData),
134    FTTransferEvent(FTTransferEventData),
135    FTMintEvent(FTMintEventData),
136    FTBurnEvent(FTBurnEventData),
137    DataVarSetEvent(DataVarSetEventData),
138    DataMapInsertEvent(DataMapInsertEventData),
139    DataMapUpdateEvent(DataMapUpdateEventData),
140    DataMapDeleteEvent(DataMapDeleteEventData),
141    SmartContractEvent(SmartContractEventData),
142}
143
144#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
145pub struct StacksTransactionEvent {
146    #[serde(flatten)]
147    pub event_payload: StacksTransactionEventPayload,
148    #[serde(default)]
149    pub position: StacksTransactionEventPosition,
150}
151
152#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
153pub struct StacksTransactionEventPosition {
154    pub index: u32,
155}
156
157impl Default for StacksTransactionEventPosition {
158    fn default() -> Self {
159        Self { index: 0 }
160    }
161}