1use std::fmt;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq)]
6#[allow(non_camel_case_types)]
7pub enum TransactionType {
8 UNKNOWN,
9 ANY,
10 NFT_BID,
11 NFT_GLOBAL_BID,
12 NFT_GLOBAL_BID_CANCELLED,
13 NFT_BID_CANCELLED,
14 NFT_LISTING,
15 NFT_CANCEL_LISTING,
16 NFT_SALE,
17 NFT_MINT,
18 NFT_AUCTION_CREATED,
19 NFT_AUCTION_UPDATED,
20 NFT_AUCTION_CANCELLED,
21 NFT_PARTICIPATION_REWARD,
22 NFT_MINT_REJECTED,
23 CREATE_STORE,
24 WHITELIST_CREATOR,
25 ADD_TO_WHITELIST,
26 REMOVE_FROM_WHITELIST,
27 AUCTION_MANAGER_CLAIM_BID,
28 EMPTY_PAYMENT_ACCOUNT,
29 UPDATE_PRIMARY_SALE_METADATA,
30 ADD_TOKEN_TO_VAULT,
31 ACTIVATE_VAULT,
32 INIT_VAULT,
33 INIT_BANK,
34 INIT_STAKE,
35 MERGE_STAKE,
36 SPLIT_STAKE,
37 SET_BANK_FLAGS,
38 SET_VAULT_LOCK,
39 UPDATE_VAULT_OWNER,
40 UPDATE_BANK_MANAGER,
41 RECORD_RARITY_POINTS,
42 ADD_RARITIES_TO_BANK,
43 INIT_FARM,
44 INIT_FARMER,
45 REFRESH_FARMER,
46 UPDATE_FARM,
47 AUTHORIZE_FUNDER,
48 DEAUTHORIZE_FUNDER,
49 FUND_REWARD,
50 CANCEL_REWARD,
51 LOCK_REWARD,
52 PAYOUT,
53 VALIDATE_SAFETY_DEPOSIT_BOX_V2,
54 SET_AUTHORITY,
55 INIT_AUCTION_MANAGER_V2,
56 UPDATE_EXTERNAL_PRICE_ACCOUNT,
57 AUCTION_HOUSE_CREATE,
58 CLOSE_ESCROW_ACCOUNT,
59 WITHDRAW,
60 DEPOSIT,
61 TRANSFER,
62 BURN,
63 BURN_NFT,
64 PLATFORM_FEE,
65 LOAN,
66 RESCIND_LOAN,
67 OFFER_LOAN,
68 REPAY_LOAN,
69 TAKE_LOAN,
70 FORECLOSE_LOAN,
71 ADD_TO_POOL,
72 REMOVE_FROM_POOL,
73 CLOSE_POSITION,
74 UNLABELED,
75 CLOSE_ACCOUNT,
76 WITHDRAW_GEM,
77 DEPOSIT_GEM,
78 STAKE_TOKEN,
79 UNSTAKE_TOKEN,
80 STAKE_SOL,
81 UNSTAKE_SOL,
82 CLAIM_REWARDS,
83 BUY_SUBSCRIPTION,
84 SWAP,
85 INIT_SWAP,
86 CANCEL_SWAP,
87 REJECT_SWAP,
88 INITIALIZE_ACCOUNT,
89 TOKEN_MINT,
90 CREATE_APPRAISAL,
91 CANDY_MACHINE_WRAP,
92 CANDY_MACHINE_UNWRAP,
93 CANDY_MACHINE_UPDATE,
94 CANDY_MACHINE_ROUTE,
95 FRACTIONALIZE,
96 DEPOSIT_FRACTIONAL_POOL,
97 FUSE,
98 CREATE_RAFFLE,
99 BUY_TICKETS,
100 UPDATE_ITEM,
101 LIST_ITEM,
102 DELIST_ITEM,
103 ADD_ITEM,
104 CLOSE_ITEM,
105}
106impl fmt::Display for TransactionType {
107 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
108 write!(f, "{:?}", self)
109 }
110}
111
112#[derive(Debug, Deserialize, Copy, Clone, PartialEq)]
113#[allow(non_camel_case_types)]
114pub enum TransactionSource {
115 FORM_FUNCTION,
116 EXCHANGE_ART,
117 CANDY_MACHINE_V3,
118 CANDY_MACHINE_V2,
119 CANDY_MACHINE_V1,
120 UNKNOWN,
121 SOLANART,
122 SOLSEA,
123 MAGIC_EDEN,
124 HOLAPLEX,
125 METAPLEX,
126 OPENSEA,
127 SOLANA_PROGRAM_LIBRARY,
128 ANCHOR,
129 PHANTOM,
130 SYSTEM_PROGRAM,
131 STAKE_PROGRAM,
132 COINBASE,
133 CORAL_CUBE,
134 HEDGE,
135 LAUNCH_MY_NFT,
136 GEM_BANK,
137 GEM_FARM,
138 DEGODS,
139 BLOCKSMITH_LABS,
140 YAWWW,
141 ATADIA,
142 DIGITAL_EYES,
143 HYPERSPACE,
144 TENSOR,
145 BIFROST,
146 JUPITER,
147 MERCURIAL_STABLE_SWAP,
148 SABER,
149 SERUM,
150 STEP_FINANCE,
151 CROPPER,
152 RAYDIUM,
153 ALDRIN,
154 CREMA,
155 LIFINITY,
156 CYKURA,
157 ORCA,
158 MARINADE,
159 STEPN,
160 SENCHA_EXCHANGE,
161 SAROS,
162 ENGLISH_AUCTION,
163 FOXY,
164 HADESWAP,
165 FOXY_STAKING,
166 FOXY_RAFFLE,
167 FOXY_TOKEN_MARKET,
168 FOXY_MISSIONS,
169 FOXY_MARMALADE,
170 FOXY_COINFLIP,
171 FOXY_AUCTION,
172 CITRUS,
173 ZETA,
174 ELIXIR,
175 ELIXIR_LAUNCHPAD,
176 CARDINAL_RENT,
177 CARDINAL_STAKING,
178 BPF_LOADER,
179 BPF_UPGRADEABLE_LOADER,
180 SQUADS,
181 SHARKY_FI,
182 OPEN_CREATOR_PROTOCOL,
183
184 W_SOL,
186 DUST,
187 SOLI,
188 USDC,
189 FLWR,
190 HDG,
191 MEAN,
192 UXD,
193 SHDW,
194 POLIS,
195 ATLAS,
196 USH,
197 TRTLS,
198 RUNNER,
199 INVICTUS,
200}
201impl fmt::Display for TransactionSource {
202 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
203 write!(f, "{:?}", self)
204 }
205}
206
207#[derive(Debug, Deserialize, Copy, Clone, PartialEq)]
208#[allow(non_camel_case_types)]
209pub enum NftEventType {
210 NFT_BID,
211 NFT_BID_CANCELLED,
212 NFT_GLOBAL_BID,
213 NFT_GLOBAL_BID_CANCELLED,
214 NFT_LISTING,
215 NFT_CANCEL_LISTING,
216 NFT_SALE,
217 NFT_MINT,
218 NFT_MINT_REJECTED,
219 NFT_AUCTION_CREATED,
220 NFT_AUCTION_UPDATED,
221 NFT_AUCTION_CANCELLED,
222 NFT_PARTICIPATION_REWARD,
223 BURN_NFT,
224 NFT_RENT_LISTING,
225 NFT_RENT_CANCEL_LISTING,
226 NFT_RENT_UPDATE_LISTING,
227 NFT_RENT_ACTIVATE,
228 NFT_RENT_END,
229 ATTACH_METADATA,
230 REQUEST_PNFT_MIGRATION,
231 START_PNFT_MIGRATION,
232 MIGRATE_TO_PNFT,
233 SFT_MINT,
234}
235
236#[derive(Debug, Deserialize, Copy, Clone, PartialEq)]
237pub enum TokenStandard {
238 ProgrammableNonFungible,
239 NonFungible,
240 Fungible,
241 FungibleAsset,
242 NonFungibleEdition,
243 UnknownStandard,
244}
245
246#[derive(Debug, Deserialize, Copy, Clone, PartialEq)]
247#[allow(non_camel_case_types)]
248pub enum CompressedNftEventType {
249 COMPRESSED_NFT_MINT,
250 COMPRESSED_NFT_TRANSFER,
251 CREATE_MERKLE_TREE,
252 COMPRESSED_NFT_REDEEM,
253 COMPRESSED_NFT_CANCEL_REDEEM,
254 COMPRESSED_NFT_BURN,
255 COMPRESSED_NFT_DELEGATE,
256}
257
258#[derive(Debug, Deserialize, Copy, Clone, PartialEq)]
259#[allow(non_camel_case_types)]
260pub enum SaleType {
261 AUCTION,
262 INSTANT_SALE,
263 OFFER,
264 GLOBAL_OFFER,
265 MINT,
266 UNKNOWN,
267}