1use borsh::{BorshSerialize, BorshDeserialize};
7use serde::{Serialize, Deserialize};
8
9#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
11pub struct OnChainProcessor {
12 pub name: String,
13 pub event_source_type: EventSourceType,
14 pub filter: String,
15 pub write_enabled: bool,
16 pub module_cid: [u8; 32],
17 pub owner_pubkey: [u8; 32],
18 pub write_pubkey: Option<[u8; 32]>,
19}
20
21#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
22pub struct AddOnChainProcessor {
23 pub processor: OnChainProcessor,
24 pub bump_seed: u8
25}
26
27#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
28pub struct AddFilteredEvent {
29 pub filtered_event: FilteredEvent,
30 pub bump_seed: u8,
31}
32
33#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
35pub struct DeleteOnchainProcessor {
36 pub owner_pubkey: String,
37 pub name: String,
38}
39
40#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
41pub struct FilteredEvent {
42 pub event_hash: String,
43 pub processor_pda: String,
44}
45
46#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
47pub struct AddInvocationClaim {
48 pub invocation_claim: InvocationClaim,
49 pub bump_seed: u8,
50}
51
52#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
53pub struct InvocationClaim {
54 pub filtered_event_pda: String,
55 pub processor_pda: String,
56}
57
58#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
59pub struct InvocationAssignment {
60 pub filtered_event_pda: String,
61 pub assignee_pda: String,
62 pub processor_pda: String,
63 pub result_hash: String,
64}
65
66#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
68pub enum EventSourceType {
69 Program,
70 Account,
71}
72
73#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
75pub struct IndexUserPDAResource {
76 pub seed: String,
77}
78
79#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
81pub struct SignedOnchainBytes {
82 pub inner: Vec<u8>,
83 pub owner_pubkey: [u8; 32]
84}
85
86#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
88pub struct SignedOnchainBytesUpdate {
89 pub bytes: SignedOnchainBytes,
90 pub seed: String,
91 pub bump_seed: Option<u8>,
92}
93
94#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
96pub struct RouteData {
97 pub route: String,
98 pub module_cid: [u8; 32],
99 pub encodings: Vec<Encoding>,
100 pub arguments: Vec<(Vec<u8>, ArgumentType)>,
101 pub cache_config: (bool, Option<u64>),
102 pub bump_seed: Option<u8>, }
104
105#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
107pub struct RouteUpdate {
108 pub route: String,
109 pub bump_seed: Option<u8>,
110 pub operation: u8,
111}
112
113#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
115pub struct UserPDAResources {
116 pub seeds: Vec<String>,
117}
118
119#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
121pub struct RouteDeploy {
122 pub source: Vec<u8>,
123 pub metadata: RouteData
124}
125
126#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
127pub struct ProcessorDeploy {
128 pub source: Vec<u8>,
129 pub metadata: OnChainProcessor,
130}
131
132#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
134pub enum Encoding {
135 ApplicationJson,
136 ApplicationOctetStream,
137 TextHtml,
138 TextPlain,
139}
140
141#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
143pub enum ArgumentType {
144 U8,
145 U16,
146 U32,
147 U64,
148 I8,
149 I16,
150 I32,
151 I64,
152 F32,
153 F64,
154 Bool,
155 Str,
156 Array(CollectionType),
157 Map(CollectionType, CollectionType)
158}
159
160#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
162pub enum CollectionType {
163 U8,
164 U16,
165 U32,
166 U64,
167 I8,
168 I16,
169 I32,
170 I64,
171 F32,
172 F64,
173 Bool,
174 Str,
175 Array(NestedCollectionType),
176 Map(NestedCollectionType, NestedCollectionType)
177}
178
179#[derive(Clone, Debug, BorshDeserialize, BorshSerialize, Eq, PartialEq, Serialize, Deserialize)]
181pub enum NestedCollectionType {
182 U8,
183 U16,
184 U32,
185 U64,
186 I8,
187 I16,
188 I32,
189 I64,
190 F32,
191 F64,
192 Bool,
193 Str,
194}
195