switchboard_solana/attestation_program/
events.rs

1use crate::*;
2
3#[event]
4pub struct FunctionFundEvent {
5    pub function: Pubkey,
6    pub amount: u64,
7}
8
9#[event]
10pub struct FunctionRequestInitEvent {
11    pub attestation_queue: Pubkey,
12    pub function: Pubkey,
13    pub request: Pubkey,
14}
15
16#[event]
17#[derive(Default, Debug, Clone)]
18pub struct FunctionRequestTriggerEvent {
19    pub attestation_queue: Pubkey,
20    pub request: Pubkey,
21    pub function: Pubkey,
22    pub container_registry: Vec<u8>,
23    pub container: Vec<u8>,
24    pub bounty: u64,
25    pub request_slot: u64,
26    pub expiration_slot: u64,
27    pub container_params_hash: Vec<u8>,
28}
29
30#[event]
31pub struct FunctionRequestVerifyEvent {
32    pub request: Pubkey,
33    pub function: Pubkey,
34    pub verifier: Pubkey,
35    pub container_registry: Vec<u8>,
36    pub container: Vec<u8>,
37    pub params: Vec<u8>,
38}
39
40#[event]
41pub struct FunctionRequestVerifyErrorEvent {
42    pub request: Pubkey,
43    pub function: Pubkey,
44    pub verifier: Pubkey,
45    pub container_registry: Vec<u8>,
46    pub container: Vec<u8>,
47    pub params: Vec<u8>,
48    pub error_code: u8,
49}
50
51#[event]
52pub struct FunctionRequestCloseEvent {
53    pub request: Pubkey,
54    pub slot: u64,
55}
56
57#[event]
58pub struct FunctionRoutineInitEvent {
59    pub attestation_queue: Pubkey,
60    pub function: Pubkey,
61    pub routine: Pubkey,
62    pub schedule: [u8; 64],
63}
64
65#[event]
66pub struct FunctionRoutineVerifyEvent {
67    pub routine: Pubkey,
68    pub function: Pubkey,
69    pub verifier: Pubkey,
70    pub mr_enclave: Vec<u8>,
71    pub container_registry: Vec<u8>,
72    pub container: Vec<u8>,
73    pub params: Vec<u8>,
74}
75
76#[event]
77pub struct FunctionRoutineVerifyErrorEvent {
78    pub routine: Pubkey,
79    pub function: Pubkey,
80    pub verifier: Pubkey,
81    pub mr_enclave: Vec<u8>,
82    pub container_registry: Vec<u8>,
83    pub container: Vec<u8>,
84    pub params: Vec<u8>,
85    pub error_code: u8,
86}
87
88// TODO: deprecate
89#[event]
90pub struct FunctionTriggerEvent {
91    pub function: Pubkey,
92}
93
94#[event]
95pub struct FunctionInitEvent {
96    pub function: Pubkey,
97    pub container_registry: Vec<u8>,
98    pub container: Vec<u8>,
99    pub version: Vec<u8>,
100    pub schedule: Vec<u8>,
101    pub mr_enclave: Vec<u8>,
102}
103
104#[event]
105#[derive(Default, Debug, Clone)]
106pub struct FunctionSetConfigEvent {
107    pub function: Pubkey,
108    pub container_registry: Vec<u8>,
109    pub container: Vec<u8>,
110    pub version: Vec<u8>,
111    pub schedule: Vec<u8>,
112    pub mr_enclaves: Vec<Vec<u8>>,
113}
114
115#[event]
116pub struct FunctionBootedEvent {
117    pub function: Pubkey,
118}
119
120// TODO: deprecate
121#[event]
122pub struct FunctionVerifyEvent {
123    pub function: Pubkey,
124}
125
126#[event]
127pub struct FunctionWithdrawEvent {
128    pub function: Pubkey,
129    pub amount: u64,
130}
131
132#[event]
133pub struct PermissionInitEvent {
134    pub permission: Pubkey,
135}
136
137#[event]
138pub struct PermissionSetEvent {
139    pub permission: Pubkey,
140}
141
142#[event]
143pub struct QueueAddMrEnclaveEvent {
144    pub queue: Pubkey,
145    pub mr_enclave: [u8; 32],
146}
147
148#[event]
149pub struct QueueInitEvent {
150    pub queue: Pubkey,
151}
152
153#[event]
154pub struct QueueRemoveMrEnclaveEvent {
155    pub queue: Pubkey,
156    pub mr_enclave: [u8; 32],
157}
158
159#[event]
160pub struct VerifierHeartbeatEvent {
161    pub verifier: Pubkey,
162    pub queue: Pubkey,
163}
164
165#[event]
166pub struct VerifierInitEvent {
167    pub verifier: Pubkey,
168}
169
170#[event]
171pub struct VerifierQuoteRotateEvent {
172    pub verifier: Pubkey,
173}
174
175#[event]
176pub struct VerifierQuoteOverrideEvent {
177    pub verifier: Pubkey,
178    pub queue: Pubkey,
179}
180
181#[event]
182pub struct GarbageCollectionEvent {
183    pub verifier: Pubkey,
184    pub queue: Pubkey,
185}
186
187#[event]
188pub struct VerifierQuoteVerifyEvent {
189    pub quote: Pubkey,
190    pub queue: Pubkey,
191    pub verifier: Pubkey,
192}
193
194#[event]
195pub struct VerifierQuoteVerifyRequestEvent {
196    pub quote: Pubkey,
197    pub verifier: Pubkey,
198}